microservices(マイクロサービス)とは
calendar_month2020-04-01 公開 update2020-05-19 更新
システムを、業務上の機能ごとに個別のサービスとなるよう分割し、互いにシンプルな API を使ってメッセージをやりとりしながら、必要な機能を実現するソフトウェアアーキテクチャ。
2014年に、ソフトウェアエンジニアの Martin Fowler らが提唱。日本では Mercari、cookpad などが導入している。
独立性を高めるためにサービスごとに個別のデータストア(データベース)を持たせて、他サービスのデータを参照するときは常に API を経由させるのが一般的。サービス間のやりとりには REST API を使用することが多い。
サービスが互いに独立しているため、複数の開発チームによる並列的な開発、テストが可能で、スケールアウトなどにも対応しやすく、障害発生時にも対処範囲が限定される。
ただし、サービス数が増えるにつれて全体像の把握が難しくなるなどの問題もあり、マイクロサービスを取り入れるかどうかは、状況に応じ、適切に判断する必要があるといわれている。
2000年代に注目されたサービス指向アーキテクチャ( SOA )の発展形と捉えられることもあるが、クラウドコンピューティングの普及や、コンテナ技術、CI / CD の一般化などの技術的動向に基づいて誕生した側面もあり、これらの技術を活かすための枠組みとみなすこともできる。
なお、マイクロサービスに対立する概念として、従来型の1つに集約された構造のシステムを “モノリシックアーキテクチャ” と呼ぶことがある。
label 関連するタグ
