2009-07-02 8 views
2

デプロイライフサイクルに別のサーバーを追加することを検討しており、デプロイメントをテストできます。デプロイメントのテスト方法

いくつかの背景: 我々はそこに4人の開発者がチーム内にあり、2週間ごとに一度放出する傾向があるASP.NETとSQL Server 2005を使用して、Webアプリケーションを構築。

これは、展開の我々の現在の方法である: 我々はDevのサーバー上で開発し、それぞれのdevのケースが完了すると、それは、それがテストされるステージングサーバに追加されます。リリース日に達すると、リリースのすべてのケースがステージングサーバーからライブサーバーに展開されます。

問題はです。フルデプロイメントを行うのは、リリース日にLiveにデプロイするときだけです。ステージングへのすべてのデプロイメントは、大文字と小文字を区別して行います。これは、実際の配備で間違いを犯したり、ステップを逃していることを意味しています(配備中にユーザーをロックアウトするのを忘れるなど)。私たちに必要なのは、ライブ展開のダミー実行を行う方法です。

我々が検討していることは、リリースプロセスに別のサーバーを追加して、そう...

現在のサーバがセットアップされています Devのサーバ - >ステージングサーバ - >ライブサーバー

潜在的なサーバーのセット-up:のDevサーバー - >ステージングサーバ - >ベータサーバー(正しい名前ということです?) - >ライブサーバー

我々はベータ版サーバとDRAにそれぞれ完全な展開を練習することができたの方法ライブデプロイメントのための一連のステップを試してください。そして、うまくいけば私たちのライブデプロイメントはスムーズになります。また、クライアントにベータ版サーバーへのアクセス権を与えて、それ自体をテストします。

あなたの意見をお知らせください。リリース日前に展開をテストする別の方法がありますか?

答えて

3

あなたは正しい方向にあります。

私たちはどのように働いているのですか?他の人が別のことをしているかもしれませんが、あなたの質問に答えることもできます。

1)コードはdevに組み込まれています。これは制御されていない領域です。

2)データベースの変更はすべてスクリプト化され、すべての.NETコードはMSIに組み込まれています。これらをTestにデプロイします。彼らはまたどこか特別な場所に保管されています。何か問題があれば、テストで見つけられますし、スクリプトを修正したり、新しいMSIを修正したりします。

3)テストが完了すると、「プレプロダクション」環境がライブからフラッシュされます。それは生きているものと同じように見えます。最終版は「プレプロダクション」に組み込まれています。デプロイメントはうまくいくはずですが、これが確実に行うための機会です。そうでない場合は、展開が調整され、「プレプロダクション」環境がライブから元に戻されます。そのため、私たちは正確なコピーに対してテストしていることを知っています(すでに混乱している!)

4)リリースが機能している場合(通常、すべてのコンポーネントをチェックするためにテストを実行します)、ライブで実行する準備ができています。

データベーススクリプトを再実行可能にすると便利です。何らかの理由でスクリプトが2回以上実行された場合、変更を再度実行する前に変更が既に存在するかどうかを検出します。たとえば、テーブルに設定値を追加する場合は、まだ値を設定していないことを確認します。それ以外の場合は、何度も追加してデータを修正することができます。

関連する問題