Foreverly

メモ帳

7月のテックの祭典

前日にPokemonGoMapに消耗して徹夜で行きました。 終日立っていたのでところどころ聞けていなかったです。 ユニークなのが会場がPokemonGOのポケステーションで イベント中はずっとルアーモジュールが使用されていました。 おかげでミニリュウカモネギを捕まえることができましたので、 運営には感謝。

  • 基調講演
  • 現実が正解だ! やってみんとわからんことだらけ。 さくらのIoT企画・開発365日の軌跡。そして、次の365日へ。

さくらのIoT Platformの立ち上げに奔走したこの1年を、 チームビルディングという観点で紹介されていました。

あとブースでさくらクラウド2万円クーポンありがとうございました。

  • Wantedly の文化を支えるインフラとビジネスの変化に強いインフラ

ブースに座ったまま聞けたので、最高でした。 このセッション聞けて満足して午前が終わりました。 Wantedlyのインフラチームはコードを書いて問題解決をしている。 憧れていた仕事はこういうものだったと気づいたセッションでした。 会社のポジションを気にしていたけど、どういう仕事をしたかったのかを 気づかせてくれたし、今後の生存戦略の方針が決まってきた感じがありました。 今年一年でコードをかけるインフラエンジニアになって、そういう仕事ができる 場所にいけるようやっていきが高まったセッションでした。 帰宅してから、Wantedly Tech Bookは買って読んでいます。

具体的なセッション内容は、 やぱちーでも聞いたCode Wins Argumentsの紹介から、 WantedlyでのUser Firstのお話と、Simple is Not Easyであることのおはなし。 Wantedlyの社員数と売上のグラフをみましたが、伸びかたがすごかったです。 これがグロースというものなのかと思いました。 XaaSとAWSの両方を使い、利用できるものはどんどん利用する。 HerokuやRedisやFirebaseとAWSの組み合わせなどもやっている。 これらはスピード感とコスト感などで選択しているとのこと。 規模が大きくなるに連れて、 Developerからインフラへのタスク依頼が増えてインフラ側がボトルネックになっていく。 これをどう解決するか、既存、新規アプリ関係なく、 すぐにデプロイできる環境を提供できるようにするのが、変化に強いインフラ。 自動化とTool(API)の作成して、 DeveloperがそのToolを使うようにさせて、 インフラにタスク依頼がこないようにした。 Developerに使ってもらえるように気をつけている。 herokuからAWSへの移行のような大きな変化は コマンドが変わることでDeveloperに影響がでるので、 これまでの運用の変化差異を減らせるように、 ヒアリングをして同じ結果になるようにコマンドを作成した。 Docker imageの中にChefを使ってインスタンス作成たり、 PackerでAWSのinstanceのAMIを作成などをした。 ただ、これではアプリケーションの構築部分がCode化できたが、 インフラがコードをメンテするので、インフラがボトルネックになってしまう。 TerraformeはAWS(S3/RDS/ELB etc)dnsimpleを操作させている。 WantedlyではCoreOSを使用しているが、 CoreOSを使うきっかけはDockerやRegistryのversion upが大変だから、 Officialにamiが用意されているのでCoreOSを試験運用してきた。 サーバが一台停止されたら、勝手にインスタンスが立ち上がって欲しいので、 golangでツールを作成。AWS TAGを元にsystemdにサービスを提供させるもの。

ただ、これはAutoScaleでよいのでないかしらとおもいました。

クラスタリングはすぐアプリを動かせるインフラをすぐに作れるので、 何台分でもよくて、一回限りでもよい。 Kong Archirtecture:各サービスのAPI作成するとき、 Kongに対してdeployすればよい。これはAPI Gatewayの働きをする。 API GenerateはAPIを作成してくれる。 Wantedlyのインフラチームはコードを書いて問題解決をしているとのことでした。

動画はないみたいなので、公開されているプレゼン資料を読むのが良さそうです!

