マイクロサービスの3つの基本パターン
- ロードバランサの背後に同一機能のサービスのコピーを並べる(負荷分散)
- ルータの背後に、同一機能のサービスのコピーを並べる(データのパーティションに振り分ける)
- サービスコーディネーターの背後に、異なる機能のサービスを並べる(機能分割)
負荷分散とデータパーティショニングは、性能要求に応えるため。サービスは同一機能のコピー。アプリケーションの構成要素で性能向上に効果のある部分をサービスに切り出す。
機能分割は機能の異なるサービスに分割して、それぞれのサービスをAPIで連携して、1つのアプリケーションを組み立てる。
三つのパターンの組み合わせもあるが、必ずしも三つのパターンがすべて必要なわけではない。
多くのアプリケーションは厳しい性能要求への対応よりも、アプリケーション機能の複雑さを分解するためにマイクロサービスを検討することになるだろう。