Blue/Green デプロイに関するこの記事を調べた後、さらにグーグルでカナリア リリースに関するこの記事を紹介されました。私はこのあいまいさを持っています: データベースはどうなりますか? それらをどのように同期させるべきですか?私は2つの可能なシナリオを念頭に置いています:
- 青がアクティブなときに環境ごとに 1 つずつ (緑と青) 2 つの別個のデータベースがあると想像してください
。新しいレコードがそのデータベースに挿入され
、トリガーのようなメカニズム (またはその他のメカニズム) を提供しない限り、緑はこれらの変更を認識しません。グリーンデータベースを更新します。
2 番目のシナリオは、2 つの環境間で下位互換性のあるデータベースを共有することを示唆していますが、データベースを扱う場合、下位互換性はそれほど簡単ではありません
。アプリケーションを公開する前に、データベースの変更を公開する必要があります。
3 番目のシナリオとして、メインの Blue/Green デプロイメント内のデータベースに Blue/Green デプロイメントを実装する場合があります。
より良い解決策は何だと思いますか、またその理由は何ですか? 他のプラクティスやよく知られているパターンを提案しますか?
ありがとうございました