マイクロサービス
まいくろさーびす
Microservices
一言でいうと
システムを役割ごとに小さなサービスに分割して、独立に開発・運用する設計パターンのこと。
詳しい意味
マイクロサービスは、システムを役割(ドメイン)ごとに小さなサービスに分割し、それぞれを独立して開発・デプロイ・スケールする設計パターンです。「ユーザー管理」「決済」「通知」「検索」を別々のサービスとして実装し、APIで連携。各サービスは別言語・別DB・別チームでもよい、というのが特徴。Netflix / Uber / Amazon が大規模化する過程で採用した方式として有名。利点は「障害の局所化」「個別スケール」「チームの自律性」、欠点は「分散システムの複雑性」「運用ツールが大量に必要」「初期コストが大きい」。小規模ではモノリスが正解で、規模に応じて切り出すのが現実的なアプローチです。
何に使うか
組織が複数チームに分かれていて、独立した開発速度が必要なとき。負荷の高い特定機能だけ個別スケールしたいとき。技術スタックを部分的に変えたいとき。
どんな時に出るか
「マイクロサービスに分割」「モノリスからマイクロへ移行」「マイクロは早すぎる」といった場面で登場します。
具体例
- 決済機能だけマイクロサービスに切り出して、PCI DSS 対応スコープを最小化した。
- マイクロサービス化は組織が大きくなってから検討すべきで、最初はモノリスで作るのが現実的。
別名・略称
microservices(まいくろさーびす)microservice(まいくろさーびす)
間違えやすい語
初心者向けメモ
巨大なデパート(モノリス)を、専門店ビル(マイクロサービス)に分けるイメージです。各専門店が独立に営業し、お客さん(ユーザー)は必要な店だけ回る。複数店舗の仕入・物流・スタッフ管理が必要になる代わりに、1店舗が休業しても他は営業できます。