このセッションを聞こうと思って、もともと参加してたのですが、 他の人に譲らないといけないみたいな感じになりソウルジェムが濁ったのですが、 途中から聞けるようになったのでよかった。

いい話でよかったです。そしてやっているからスキル高いんだなあとも思いました。 もし、来年も同じセッションを聞いていい話と思っちゃいけないとも思いました。 今年一年で、来年このセッションを聞く必要がないようにならないといけない。 手を動かしてやっていかないといけないと思いました。

途中からだったんのですが、内容としてはプログラミング初めて写経の次はどうするのか問題。 写経の次は車輪の再発明のすすめ。 ただプログラミングのやり方がわかってきてからやったほうがよくて、 自分でプロトコルアルゴリズムを実装するのがよい。 たとえばHTTPプロトコルのサーバやクライアントをつくるとか、 自分が普段使っているプロダクトに似ているものを作ってみる。 Apachekeepalivedなどなど。 これをやることでボトルネックの想像がつきやすくなってくる。 HTTPサーバの実装だったら、HTTPのRFCを読んで、知らないヘッダを読む。 keepaliveや、cache-controlについてどういうものなのかを漠然としたものから 理解することができるようになる。 HTTPサーバの自作はおすすめらしい。 ヘッダを無視して、メソッド、パス、受けたら返すようにするのを目指す。 これをやるとc10k問題がどういうものなのかが、わかってくる。 ファイルディスクリプタをセレクトでみてるからc10k問題になる。 epollでみてるのがnginx. ほかにはCGIはどのようにして動作しているのかわかる。 こういうのをやって、どれだけ役に立っているかというと毎日役立ってると思うくらい役に立っているとのこと。 自作したHTTPサーバに対して、curlやブラウザが返ってくるのは感動。 セッション中ではJavaで自作する本が出ているのをおすすめしていました。 他にはLinuxコンテナエンジンの自作をしてみる。 Dockerは巨大なので、実装することで中でどのような動きになっているか理解できる。 cgroupやchroot,vethのような技術も理解できる。 先駆者がいるので、コードを読んで参考にするのがよい。 Denaのjaillingのperlは200行ぐらいで書かれていたりする。 あとはdrootやhaconiwaなど 他に車輪の再発明としておすすめなのは、 言語処理系、LispのNosql系、プロビジョニングツール、Itamaem、ldapが大変なので、ログイン認証サーバを作ってみる。 他には監視サーバをつくてみるとかもよい。 分散システムのアルゴリズムを実装してみたりもおすすめ。 車輪の再発明プロトコルや低レイヤなどの普遍的で長く使える技術を効率よく学べる。 似たものを作るので元のソースコードを必然的に読むことが増える。 RFCを読み解く練習にもなる。新しい実装の公開にも読み解ける。 車輪の再発明の次はなにか、それは代表的プロダクトを作ってみる。 代表的プロダクトとはあの人といえばこのプロダクトと呼ばれるもの。 車輪の再発明+アイデア=代表的プロダクトになる可能性があるのでは? 既存のソフトウェアの不満点を解決、デプロイや運用が既存のソフトウェアより簡単になっている。 抽象化しすぎると特定の規模に絞れないので、ドメインを対象に特化してみる。 書き直すならどの言語で書き直すのか?UIの考え方も重要。 ここのUIは運用する人目線のインターフェースをとらえる。 既存の言語をGOで書き直す流行りがあった。 ワンバイナリで動くので導入障壁が低い。 対話型インターフェースにしないでyをきいてこないようにすれば、 自動化の妨げにならないとか運用目線で考える。 設定ファイルや自動化が難しいツールをCruby/mrubyなどで作り直す。 気をつけよう!! 発明アンチパターン(嫌われる車輪の再発明)はやめて! 既存の劣化品を作ってプロダクションにいれてしまうことなど。 既存のモノの修正で十分済むのに新しい物をつくって導入してしまうことなど。 自分の発明にするには作ろうとしている対象の領域の深い知見が必要。 実装すればわかるのは、たいてい勝てない。 作りなおすのはアーキテクチャとしてダメなとき。 やってみた側になるには手を動かすのが大事なので手を動かそう! 車輪の再発明をするときどこまで実装するのかは、 どこまで調べるのかは最初からきめる。 最初にゴールを決める。 プライベードと仕事の線引きはどうするのか、 社内と合意をとる。合意をとるためにも見せられるものが必要。 そのためにも手を動かす。

  • 機械学習を用いたAWS CloudTrailログの積極的活用 機械学習興味あるならやってみようよというお話だったと思います。 ベストスピーカー賞ももらっていました。 ここでも疲れが出てきて、ちゃんと聞けていなかったです。 数学とかちゃんとやらないとだよなあ。

  • 自動化のための運用監視設計を皆で考えてみなイカ(仮)

