MSAへの移行の必要性と実現可能性の判断
必要性の観点
- 開発やデプロイの際に、他のチームのソースや共通モジュールが原因で、スケジュール調整やコミュニケーションが妨げられるほどの問題が発生しているか?
- 遅延する開発やデプロイプロセスによって、必要なビジネス開発が遅れたことがあるか?(business の観点で)
- 単一のデプロイによる全体的な影響範囲の把握が難しく、それによって見落としが発生し、頻繁に障害が起きているか?
- 主要サービスによる頻繁なデータベース負荷が原因で、他のサービスに影響を及ぼした事例が多いか?
実現可能性の観点
- エンジニアリングチームが、MSA構造および各サービス間の通信に関する基本的なアーキテクチャを理解しているか?
- CI/CDパイプラインを支えるDevOps/SREチームが存在し、トラブルシューティングに必要なインフラ知識を有しているか?
- MSAやクラウド環境における適切なセキュリティを担保できるセキュリティ担当者がいるか?
- 社内のエンジニアリング最高責任者が、MSA移行の必要性を十分に理解し、共感しているか?
MSAは常に良い選択とは限らない
基本的にうまく運用できるのであれば良い選択となり得るが、実際には国内外の企業で安易に導入した結果、モノリシック構造に戻ったケースも存在する。(失敗例は表面化しないことが多い)
「なぜ(Why)」に対して「だから(Because)」と自信を持って説明できる場合には、良い選択肢となる可能性がある。