🧩 Microservices Architecture
✅ このスタイルの概要
アプリケーションを小さな独立サービスに分割し、独立デプロイ・独立スケールを可能にする構造スタイル。
✅ 解決しようとした問題
- 巨大モノリスの開発速度低下
- チーム規模増加による衝突
- 機能ごとに異なるスケール特性への対応
✅ 基本思想・ルール
- サービスごとに独立デプロイ
- 独立したデータストア(Database per Service)
- API(REST/gRPC/Event)による疎結合連携
- DevOps / CI/CD / Observability の強い前提
概念図(Conceptual Diagram)
出典: Microsoft, “Microservices architecture style – Azure Architecture Center”.
https://learn.microsoft.com/en-us/azure/architecture/guide/architecture-styles/microservices
✅ 得意なアプリケーション
- 多チーム・多領域での開発
- 可用性・スケール要件が高い Web サービス
- 機能ごとに技術選択が異なる場合
❌ 不向きなケース
- 小規模プロダクト(オーバーエンジニアリング)
- 運用が重く、SRE 体制が不十分
- 分散トランザクションが大量に発生するドメイン
✅ 歴史
- Netflix / Amazon の成功により普及
- SOA の思想をより軽量に実装した流派として発展
✅ 関連スタイル
- SOA:より重量級でエンタープライズ的な祖先
- Modular Monolith:導入前の構造整理として有効
✅ 代表的なフレームワーク
-
Spring Cloud
Config / Gateway / Discovery / Circuit Breaker など、Micoservices の総合基盤。 -
Go + gRPC + Kubernetes
軽量で高速なサービス構築に強い組み合わせ。 -
Node.js / NestJS / Express
BFF や小粒サービスに適した構成。 -
AWS(ECS / Lambda / API Gateway / EventBridge)
マネージドサービスによるマイクロサービス構築。 -
Dapr
サイドカーでサービス間連携を提供するプラットフォーム。
✅ このスタイルを支えるデザインパターン
-
Facade
API Gateway を通じた統一入口。 -
Proxy
Service Mesh や Sidecar によるトラフィック制御。 -
Observer
イベント駆動連携やドメインイベント配信。 -
Mediator
Orchestrator(Workflow)による複数サービス調整。 -
Strategy
サービスごとに異なるアルゴリズム/技術選択。
✅ まとめ
Microservices は
「高速開発 × 高スケール × 高可用性」 のための強力な構造だが、
運用コストが高いため 組織規模とドメイン特性に依存する。