YAPC::Asia Tokyo 2015に参加してきた。
各発表で思うところがあったものをまとめてみる。
なお、以下は対象の発表を聞いたかもしくは発表資料を読んだ人くらいしか理解できない内容です。発表資料を読みましょう。
前夜祭
技術ブログを書くことについて語るときに僕の語ること
「これまで自分が書いたエントリを振り返ってみて、『この方向でいいのだろうか』みたいなのを考える」みたいなの、極めて参考になった。
私も過去のブログを振り返ってみて、「これまではこの方向で楽しかったけど、少なくとも今後はこうじゃないな、じゃあどうなんだろう」という思いに駆られた。
さて、じゃあどうなんだろう。考えなくてはいけない。y_uukiさんのお陰で考えることができて感謝感謝である。圧倒的感謝。
1日目
メリークリスマス!
「Perl6はクリスマスに出す予定、ただ、何が起きるかはわからないよね」という話を聞いて以下を思い出した。
Gitのプロジェクトにて、すでに存在するオブジェクトと同じSHA-1を持つコミットをしてしまう可能性があるという不安に対して、
それよりも「あなたの所属する開発チームの全メンバーが、同じ夜にそれぞれまったく無関係の事件で全員オオカミに殺されてしまう」可能性のほうがよっぽど高いことでしょう。
あと、指輪物語は映画で観ていたけどホビットは映画も観てなければ小説も読んでないので、どっちかで中身を知っておかなくてはいけないなと思った。
世界展開する大規模ウェブサービスのデプロイを支える技術
Miiverseのデプロイについて。
以前、Mamiyaを見て、「これが新しいデプロイの形…!!!」という感動を覚えたものだったが、同じコンセプトで、fujiwara/stretcher · GitHub というのも作られたんですね。知らなかった。
「なんかよくわからない事態になっても、消してから再度pushすれば普通に動くようになっている」みたいな話があって、そういう、状態を他からもらってくることによって簡単に復旧できるような環境にできているのはとてもよいですねという感じだった。
Consulと自作OSSを活用した100台規模のWebサービス運用
このYAPCではよくConsulの話を聞いたが、一時期よく聞いていたSerfはどうなったのかなという感じがある。
Serfはもう当たり前のものになったか、機能がある程度似ているConsulに皆の注目を奪われてSerfはあまり使われなくなったのかどちらかなのであろう。
というか、私自身ConsulとSerfの違いをそこまでよく知っているわけではない(「SerfにKVSとか高機能なヘルスチェックがついたのがConsulでしょ」くらいのイメージ)のでConsul vs. Serf - Consul by HashiCorpを読んでみた。
「SerfにKVSとか高機能なヘルスチェックがついたのがConsulでしょ」以外に以下のような感じらしい
- 両方ともゴシッププロトコルで情報伝播
- ConsulのほうがWANを経由してもSerfほど性能が落ちないらしい
- CAP定理でいうと、ConsulはCPでSerfはAPとのこと
- Consulは中央サーバがquorumを維持できなくなるとオペレーションできなくなるので
- あと、上記URLには記載がなかったが、Consulはサーバ/クライアント型でSerfは全員が同等というのと、ConsulにはDNS Interfaceがないというのが結構大きいかなと今回の発表を聞いていて思いました
Consul、stale modeで使っていればかなり信頼性高く使っていけそうな気配を感じた
Conway's Law of Distributed Work
リモートワークについて
- 今、私は東京で京都のメンバーとリモートワークをしているのですが、これからも積極的にチャット上で話していこうと思いました
- 「オフィスにいれば偶然コミュニケーション出来る機会があるが、リモートではそうではないので積極的に!」という感じですので
- 私がリモートワークで意識していることは正しかったなぁという感じで安心した
Electron: Building desktop apps with web technologies
- 猫の顔を認識するアプリがElectronで!!!
- ラーメン大陸的な、投稿だけするようなTwitterクライアントを作りたい
esa.io - 趣味から育てたWebサービスで生きていく
- プロダクトへの強い愛を感じた
- よく寝るのは極めて大切
2日目
Google Cloud Platformの謎テクノロジーを掘り下げる
BigQueryの100億行のフルスキャン及び正規表現マッチが10秒で結果を返すとか、Nearlineというデータアーカイブサービスは安いにもかかわらずデータロードがかなり早いとか、コンテナをいい感じに配置することでハードの性能をかなり高いレベルで使い切ることができているとかそういう感じで結構面白さは伝わった
全体的に、「これはすげぇぇ!!」もしくは「すごいんだろうけどよくわからん!!!」のオンパレードだった
個人的にはロードバランサのIPアドレスはTCP anycastを使用して常に1つだけ(ELBはDNSラウンドロビン)とか「最近はディスクIOが高価なので、コンテナアーカイブ用のNearlineは安くできる」とかの話しが結構面白いよねという感じがした。
我々はどのように冗長化を失敗したのか
これだけ考えて構築したConsulを本番環境で動かせなかったというのは極めて無念だっただろうなぁという思いが強い。「Consulによって最初はDNSラウンドロビンされていたがConsulの冗長性に不安を抱いてhostsも使うようにした結果ラウンドロビンされなくなっていた」とか「Public層からPrivate層への接続が日本を駆け巡っていた」とか「なぜか同じクエリでもえらいスロークエリになる場合があってDBのホストを移行したらなおった」とか、忙しい中だとちゃんと確認せずについついはまりがちな失敗談が、良かった。
「LVSなどの枯れた技術を使った冗長性の担保とConsulを使った冗長性の担保があり、「手に馴染んだ道具を使おう」という話だったが、LVSよりもConsulのほうがある程度それ自身の障害に強いなどあり得ると思うが、大丈夫今回手に馴染んだLVSではなくConsulを使って、「Consulのほうがここが強いぜ」みたいなのはあったか」みたいな質問をしたら褒められたのでよかった
@dekokun 良い質問でした!
— yuuki (@y_uuk1) 2015, 8月 22
答えは、やはり「それ自身の障害への強さだろう」とのことだった。
ソーシャルゲームにおける AWS 移行事例
とにかく「すぐに役に立つぜ!」的な実践的内容が詰まっていてすごかった。便利。
「それまでのデータセンターでの運用だと、プールしているサーバ費用については全車共通費用についていてプロジェクト側の費用が見かけ上安くなっていたが、AWSになって少し高くなった」みたいな話しも極めて重要なところだしそういうのも含めて話されているのがすごく良かった。
HTTP2 時代の Web
私は「理解した 導入する」の層に行きたい!!ある程度理解していたが再度理解を深められた。 「RTTを減らすか、光はこれ以上早くならないのでそもそもRTの回数自体を減らすか」 我々も社内ツールにh2oをリバースプロキシとして導入して検証するくらいはできそうだしやってみたいと思った。
サーバサイドプッシュで、せっかくキャッシュがあっても送りつけるというのはなんとかならんものか…(cookieを使って対処する実装案などがあるという話ではあった)
nginxさんのHTTP/2実装が楽しみ!!
最後に
超面白かった。最近なんかもやもや感あったのが吹っ切れた感じがする。
うぉぉぉぉぉぉ!!!!!