The Doppler Quarterly (日本語) 春 2018 | Page 63

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