マイクロサービス

Microservices

マイクロサービスとは

マイクロサービス(Microservices)とは、アプリケーションを独立した小さなサービスの集合として構築するソフトウェアアーキテクチャのスタイルです。各サービスは特定のビジネス機能を担当し、API を通じて他のサービスと通信します。モノリシック(一枚岩)アーキテクチャの対義語として位置づけられます。

マイクロサービスの特徴

各マイクロサービスは独立してデプロイ・スケーリング・更新が可能です。異なるプログラミング言語やデータベースを使用でき、チームごとに独立して開発を進められます。障害の影響範囲が限定されるため、システム全体の可用性が向上します。

AIシステムでのマイクロサービス

AIシステムでは、前処理サービス、特徴量生成サービス、推論サービス、後処理サービスをマイクロサービスとして分離する設計が一般的です。これにより、推論モデルのみを更新したり、特定のサービスだけをスケールアウトすることが可能になります。例えば、画像認識と自然言語処理を別々のサービスとして運用し、負荷に応じて個別にスケーリングできます。

マイクロサービスの課題

サービス間通信のオーバーヘッド、分散システム特有の複雑性(障害の伝播、データの整合性)、運用監視の難しさが課題です。サービスメッシュ(Istio、Linkerdなど)や分散トレーシング(Jaeger、Zipkinなど)を導入して対処することが推奨されます。