
87
5
章
複数マシン構成のクラスタの
モデリング
現代的な
Web
アプリケーションは、複数の要素で構成されています。それらの構
成要素は、サービスと呼ばれることあります。最も広く見られるのは、
Web
とデー
タベースサーバーの分離という形です。キャッシュサービス、ワーカーキューなどが
サービスになっていることもあるでしょう。複雑な
Web
サイトは、数百のこうした
サービスから生み出されることも多いのです。
こうしたやり方で
Web
サイトが設計される場合、これはサービス指向アーキテク
チャと呼ばれることがよくあります。
1
章の「
1.2
Vagrant
道」で説明した通り、
Vagrant
を使っている開発者は、
vagrant up
とするだけで、完全な開発環境を手に入れられることを期待します。場
合によっては、これには複数のマシンが必要になるということや、それらが
1
つの
開発環境の一部になっていることが望ましいということを意味します。
歴史的には、この種のアプリケーションの開発は、必要なサービスをすべて
1
つ
のマシン上に詰め込むことによってまかなわれてきました。多くの理由から、これは
理想的なやり方とは言えません。まず、実働環境ではサービスはこのように配置され
るわけではないので、開発環境と実働環境で動作がすぐに違ってきてしまい、「僕の
環境では動いていたのに」バグが急速に生じてくることになります。次に、開発環境
で障害のシナリオをテストすることが非常に難しくなります。クラスタ内のノードが
一つ死んだ場合、どうなるのでしょうか? ワーカーキューのバックログが多くなり ...