Netflixのモダンなクラウドベースのプラットフォーム

生活リズムが乱れることがしばしばあって、たとえば遅くまでプログラミングの仕事やネットサーフィンをすると脳が興奮してなかなか寝付けない。もともと寝付きが悪くて、遠足の帰りのバスも一人だけずっと起きてるような子供だったのでまあ仕方がない。さらに歳のせいか、連続して睡眠できる時間が短くなり、パフォーマンスの低下につながることが多くなった。

そこで真人間を目指していくつか施策を打っているのだが、そのひとつが布団のなかでPodcastを聞くというものだ。これは @omo2009 さんがTwitterLeslie Lamportのインタビューの話をしていて、聴いてみたら思っていたより面白かったのがきっかけである。

そういうわけで、ちょっと眠れなそうな夜には、イヤホンを寝室に持ち込んでこのIEEEのPodcastを聴くことにしている。他にもいくつかチャンネル登録しているものがあるのだけど、それはいい話があったら紹介したいと思う。

さて今回聴いたのは、
Episode 216: Adrian Cockcroft on the Modern Cloud-based Platform という話で、元Netflixのおっちゃんがモダンなクラウドベースのプラットフォームはどうあるべきか、どうやったら動くのか、という話をしてくれる。

まあ「ちょっと分散システムの実験したいときに200台のサーバーを10分くらいで立ちあげれるのはすごいアドバンテージだよね」とか「要は普段必要なものよりも大きいコンピューターリソースのプールが常にじゃぶじゃぶあるのが重要(なのであって、プライベートでもパブリックでもどっちでもいい)」というのはクラウド使ってる人だと常識だろう。5000万人にコンテンツを配信して行動をトラッキングして推薦するとか鬼のようなスケールでやっているわけだけども。一部ではまだオンプレ残ってるというのも面白かった。

仕事柄面白かった言葉は "Every Slice of Service" だ。可用性が重要。どんな障害があってもとりあえず顧客がテレビをみるのが止まったり遅れたりしてはいけない。ネットワークが切れたり不調になったりしても、サービスを構成するシステムをどう輪切りにしても、ひとつひとつの輪切りでストリーミングのシステムが上手く動いてないといけない。NetflixではよくChaos Monkeyが話題になるけど、ノードだけじゃなくあらゆる故障パターンをちゃんと想定して運用している(そういう障害を経験したから言ってるのだろう)。一方で全部そういうアーキテクチャにするのは無理なのでバランスとるのも必要なのだけど。

マイクロサービスの話もしてたか。Javaのモジュールのバージョン依存性の管理や、巨大クラスができる話、わずかな変更がサービス全体をぶっ壊してロールバックするリスクとかそういうの。是非とも聴いてみるとよい。よく眠れる。わたしも最後まで聴くのに3晩かかった。

もともとテックなイベントでの発表動画や、最近はやりのなんとか.fm系のやつは人間の喋る速度に律速されるので情報密度が低いから文章読んだほうがマシだろと思っていた。のだけど、情報密度を上げて文章にするとそれはそれで僕のような読書しないもやしっ子にはもともと難しい話だった。脳に筋肉が足りないのである。人間の話す声というのは素晴らしいものである。

ちなみに日本語のPodcastは、元深夜ラジオ勢としては聴きこんでしまって眠気を飛ばす恐れがあるので、購読していない。