モノリシックモンスターをマイクロサービスベースのアーキテクチャに徐々に分解することを検討しています。私たちには5つのチームがあり、各チームには2〜3人のC#開発者、少なくとも1人のデータベース開発者、および2人のQAエンジニアが含まれています。モノリシックアーキテクチャからマイクロサービスへの大きな文化とパラダイムシフトに加えて、技術的な課題もあります。同じ間違いをしないように、コミュニティに知恵とアドバイスをお願いしたいと思います。
.NETベースのマイクロサービスが実稼働システムでうまく利用されている良い業界の例はありますか?次の戦略は何でしたか?
- 組織:.NETソリューション/プロジェクトをどのように編成しましたか?
- 開発計画:開発計画に関して、チーム間でどのように作業を分割しましたか?マイクロサービス全体で契約のコンプライアンスを確保するための全体的な戦略は、チーム間で交渉されましたか?
- 負荷分散/ルーティング/ APIゲートウェイ:負荷分散、冗長性、スケーリングの戦略は何でしたか?完全な非同期アーキテクチャを使用して、マイクロサービス通信にキューを使用しましたか、それともロードバランサー/ APIゲートウェイを介してピアツーピアで実行しましたか?なぜ?
- テスト自動化:テスト自動化をどのように処理しましたか。マイクロサービスアーキテクチャでは、これと継続的な統合が絶対に必要であるようです。どうやってそれをやりましたか?
- 展開:どのように展開していますか?1つのVM /マイクロサービス、1つのコンテナー/マイクロサービス、またはその他の何か?各マイクロサービスがデータストアを持つことを考慮しなければ、数十のデータベースがあるという事実をどのように処理しましたか?それはインフラストラクチャに何を行い、DBAはそれをどのように処理しましたか?
- インフラストラクチャ:このアーキテクチャでインフラストラクチャはどのように拡張されましたか。それはとてもおしゃべりで、あなたはそれを微調整する必要がありましたか、それともネットワークが問題なくそれを処理しましたか?セルフホストですか、それともクラウド内ですか?
- モニタリング:あなたのモニタリング戦略は何ですか?数百のマイクロサービスではないにしても、数十のタブをどのように維持していますか?それは主にロギングと集中監視によるものですか?