過去問ドリル

LinuCレベル4 システムアーキテクト システムアーキテクチャ 問18

システムアーキテクチャ/アーキテクチャの設計原則と主要パターン

マイクロサービス構成への移行を検討している。受注・在庫・配送の3サービスが現在1つの共有RDBMSを使っている。各サービスが専用のデータストアを持つ「データベース・パー・サービス」パターンの特徴として最も適切なものはどれか。

当サイトのオリジナル問題(LinuCレベル4 システムアーキテクトの出題範囲「システムアーキテクチャ」に対応。実際の試験問題ではありません)

正解:A

解説

データベース・パー・サービスパターンでは、各サービスが自分専用のデータストアを持つため、スキーマ変更が他サービスのデプロイに影響を与えなくなります。一方、共有DBが存在しなくなるため、サービスをまたがったJOINは使えなくなり、データ結合はAPIを通じた取得やイベントを用いたデータ同期で実現する必要があります。また、ACIDトランザクションで複数サービスをまとめて更新することもできなくなるため、SagaやTCCなどの分散トランザクションパターンが必要になります。なお、このパターンにより各サービスは用途に合ったデータストア(RDB、KVS、グラフDB等)を選ぶポリグロット永続化が可能になります。

選択肢ごとの解説

  • A正しい。各サービスが専用のデータストアを持つことで結合が疎になり、自サービスのスキーマ変更が他サービスのデプロイを壊さなくなります。
  • B誤り。各サービスのデータストアが分離されるため、共有DBのACIDトランザクションで複数サービスをまとめて更新することはできなくなります。
  • C誤り。各サービスが専用のデータストアを持つとサービスをまたいだJOINは使えなくなります。集計はAPIの呼び出しやイベント連携で実現します。
  • D誤り。データベース・パー・サービスパターンは逆に、サービスごとに適したデータストア製品を選ぶポリグロット永続化を可能にします。
LinuCレベル4 システムアーキテクトの問題を演習モードで解く