ASP.NET (Webforms と MVC) を扱う小さな Web 開発ショップを経営しています。私たちはさまざまなクライアントと仕事をしているため、いつでも多くのプロジェクトがアクティブになる可能性があります (メンテナンスの更新やバグ修正を待っているプロジェクトもあります)。
現在、非常に手動の方法で展開しています (FTP ファイルをサーバーに、リモートをサーバーに、ライブ サイトをバックアップ フォルダーにコピーし、新しいファイルをライブ サイトにコピーします)。明らかに、これには多くの要望が残され、間違いが発生します。
CI と自動化されたビルドおよびデプロイ ツールについて多くのことを読んできましたが、それらはすべてセットアップがかなり困難に見えるため、頭を悩ませることはできません。
私はこの展開プロセスを自動化することを検討しており、学習して使い始めるのに最適なツールを見つけようとしています。
- 開発者はコードをローカル マシン上の Mercurial にチェックインし、ネットワークに接続されたビルド サーバー上のマスター リポジトリと同期します。
- ビルド サーバーがビルドを開始し、単体テストが適切であることを確認します。すすいで繰り返します。
- 開発者は、FTP 経由でリモート Windows サーバーへの展開を手動で選択します (別の方法はありますか?) zip ファイル (理想的には、以前に展開されたバージョンから変更されたファイルのみを含む)。
- リモート サーバーは、FTP で転送されたファイルが格納されるフォルダーをポーリングし、それらを解凍してテスト フォルダーにコピーし、テスト データベースをバックアップして、テスト データベースに対してアップグレード スクリプトを実行します (または、migratordotnet や rikmigrations などの移行アプリを使用します)。構成変換も実行する必要があります。
- クライアントは変更をレビューして受け入れるか、フィードバックを提供します。
- クライアントが受け入れた場合、開発者はリモート サーバーの Web インターフェイスの [Deploy to staging] ボタンを押して、ライブ データベースをバックアップし、ステージング データベースに復元し、ライブ サイトのファイルをステージング サイト フォルダーにコピーします (実質的にライブ サイトのクローンを作成します)。テスト サイトの変更されたファイルがステージング サイトにコピーされ (テスト イメージのアップロードなどの特定のフォルダーを除く)、移行スクリプトが再度実行されます。
- 開発者は、変更がステージング サイトを壊していないことを確認します。
- 開発者がリモート サーバーの Web インターフェイスで [Deploy to live] ボタンを押すと、ライブ サイトがバックアップ フォルダーにコピーされ、ステージング サイトのファイルがその場所にコピーされます (ユーザーがアップロードした画像などを除く)。ライブ データベースがバックアップされ、移行スクリプトが実行されます。
- 何か問題が発生した場合、開発者は、バックアップ ファイルをライブ サイトのフォルダーにコピーして戻し、以前のデータベースを復元することで、ライブ サイトを以前のバージョンに戻すことができます。
何百もの設定可能なオプションに苦労する必要はありません。新しいプロジェクトのセットアップが迅速 (5 分以内) で、繰り返し可能である必要があります。
私たちはエンタープライズではありませんが、これを実現するためにいくらかのお金を費やさなければならない場合は、ライセンス料を支払う準備ができています.