このセッションでもああ、こういう監視設計とかやりたくて SIerから移ったはずなんだよなあということを思い返しました。 やりたかったことを思い出して、やっていこうと思ったセッションです。

内容としてはこれからの運用監視設計の話をしようで、 ゼロから監視設計ができるか、運用目的を明確化した監視と 非機能要件を満たしたシステム監視を行う。 意外と非機能要件の部分の監視が漏れていたりするので、 テストも必ず行いましょう! そして、人は失敗するので手作業を減らして自動化をしようというお話。 テストもserverspecやinfratesterでテストの自動化ができますね。 そして、自動化をすればいいというのではなく、 個人の経験や組織のナレッジを自動化で更に活かすようにしていく。

タイトルがかなり釣り感があるセッションでした。 インドに一ヶ月修行に行って、 世界のためになにができるかを考えた結果、 ソフトウェアエンジニアとして 人に役立つものを作ろうと思ったらしいです。 そしてOSSに貢献した結果、娘から見直されたといういい話が聞けました。 代表的プロダクトを作るには娘が必要で絶望なんて思ったものです。 VulsはツイッターのTLでみたなあと思ったぐらいで、 どんなものかは知らなかったのですが、 かなり良さそうだったので、ちょっといじってみようかなと思いました。 格闘家かしらと思ったけど、いい人そうだったなという感想。

  • 今エンジニアに最も必要なものは「戦略」である!孫子に学ぶ本質のつかみ方

この時疲れがピークに達していて寝てしまっていた。 戦術と戦略の違いから説明していてよかったです。 中国で出版されている戦略の本をおすすめしていてマニアックだなと思いまいした。 戦術と戦略ってビジネスワードとして使われているので、 ITイベントでもこの手の話を聞けるとは思いませんでした。 最近ではSOFT SKILLSという本が売れていたりするので、 個人的には良いと思います。 結果どういう話に結びついたのかは、あまり覚えてないです。。

  • 懇親会

やぱちーとも微妙にエンジニア層が被ってなさそうだなあという印象。 懇親会ではkoudaiiiさんと話してええと様子を伺っていましたが、 どうやら運営側らしく忙しそうだった。 rrreeeyyyさんにsongmuさんが話しかけにきていて これができるエンジニアかと思いました。 懇親会で話しかけて貰えるように顔を広くなるには アウトプット必要だよなあと最近思っていることなので、 やっていかないとだ。 個人的にsongmuさんがナデシコをみていて(劇場版も)、 ナデシコ観てるんだあ思っていました。 隙をみてkoudaiiiさんに話しかけるチャンスをみつけて、 wantedlyに入社したのが一年ぐらいとおっしゃっていて、 その成長速度に感服しました。 コードがかけるインフラエンジニアになれるように背中を追っていきたい。 k8sとマイクロサービスについてお話してくれたWantedlyの方と名刺交換したら dtan4さんじゃんと!名刺を見返して気付きました。 酔っててもちゃんとその場で、名刺をよくみよう。。。 今回はコード書いてるインフラの人と話せたのが本当に良かった。 最近の目指す方向が社内でのポジションを目指すことになってたけど、 本来やりたかったことをやっていくべきなんだと気付きました。 やっていくからやってみたになっていこうと思います。