概要
マイクロサービスは、単一の大きなアプリケーションを、独立してデプロイ可能な小さなサービス群に分割するアーキテクチャスタイルです。各サービスは特定のビジネス機能を担当し、軽量なメカニズム(通常はHTTPリクエストを介したAPI)で互いに通信します。これにより、開発速度の向上、技術スタックの多様化、システムの柔軟性向上などが期待できます。
マイクロサービスアーキテクチャでは、サービスはそれぞれ独立して開発、デプロイ、スケールできます。サービス間の通信には、REST API、gRPC、メッセージキュー(RabbitMQ、Kafkaなど)が用いられます。データストアもサービスごとに分離することが一般的で、サービス固有の要件に合わせて異なるデータベース技術を選択できます。サービスディスカバリー、APIゲートウェイ、コンテナオーケストレーション(Kubernetesなど)といった技術がマイクロサービスアーキテクチャの実装をサポートします。分散トレーシングやロギングといった監視・運用ツールも重要となります。