調査まとめ

必要な時に応じて引用できるようにするための資料集

【書評】マイクロサービスパターン

 

 

 

マイクロサービスとは
  • サービスを1つの大きなサービス(モノリスシステム)としてではなく互いに独立しているサービスの集合体として開発するアーキテクチャを指す
  • 1つのマイクロサービスの変更が他のサービスの仕様に影響を与えない状態にする必要がある(失敗すると密結合な分散モノリスシステムになる)
  • マイクロサービスアーキテクチャを実務で適用するには、DevOps、小規模のチームの自律性(関連:コンウェイの法則)のある環境が前提条件となる
  • アーキテクチャを構築するためのパターン言語も解説されている
  • 具体的な実装方法のノウハウについては本書精読推奨

 

 

f:id:dialectic4th:20210309133043p:plain

f:id:dialectic4th:20210309135507p:plain

 マイクロサービスアーキテクチャの利点
  • 大規模で複雑なアプリケーションのCI/CDを可能にする
  • 個々のサービスが小さく簡単にメンテナンスできる
  • サービスをそれぞれ個別にデプロイできる
  • サービスをそれぞれ個別にスケーリングできる
  • チームに自主性・自律性を与える
  • 障害分離に優れている
  • 新しいテクノロジを簡単に実験、採用できる
 マイクロサービスアーキテクチャの欠点
  • (マイクロサービスアーキテクチャは万能薬ではない)
  • サービスの適切な分割方法を見つけるのが難しい
  • 分散システムは(なると)複雑であり、開発/テスト/デプロイが難しくなる
  • 複数のサービスにまたがって使われる機能デプロイには綿密な調整が必要になる
  • いつマイクロサービスアーキテクチャを採用すべきかの判断が難しい