スタック・オーバーフロー、わずか9台のオンプレサーバでQ&Aサイトを運営

デジタル空間における最新かつ最高のツールやテクノロジーに関する開発者からの何千もの問い合わせを受け付けているにもかかわらず、開発者向け Q&A プラットフォームの Stack Overflow(スタック・オーバーフロー) は、自身のインフラに対してかなり古いアプローチを維持し続けています。

先週、Scott Hanselman氏のHanselminutes Podcastに出演したStack OverflowのエンジニアリングディレクターRoberta Arcoverde氏は、同社がQ&Aプラットフォーム全体のインフラを単一のアプリケーションでまかなうオンプレミス型のアプローチを維持していることを説明しました。

「私たちはオンプレミスで、自社データセンターで運用しており、クラウドには移行していません。また、モノリシックなアプリケーションなので、サービスやマイクロサービスにブレークダウンしていません」

Stack Overflow上の過去の投稿によると、同社は2010年にオレゴン州からニューヨーク/ニュージャージー州のQTSデータセンターに移行しています。ちなみにQTSはニュージャージー州では、East Windsor、Jersey City、Piscatawayの3箇所でサイトを運営しています。

Stack Overflowは以前、デンバーにあるFortrustのデータセンターについても言及していました。尚、Iron Mountainは2017年にFortrustを買収しています。

Arcoverde氏は、同社がわずか9台のWebサーバで稼働する単一の.NETベースのマルチテナントWebアプリケーションを実行していると付け加えました。そのアプリケーションは、1秒あたり約6,000のリクエストを処理し、1カ月あたり約20億のリクエストを処理しています。Stack Overflowの下で、ServerFault、SuperUser、Arqadeなど175以上のサイトを運営しているQ&A技術のStack Exchangeも、この9台のマシンで運用が行われています。

「これらのサーバは、5〜10%の容量で稼働しているので、理論上は1台のウェブサーバで運用することも可能です。しかし、私たちはそんなことはしたくはありません。私たちは低レイテンシの設計です。メモリを大量に消費することはできないので、あらゆる場所で割り当てを少なくするように設計しています。ガベージコレクションで時間稼ぎをする必要がないように、回収しなければならないようなオブジェクトを作らないようにして、9台のウェブサーバのメモリ圧迫を避けるようにしています」

「そのおかげで、私たちは成長し、何年も9台のウェブサーバで稼働する今の状態を維持できているのです。この2年間、新しいマシンを買っていないんですよ」

クラウドへの移行について尋ねると、Arcoverde氏は、現在のセットアップと比較して、コストとレイテンシが努力に見合わないと答えました。

「クラウドへの移行については、何度も検討したことがあります。私が入社した当時は、StackOverflowをクラウド上で運用するためにどれだけのコストがかかるかを理解するための演習を定期的に行っていたが、それは決して割に合うものではなかった」と彼女は言います。「最近では、クラウドについて考えるとき、そのパワーについてはあまり考えず、レイテンシについてを気にするようになっています。私たちは、ノード間をシングルホップし、そしてこれらのホップを10ギガバイトのネットワークケーブルで接続するインフラを持っていますが、これはクラウドで真似するのが非常に難しいインフラです。しかし、私たちはコンスタントに再評価は行っています」

最新の技術トレンドに関連する質問を無限にホストしているにもかかわらず、Stack OverflowはKubernetesやマイクロサービスといったものをほとんど敬遠してきた、とArcoverde氏は話しています。

なぜ、モノリス(=大きな単一機能)をマイクロサービスやサービスにブレークダウンするのでしょうか?一般的には、チームを分けて拡張したい、複数のチームが同じプロジェクトで互いに踏みつけ合うことなく作業したい、例えば高速なデプロイを行いたい、などの理由からです。高速なデプロイは、これまで問題になったことはありません」

ただし、彼女はこれは将来的には変わる可能性があると指摘しました。Stack Overflowは、50人ほどのエンジニアを抱え、全員が同じコードベースで作業するまでに成長しました。

「この14年前のコードベースでは、新しいエンジニアを採用するのが難しくなってきています。おそらく(将来的には)、この特定のモジュールを1つのサービスにブレークダウンして、特定のチームに渡し、彼らがコードベース全体を理解する必要がなくなるような状況になるのではないでしょうか。しかし、まだそこまでには至っていません。これは、今直面している問題とは思えません」

「私たちは常に再評価と変化を繰り返しており、今、成長している今、モノリスのどの部分を壊し、次の成長段階に備えるべきかについて、多くの会話を交わしています。私たちは現実主義者ですから、もしそのようなことが必要な時が来たら、ぜひ検討したいと思います」

この記事は海外Data Centre Dynamics発の記事をData Center Cafeが日本向けに抄訳したものです。

関連記事一覧

  • コメント ( 0 )

  • トラックバックは利用できません。

  1. この記事へのコメントはありません。