14章サービスベースアーキテクチャ
サービスベースアーキテクチャは、マイクロサービスアーキテクチャのハイブリッド型変種であり、その柔軟性の高さから、最も実用的なアーキテクチャスタイルの1つと考えられている。サービスベースアーキテクチャは分散アーキテクチャだが、マイクロサービスやイベント駆動アーキテクチャといった分散アーキテクチャほどは複雑性やコストは高くなく、多くのビジネス関連アプリケーションにとって人気の選択肢となっている。
14.1 トポロジー
サービスベースアーキテクチャは、大きな単位で分割されたレイヤード構造に従った分散アーキテクチャであり、独立してデプロイされるユーザーインターフェイス、独立してデプロイされる粒度の粗いリモートサービス、そしてモノリシックなデータベースから編成される。
このアーキテクチャの基本的なトポロジーを図14-1に示すが、このアーキテクチャスタイルにはさまざまなバリエーションが存在する。独立したユーザーインターフェイスやデータベースを使用するサービスがあることもある。この章では、これらのトポロジーバリエーションについて詳しく説明する。
図14-1 サービスベースアーキテクチャの基本トポロジー
このアーキテクチャスタイルにおけるサービスは、通常、システムの特定のドメインまたはサブドメインを表すため、ドメインサービスと呼ばれる。ドメインサービスは一般に粒度の粗い「アプリケーションの機能の一部」を表す。たとえば、注文処理や出荷などだ。ドメインサービスは通常、互いに独立しており、個別にデプロイされる。また、基本的にモノリシックアプリケーションと同じ方法でデプロイされるため、必ずしもコンテナ化を必要としない。DockerやKubernetesなどのコンテナにデプロイすることも選択肢の1つではある。単一のモノリシックなデータベースを使用する場合には、ドメインサービスの数は12個以下に抑えることが推奨される。そうしないと、変更管理やスケーラビリティ、耐障害性の問題が発生する可能性がある。 ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access