2

私は、24 時間 365 日 365 日の Web サービス環境で、脆弱でないリリース プロセス技術について研究しています。開発環境から重要な運用環境にコードをリリースするためのお気に入りの方法をいくつか教えてください。これには、コードの変更だけでなく、データベース スキーマの変更も含まれます。開発環境のエコシステムですべてがテストされ、承認されたと仮定しましょう。

それを本番環境に合理化するために、次にどのような手順を実行しますか? トラフィックをダウンタイム クラスターにリダイレクトし、自動化されたスクリプトを実行しますか? もしそうなら、あなたのスクリプトは何をしますか? 台本でなければ、どのようなルーティーンが好きですか?

技術的な洞察のみを求めています。「お客様に十分な警告を与える」タイプの回答はご遠慮ください。

ありがとう!

4

2 に答える 2

1

確実にすることが重要だと私が考える原則がいくつかあります。

  1. ソース管理システム (専用ブランチまたはメインラインのタグ) からのみリリースします。作業ディレクトリから直接解放する可能性はありません。
  2. push-to-production および push-to-staging プロセスを完全に自動化する (スキーマの更新を含む)
  3. 自動化されたロールバック スクリプトを手元に用意しておいてください。
  4. すべてのデータベース スキーマの変更は、増分ロールフォワード/ロールバック対応ツール (ActiveRecord や Liquibase など) を使用して行われます。完全な DB 復元が必要になることはほとんどありません。
  5. (非常に大規模なクラスターの場合) ローリング アップグレードを実行します。バージョン N リリース用と N+1 リリース用の 2 つのロード バランサーを使用します。追加のノードが N+1 グループに参加すると、継続的にテストします。
于 2008-12-09T22:44:08.857 に答える
0

デニス・ヘネシーは素晴らしい要約を書きました。ツールについては、Capistranoをご覧ください。

于 2008-12-09T23:13:42.217 に答える