2016-10-07 14 views
5

現時点では、マイクロサービスアーキテクチャに基づいたアプリケーションを作成しています。主な技術として、マイクロサービスの開発ごとにスプリングブートとドッカーを使用する予定でした。目標の1つは、ユーザーにゼロダウンタイム導入機能を提供することです。マイクロサービスアーキテクチャ用のゼロダウンタイムデプロイ

私はいくつかの解決策を見つけようとしていて、Blue Green Deployment (BGD)について知っていますが、いくつかの点についてはまだ明らかではありません。主な問題は、DataBaseの状態とバージョンの互換性です。例えば

BGDは、導入を成功した後、ブルー輪郭に グリーンからすべてのデータ変更を移行する方法を使用する場合は?

私はSpringのZero Downtime Deployment with a Databaseの記事で興味深いアプローチを見つけましたが、そのようなアプローチは複雑すぎるアプリケーションバージョンとリリース計画プロセスと後方互換性要件を持っていると思います。それを使用して、実際の経験に裏打ちされた、ゼロダウンタイムの展開プロセスの概念に

  1. 任意の提案:

    は、だから私は、次の質問をしたい私の?

  2. リレーショナルデータベースを使用するアプリケーションにゼロダウンタイムデプロイメント機能を提供するアウトオブザボックスソリューション(有料または無料)はありますか?

PS

ある場合はゼロダウンタイムの展開がStackOverflow.comでどのように動作するかは興味深いのですか?その記事から

+0

この質問を閉じると投票した人は、抽象的な推論やアドバイスではなく具体的​​な経験を記述するように頼んでいるので、「あまりにも広すぎる」または「オフトピック」ではないと言うことができます –

+1

あなたは2番目の質問にソリューションやフレームワークを求めます。近い理由は、ソフトウェアライブラリ/ツールを尋ねるのは話題にはならないと言います。私はフレームワークを求めて、その近い理由に合うと思います。 – g00glen00b

+0

@ g00glen00b私は 'framework'を削除しました。あまり混乱していない場合は –

答えて

1

  • は、本番環境の2つのコピー(「青」と「緑」)
  • ルートそれにマッピングする生産のURLによって青、環境へのすべてのトラフィックを維持;
  • 緑色の環境でアプリケーションの変更を展開してテストします。
  • URLを緑色にマッピングし、青色からマップ解除することで「スイッチを反転」します。

機器があり、展開プロセスが適切に設定されていれば、それほど難しいことではありません。ユーザーが青い環境で新しいセッションを開始する必要がないようにセキュリティメカニズムを設定した場合、痛みはほぼ完全にプロビジョニングになり、青い環境が必要な状態に完全になりますすることが。その後、ロードバランサの設定に入り、青い環境を指すように設定を反転するだけです。

しかし、「緑色」と「青色」を起動して実行すると、前後にフリップすることができます。理想的には、青色が確認されたら直ちに緑色にアップグレードします。また、2つの環境間でデータベース操作を共有していることを確認してください。青色に失敗した場合、緑色も青色のフォールバックとなる可能性があります。

私が経験したことは、新しいデータを2つの完全に別々の環境に供給するように簡単に設定できる正式なデータ取り込みパイプラインが頻繁にあるHadoopにあったことです。

+0

両方の環境でのデータベース操作の共有に関して、APIが変更された場合に下位互換性をどのように提供するか、結果として入力データのフォーマットも変更されましたか? –

関連する問題