マイクロサービス

アプリケーションを、ビジネス機能を中心に編成された、小さく独立してデプロイ可能なサービスの集合として構造化するアーキテクチャスタイル。

マイクロサービスとは?

マイクロサービスは、内部的な複雑さ(1つの大きなコードベース)を分散的な複雑さ(連携しなければならない多数の小さなコードベース)と引き換えにします。このトレードオフは、チームが独立したペースと明確なオーナーシップを必要とする場合には価値がありますが、分散システムを運用する運用上の成熟度なしに構築する場合には苦痛をもたらします。

関連用語

  • APIコントラクト — プロデューサーとコンシューマーが遵守することに合意する、APIの形式的な仕様(OpenAPI、gRPC proto、GraphQLスキーマ)。
  • イベントチャネル — サービスが非同期にパブリッシュ・サブスクライブする、名前と型を持つイベントのストリーム(多くの場合Kafkaトピックなど)。
  • サービスメッシュ — 通常はサイドカープロキシを介して、サービス間通信を扱う専用のインフラ層。