Latest evidence-based health information
Ipad

Twitterはサービス中断を防ぐためにオープンソースに目を向ける

Twitterはサービス中断を防ぐためにオープンソースに目を向ける
Twitterはサービス中断を防ぐためにオープンソースに目を向ける

混乱を防ぎ、コストを抑えながらサービスを拡大するために、Twitter はコア インフラストラクチャを大幅に変更する必要があり、その際にオープン ソース ツールを導入しました。

Twitterは1秒間に約6,000件のメッセージを処理しており、1日あたり5億件以上、1週間あたり約35億件に上ります。また、今年初めに日本で映画『天空の城ラピュタ』が放映された際、ピーク時には1秒間に14万3,000件という記録的なメッセージを処理したと、Twitterのオープンソースコンピューティング責任者であるクリス・アニシュチク氏は月曜日にエディンバラで開催されたLinuxCon Europeで語りました。

アニシュチク氏によると、これだけの数のメッセージを処理するのは同社にとって課題だったという。Twitterは2006年、分散プラットフォームではなくモノリシックなRuby on Railsアプリケーションを使用してスタートした。当時はサービスがそれほど混雑していなかったため、この構成はうまく機能していたが、2008年にフェイルホエール(Twitterがサービス障害を表す際に用いる用語)が大量に発生し始めたことで、成長痛に見舞われた。

Twitterのエンジニアたちは、いわば応急処置的な対応で対応できたとアニシュチク氏は語った。しかし、2010年のサッカーワールドカップでは事態は深刻化した。この時期はTwitterにとって輝かしい時期でもあり、同時に暗黒時代でもあった。1秒あたり約3,000件のメッセージが送信されていたにもかかわらず、その膨大なメッセージ数を処理するのは困難だった。

「エンジニアリングの観点から、全員が全力を尽くさなければならなかったので、本当に辛かったです」とアニシュチク氏は語った。誰かがゴールを決めたり、レッドカードやイエローカードをもらったりするたびに、サイトはダウンしていたと彼は語った。

そのため、状況を変える必要がありました。状況を分析した結果、Twitterは、データベースの生の情報の管理からサイトのグラフィックレンダリングまで、すべてを単一のコードベースで処理していることが問題だと判断しました。「システムを維持するために、多くのマシンを投入して問題を解決していました。コストがかかるため、最善の解決策ではありませんでした」とアニシュチク氏は述べています。

Twitter のエンジニアたちは、システムを改善して新機能を展開するのではなく、特定の障害を解決するために「クジラ狩り遠征」に出かけましたが、それは同社が本当に行う必要のあることではありませんでした。

新しいインフラ

Twitterは最終的に、新たなインフラへの投資時期が来たと判断し、JVM(Java仮想マシン)への注力を強めました。これにより、モノリシックな単一アプリケーションを、メッセージ処理に特化したサービスなど、複数のサービスに分割することが可能になったとアニシュチク氏は述べています。現在、エンジニアリング部門は、ほぼ独立したチームで構成され、それぞれが独立して業務を遂行しています。

Twitterはコスト削減とマシン台数の削減のため、Apache Mesosも導入しました。これは元々、カリフォルニア大学バークレー校の研究プロジェクトから始まったものです。Aniszczyk氏によると、Mesosはクラスタマネージャであり、同一マシン上で複数のプロセスを実行できるため、ハードウェアをより効率的に利用してコストを削減できます。これらの変更は2013年8月までにほぼ完了しました。

Twitterは、高性能プロトコルサーバーの構築を支援するNettyや、ビッグデータジョブの記述を容易にするScaldingといったツールも活用していました。TwitterはRuby on Railsアプリケーションフレームワークから完全に移行できたわけではありませんが、これらのツールとコアインフラストラクチャのJVMへの移行を組み合わせることで、大量のデータを処理するシステムの障害を回避し、パフォーマンスを向上させることができたとアニシュチク氏は述べています。

「おかげで会社として大きく成長できた」と彼は付け加えた。Twitterには2,000人以上の従業員がおり、そのうち約半数がエンジニアだと彼は語った。

Twitterが学んだ教訓の一つは、インフラをオープンソースに基盤を置くことが賢明だということです。「最近では、最高のソフトウェアはオープンソースから見つかるのです」とアニシュチク氏は述べ、Twitterが100の公開リポジトリをリストアップしているtwitter.github.ioで実践しているように、オープンソースコミュニティへの還元も有益だと付け加えました。

漸進的な変化も良い考えだと彼は述べた。「少しずつ少しずつ進めていくことで成功の可能性が高まります」と彼は述べ、企業は大学から学び続けるべきだと付け加えた。

Linux Foundationのエグゼクティブディレクター、ジム・ゼムリン氏は、Twitterのコアインフラ変更への取り組みは、企業がオープンソース技術からどのような恩恵を受けられるかを示す好例だと述べた。「コストを抑えられるだけでなく、インフラの規模拡大に伴う課題にも迅速に対応できるようになります」とゼムリン氏は述べた。

ゼムリン氏は、グーグル、アマゾン、フェイスブックなどの大企業を含む多くの企業がオープンソースのハイパースケール・コンピューティング・プラットフォームを構築しており、そこから教訓を得ることができると述べた。

Otpoo

Health writer and researcher with expertise in evidence-based medicine and healthcare information.