1

私たちのプロジェクトでは CD を使用しています。このアプリケーションは世界中で使用されているため、複数のデータ センター (地域ごとに 1 つ) を使用しています。各データ センターは、アプリケーションの分離されたインスタンスをホストします (各地域の展開は、独自の DB、アプリケーション サーバーなどを使用します)。データはデータセンター間で共有されません。

私たちが取ることができる2つの異なるアプローチがあります:

  1. すべてのテストが実行される統合サーバー (I) にデプロイしてから、最初のデータ・センター A にデプロイし、次に (A へのデプロイが完了したら) データ・センター B にデプロイします。

  2. リージョン A のユーザー ベースは小さく、統合サーバー (I) で捕捉されなかったソフトウェア バグが原因で A と B の両方が機能停止するのを防ぐには、統合サーバーにデプロイしてからコードを "焼き付ける" 方法があります。リージョン A に 24 時間配置し、本番環境で 24 時間テストした後にのみ、アプリケーションをデータ センター B にデプロイします。この場合、「継続的な」展開がないため、この代替案は CI のベスト プラクティスに反しますか?

4

2 に答える 2

0

Paul Hicks がコメントしたように、ベスト プラクティスはおそらく機能フラグを使用して機能配信から展開を切り離すことです。とはいえ、多くの運用サーバーを持つ組織は、通常、サーバーのサブセットに展開し (「カナリア展開」)、すべてに展開する前に監視するか、Blue-Green 展開を使用してアップタイムを保護します。コードが展開されると、ユーザーのサブセットに対してのみ機能フラグを反転し、機能をすべてに公開する前に監視することで、賭けをさらにヘッジできます。

于 2014-05-12T06:43:55.613 に答える