【システム構成要素】ビジネス単位で小さく分ける!マイクロサービスの定義|情報処理問題1000本ノック
巨大な一つの塊(モノリス)としてシステムを作る時代から、小さな独立したサービスを組み合わせる時代へ。現代のシステム設計における基本思想となった「マイクロサービス」の定義を整理しましょう。
1. 問題:小さなアプリケーションを組み合わせる構造
【 問題 】 システム全体を一塊として構築するのではなく、ビジネス上の関心ごとに基づいて独立した「可能な限り小さなアプリケーション」に分割し、それらを連携させて一つの大きなシステムを構成する手法を何と呼ぶでしょうか?
① サービス指向アーキテクチャ (SOA) ② マイクロサービス ③ 3層アーキテクチャ ④ サーバレスアーキテクチャ
2. 正解:アーキテクチャの分類に関する正解
正解: ② マイクロサービス
3. 解説:ビジネスの単位でシステムを切り分ける
「注文管理」「在庫管理」「配送管理」といったビジネス機能ごとに、独立したサービスとして作成します。一つの機能を修正しても他の機能に影響を与えにくいため、特定の機能だけを迅速にアップデートしたり、必要な部分だけを拡張したりすることが可能になります。
[ マイクロサービスのポイント ]
・構成単位:ビジネス上の関心ごとに基づき、可能な限り小さく分割されたアプリケーション。
・独立性:各サービスは独自のデータベースを持ち、個別にデプロイ(展開)が可能です。
・連携:APIなどの軽量な通信手段を用いて、互いにサービスを呼び出し合います。
[ 他の選択肢との違い ]
★ SOA (Service Oriented Architecture):企業全体の業務プロセスを「サービス」として統合する、より大規模・重厚な連携の考え方。
★ 3層アーキテクチャ:UI・ビジネスロジック・データの「階層」で分ける、垂直的な設計手法。
★ サーバレス:インフラの存在を意識せずにプログラムを実行する「プラットフォーム」の形態。
・構成単位:ビジネス上の関心ごとに基づき、可能な限り小さく分割されたアプリケーション。
・独立性:各サービスは独自のデータベースを持ち、個別にデプロイ(展開)が可能です。
・連携:APIなどの軽量な通信手段を用いて、互いにサービスを呼び出し合います。
[ 他の選択肢との違い ]
★ SOA (Service Oriented Architecture):企業全体の業務プロセスを「サービス」として統合する、より大規模・重厚な連携の考え方。
★ 3層アーキテクチャ:UI・ビジネスロジック・データの「階層」で分ける、垂直的な設計手法。
★ サーバレス:インフラの存在を意識せずにプログラムを実行する「プラットフォーム」の形態。
1. 理解のコツ: マイクロサービスは、単なる技術的な分割ではなく「ビジネスの柔軟性」を高めるための戦略です。試験では「ビジネス上の関心ごと」「独立性」「小さなアプリケーションの集合」といったキーワードが正解の決め手となります。
2. 最新トレンドの視点: マイクロサービス化を進めると、管理すべきサービス数が膨大になります。そのため、各サービスの健全性を監視する技術や、サービス同士の通信を制御する「サービスメッシュ」といった技術がセットで語られることが多くなっています。
4. まとめ
「ビジネスの関心ごとで、可能な限り小さく作る」。これがマイクロサービスの核となる考え方です。この定義をしっかり押さえておけば、モノリス(一塊)やSOAとの違いを問う問題にも迷わず解答できます!
PR