• トピック
  • マイクロサービス アーキテクチャとは

マイクロサービス アーキテクチャとは

マイクロサービス アーキテクチャ(マイクロサービスに短縮されることもあり)は、アプリケーション開発のためのアーキテクチャ スタイルの一つです。マイクロサービスによって、大きなアプリケーションを、それぞれが独自の責任範囲を持つ独立した小さな部分に分割できます。単一のユーザー リクエストを処理するには、マイクロサービス ベースのアプリケーションが多数の内部マイクロサービスを呼び出して、レスポンスを作成します。

コンテナは、依存関係に気を取られることなくサービスの開発に集中できるため、マイクロサービス アーキテクチャの例として非常に適しています。最新のクラウド ネイティブ アプリケーションは、通常、コンテナを使用してマイクロサービスとして構築されます。

Google Kubernetes Engine がコンテナを使用してマイクロサービスベースのアプリケーションを作成する方法については、こちらをご覧ください。

定義されたマイクロサービス アーキテクチャ

マイクロサービス アーキテクチャは、アプリケーションがサービスのコレクションとして開発されているアプリケーション アーキテクチャの一種です。マイクロサービス アーキテクチャの図とサービスを個別に開発、デプロイ、維持するためのフレームワークを提供します。

マイクロサービス アーキテクチャ内の、各マイクロサービスは、アプリケーションの機能に対応し、独立したタスクを処理するように構築された単一のサービスです。各マイクロサービスは、シンプルなインターフェースを介して他のサービスと通信し、ビジネス上の問題を解決します。

マイクロサービス アーキテクチャのメリット

容易な導入

マイクロサービスは個別にテストしてデプロイできます。デプロイ単位が小さいほど、デプロイが容易になります。

テクノロジーの選択肢が豊富

マイクロサービスは異なる言語やフレームワークで実装できます。マイクロサービス アーキテクチャのパターンごとに、特定のユースケースに最適なテクノロジーを自由に選択できます。

チームの柔軟性の向上

マイクロサービスは、チームごとに個別に管理できます。マイクロサービス アーキテクチャの例間のスケールによって、1 つのチームが 1 つまたは複数のマイクロサービスを簡単に管理できます。

耐障害性設計

マイクロサービスを使用すると、信頼性のある設計が簡単になります。サービス間の明確な境界を確保することで、サービスが停止した際のレスポンスが容易になります。

開発サイクルの高速化

マイクロサービスによって開発サイクルが短縮されるため、デベロッパーはモノリシック デプロイ サイクルによって機能の提供または更新を待つ必要がなくなります。

マイクロサービス アーキテクチャの必要性

マイクロサービス アーキテクチャを使用すると、変化する市場の状況に組織が適応しながら、デプロイを加速し、柔軟性を高め、迅速に革新することができます。  

マイクロサービスは、クラウド アプリケーションを構築する一般的な方法になってきており、コンテナ開発環境に適しています。Google Kubernetes Engine などのプラットフォームでマイクロサービスを実行して、コンテナの管理、ホスト、スケーリング、デプロイができます。

マイクロサービスベースのアプリケーションの構築を容易にするために、デベロッパーは複数のマイクロサービス アーキテクチャ パターンを使用できます。これらのパターンを示すはオンラインで多数公開されています。

以下に示すアプリケーション タイプのモダナイゼーションやシンプル化がビジネスの優先事項である場合、コンテナ環境内で構築されたマイクロサービス アーキテクチャが適しています。

  • さまざまな環境で再利用可能なスタンドアロンのビジネス アプリケーション
  • 最新のプログラミング言語で書き換える必要があるレガシー アプリケーション
  • イノベーションとデリバリーの迅速化が必要な迅速なアプリケーション
  • スケーラビリティと柔軟性を必要とするモノリシック アプリケーション

マイクロサービス アーキテクチャの用途

通常、マイクロサービスはアプリケーション開発を高速化するために使用されます。Java を使用して構築されたマイクロサービス アーキテクチャは、特に Spring Boot アーキテクチャが一般的です。また、マイクロサービスとサービス指向アーキテクチャを比較するのも一般的です。どちらも同じ目的を持ち、モノリシック アプリケーションを小さなコンポーネントに分割しますが、それぞれのアプローチが異なります。マイクロサービスのアーキテクチャの例を次に示します。

ウェブサイトの移行

モノリシック プラットフォームにホストされている複雑なウェブサイトは、クラウドベースおよびコンテナベースのマイクロサービス プラットフォームに移行できます。

メディア コンテンツ

マイクロサービス アーキテクチャを使用すると、画像アセットと動画アセットをスケーラブルなオブジェクト ストレージ システムに保存し、ウェブやモバイルに直接提供できます。

トランザクションと請求書

支払い処理と注文は個別のサービス ユニットとして分離できるため、請求書発行が機能しない場合でも支払いの受け入れが継続されます。

データ処理

マイクロサービス プラットフォームは、既存のモジュール化されたデータ処理サービスのクラウド サポートを拡張できます。

Google Cloud を使用すると、マネージド コンテナ サービスである Google Kubernetes Engine、またはフルマネージド型のサーバーレス サービスである Cloud Run を簡単に使用できます。

ユースケースに応じて、Cloud SQL とその他の Google Cloud プロダクトおよびサービスを簡単に統合して、マイクロサービス アーキテクチャに対応できます。