全体概要

本セミナーは、2015年時点における世界最先端の大規模分散システムの実装思想と技術スタックを、Twitterの事例を中心に体系的に解説するものです。セミナー全体が提起する中心的な問いは、「数億人規模のユーザーを支える分散システムを、いかにして信頼性・予測可能性・拡張性を保ちながら構築・運用できるか」という点にあります [p.5, p.6]。

Twitterのアーキテクチャーは2009年のモノリシックなRuby-on-Railsアプリから始まり、わずか数年のうちにサービス指向・非同期処理・クラスター管理へと劇的な変貌を遂げました。その変化の背景には、「毎秒100万以上のtweetに耐える」という具体的な性能要件と、「予測可能なパフォーマンス」への強い要請がありました [p.5, p.103]。平均性能ではなく最悪ケース性能を設計基準に据えるというこの姿勢は、大規模システムの本質的な哲学として本講義全体を貫く思想的な背骨となっています [p.3, p.103]。

技術的なアプローチの最大の特徴は二つあります。第一に、非同期処理と関数型プログラミングの融合です。TwitterはScalaと独自ライブラリFinagleを使い、分散システムを「Futureの巨大な変換装置」として捉え直しました [p.5, p.2]。Futureとflatmap、Filterといった関数型のコンビネーターによって、非同期処理の合成・エラー処理・並列化が統一的なモデルで記述できることを示しています。第二に、こうしたシステムの中核実装をオープンソースとして公開している点です [p.6]。Finagle、Mesos、AuroraといったコンポーネントはいずれもOSSとして公開され、GoogleのBorgに触発されながらも、Googleが公開しなかった領域を切り拓く意義を持ちます [p.191, p.192]。

さらに、分散データベースManhattanの設計思想は、可用性・低遅延・拡張性・運用容易性・開発者生産性という多角的な要件を同時に満たすためのアーキテクチャー的試みを示しており [p.99, p.100, p.101]、クラスター管理基盤Mesosは「データセンターをOSのように扱う」という発想によって、大規模分散の世界に新たなパラダイムをもたらしています [p.128]。本セミナーは、Twitterという一企業の技術進化を通じて、大規模分散システムの現在地と未来の方向性を鮮明に照らし出す、きわめて実践的かつ思想的な講義です。

講義のロードマップ

ここでは、セミナーの講演資料がどのようなパートから構成されているかを示します。また、それぞれのパートのポイントを紹介します。

■ Part 1: Twitterのシステムの変化

2009年から2014年にかけてのTwitterのアーキテクチャー進化を概観します。モノリシックなRailsアプリから、サービス指向・ヘテロな分散システムへと移行した軌跡を追い、その変化を駆動した技術的・組織的な動機を明らかにします [p.9, p.10, p.11, p.12, p.13]。

■ Part 2: Finagle — 関数型言語による分散処理の記述

Twitterの分散システムの中枢ライブラリであるFinagleの設計思想を、関数型プログラミングの概念から丁寧に積み上げて解説します。「計算=関数」「非同期=Future」「合成=flatMap」という三段階の論理展開が、大規模RPCシステムの統一的な記述モデルへと結実する過程を示します [p.20, p.79]。

■ Part 3: Manhattan — 多機能分散データベース

毎秒数百万クエリー・複数地域展開・最悪ケースでの低遅延という苛烈な要件に応えるため、Twitterが既存OSSを捨てて自社開発した分散データベースManhattanの設計哲学と実装を解説します。「信頼性」「可用性」「拡張性」「運用容易性」「低遅延」「開発者生産性」という六つの設計要件がその全体構造を規定しています [p.99, p.100, p.101]。

■ Part 4: Mesos — データセンターOSとその影響の拡大

「データセンター全体を一つのリソースプールとしてプログラムする」というMesosのビジョンと、その上に構築されたAurora・Mesosphere・Docker Containerizer等のエコシステムを包括的に解説します。GoogleのBorgをオープンソース化した系譜に位置し、大規模分散の民主化という歴史的意義を持ちます [p.128, p.191]。

■ Part 5: 歴史的・社会的考察

大規模分散システムのパワーが、かつてはGoogleのみが持っていたものから、TwitterやNetflixを経てMesosphereによって「万人が利用できる技術」へと民主化されつつある変化を俯瞰します [p.190, p.194, p.195]。