The Doppler Quarterly (日本語) 春 2018 | Page 63
けるニーズに対応するためにどのように Web サイトを拡
張すればよいのでしょうか。また Web サイトを拡張した
ら、どのようにして高可用性を維持すればよいのでしょ
うか。
このSock Shop のマイクロサービスアーキテクチャー ( 図
2) は、コンピュートインスタンスのクラスター全体に分散
された、一連のコンテナーでパッケージ化した個別のサー
ビスに各サブシステムを分離することにより、拡張性と耐
障害性を確保しています。小規模なサービスは、それぞ
れが Sock Shop の Web サイトで重要なタスクを実行し
ており、たとえば Sock Shop には、動的なページを表示
して、ログインや認証情報などを処理するマイクロサービ
ス、またはショッピングカートと発注の処理を行うサービ
スといった、適切なバックエンドのサービスに顧客のリク
エストをリダイレクトする、フロントエンドのWebサーバー
のクラスターがあります。これらはいずれも、ニーズの増大
に合わせて拡張することが可能です。また、これらの「層」
のそれぞれを個別に「自動拡張」して事前に定義した
SLA に適合させることにより、システム全体の動的なニー
ズに対応できます。このように、どれだけシンプルな Web
サイトであってもコンテナーで実行される数十、または数
百の個別のマイクロサービスに分解できることがわかった
かと思います。しかし、これらすべてのコンテナーのスケ
ジュールを設定してサービスの耐障害性を確保するには
どうすればよいのか、という疑問が残ります。
2018 年春号 | THE DOPPLER | 61