フィオラノ ソフトウェア ジャパン ブログ
    Twitter
  • Facebook
  • Google+

マイクロサービス (その5) –賢さをどこに求めるか–

miroservice-banner

前回 (その4) は、機能性の低いパイプ (Dumb pipe: 土管) のアーキテクチャとして、仮想的なバスを提示しました。

今回は、“smart endpoints and dumb pipes (賢いエンドポイントと機能性の低いパイプ)” の一方である “smart endpoint (賢いエンドポイント)” について考察してみたいと思います。
ビジネス ロジックを複数のマイクロサービスからなるコレオグラフィとして実現し、マイクロサービス間の通信はライトウェイトなメッセージング サーバーで構成される仮想的なバス (Dumb pipe: 土管) によって支えるアーキテクチャが良いと説明しました。
このアーキテクチャによって、オンプレミスやクラウド上に分散されて配置されるマイクサービスを連携し、1つのビジネス ロジックとして実行することが可能になります。

VirtualBus
土管とコレオグラフィ

アトミック vs コンポジット –マイクロサービスの粒度–

atomic-compsite

(この記事は、Fiorano Software Global Blog *1  に投稿された “Microservices – The issue of Granularity: Atomic or Composite?” *2  の意訳です。)

マイクロサービスを開発する際には、常にその粒度について議論の対象となっています。

デベロッパ、ソリューション アーキテクト、アナリストは、サービスの最適なサイズを以下に定義するか議論を続けています。この議論は、多くの場合、次の2つの方法論に帰着します。

  • 単一レベルのサービス
  • 2段階レベルのサービス

マイクロサービス (その4) — 仮想バス アーキテクチャ —

miroservice-banner

前回は “smart endpoints and dumb pipes (賢いエンドポイントと機能性の低いパイプ)” の意味することにについて考察しました。

今回は、マイクロサービス間の連携を支えるこの “smart endpoints and dumb pipes” の具体的なアーキテクチャについて考えてみます。

 

マイクロサービスとは、複数のマイクロサービスが連携して業務処理を実現するアプリケーション アーキテクチャです。
単一の機能にしぼった小さな (マイクロな) サービスを連携させることで、大きな処理を実現するアプローチは、UNIX シェルのパイプのエッセンスを有しています。