LinuCレベル4 システムアーキテクト システムアーキテクチャ 問21
システムアーキテクチャ/柔軟性を高めるアーキテクチャパターンマイクロサービス構成の各サービスコンテナの隣にサイドカーコンテナを配置し、サービス間通信の再試行・タイムアウト・サーキットブレーカーをサイドカーに委ねる設計を検討している。この設計の主な効果として最も適切なものはどれか。
当サイトのオリジナル問題(LinuCレベル4 システムアーキテクトの出題範囲「システムアーキテクチャ」に対応。実際の試験問題ではありません)
- A通信障害への回復ロジックがサイドカーに集約されるため、各サービスのアプリコードをその実装から解放し、業務ロジックに専念できる
- Bサイドカーはアプリと同じプロセス内で動作するため、ネットワーク呼び出しのオーバーヘッドなしに通信制御を行える
- Cサイドカーを配置するだけで、サービス間のプロトコルをHTTPからgRPCへ自動変換でき、通信の高速化も同時に実現する
- Dサイドカーが証明書の管理を代行するため、アプリが証明書の更新処理を自前で実装する必要が生じ、コードが複雑になる
正解:A
解説
サイドカーパターンは、再試行・タイムアウト・サーキットブレーカーなどの横断的な通信制御機能をアプリケーションコードから切り離して別プロセスに担わせます。これにより各サービスは業務ロジックのみに集中でき、共通機能をサイドカー側だけで一元管理・更新できます。サイドカーはアプリと別コンテナ・別プロセスとして動作し、ローカルネットワーク経由で通信します。プロトコルの自動変換はサイドカーパターンの本質的な効果ではありません。サイドカーが証明書管理を引き受けることでアプリ側の実装は簡素化されます。
選択肢ごとの解説
- A正しい。回復ロジックをサイドカーへ移すことで、各サービスのコードは業務ロジックに集中でき、横断的な通信制御の変更もサイドカー側だけで行えます。
- B誤り。サイドカーはアプリと同じプロセスではなく、別コンテナ・別プロセスとして動作し、ループバック越しにアプリと通信します。
- C誤り。プロトコルの自動変換はサイドカーパターンの標準的な効果ではなく、特定のプロキシ実装が持つ付加機能です。
- D誤り。サイドカーが証明書管理を引き受けることで、アプリ側の証明書取得・更新処理が不要になりコードは簡素化されます。