マイクロサービス
#アーキテクチャ
定義
複数の独立したサービスの集合体
各サービスが独自のビルド・デプロイ・実行単位
サービス間はネットワーク通信(HTTP / gRPC / Messaging)
本質
変更・実行・失敗の単位をサービス単位に分割する
強み
サービスごとに独立してリリース・スケール可能
障害の影響範囲を限定しやすい
チームごとに所有・責任を明確化できる
技術選択の自由度(言語・DBなど)
弱み
分散システムの複雑さが一気に入る
ネットワーク障害・遅延・部分失敗への対処が必須
データ整合性が難しい(分散トランザクション問題)
開発・運用・テストコストが高い
観測性(ログ・トレース)なしでは地獄
よくある誤解
❌「マイクロサービス = スケールする」
✅ 「スケール“させられる”設計と運用が前提」