私は両方を調べました。複数のサーバーで自動化されたWebデプロイメントに適しているものは何ですか?チームシップを使用して複数のサーバーにオートデプロイするためのより良いタコまたはmsdeployです
答えて
TeamCityとOctopusを試してみてください。 TeamCityを使用してOctopus(NuGet)パッケージを作成し、Octoツールを使用して、それぞれの成功したビルド後にテスト環境へのデプロイを自動的に開始します。その後、Octopusポータルを使用して、他の環境への展開を促進します。
は、我々はチームシティーからの展開をトリガするために、次のオクトコマンドラインを使用します。
Octo.exe create-release --apiKey=YourOctopusAPIKey --server=http://YourOctopusServer:9015/api --project=YourOctopusProjectName --deployto=YourOctopusEnvironment
オクト作成-リリースステップは別々のチームシティープロジェクトにする必要があり、そうでない場合はNuGetがで更新されることはありませんがビルドから得られたパッケージ
MSDeployを使用してWebアプリケーションからデータベースにすべてを展開し、Webファームフレームワークを使用してメインサーバーからセカンダリサーバーに同期できます(必要に応じて手動で別のセットのパルメータを使用することもできます) 。
「デプロイメントパイプライン」について説明します。私はあなたがチーム市に1の統合については行くかどうかはわかりませんが、基本的な前提は次のとおりです。
- アプリケーションをビルド、テスト、および(設定する必要が任意のパラメータを宣言)それをパッケージ化します。
- (自動起動されます)アーティファクトリポジトリからパッケージを入手し、
msdeploy -verb:sync -source:package.zip -dest:auto,computerName=http://server:8172/msdeploy.axd -setParamFile:dev.xml
を呼び出して、パッケージを(以下の手順で必要なファイルを)アーティファクトリポジトリ(おそらくTeam City)にプッシュします。
- (手動トリガ)
- を上演するパッケージを展開します(手動トリガ)
場合msdeployは、Windows資格情報マネージャーで資格情報を格納してのほぼすべての側面をパラメータ化などの機能の驚くべき数を、サポートを生きるために、パッケージを展開します配備私はあなたがそれをチェックアウトすることを強くお勧めします。 (Windows Serverのライセンスとは別に、無料です。)
これは依存しています。 (この質問にはまだフラグが立てられていないことがわかります)。しかし、いずれにせよ、それはおそらく、これらの自分自身に尋ねる価値がある:
- あなたはオフに署名し、促進するためのQAを必要とするウェブサイトを開発しているか、各ビルドを確認するためにテストスイートを自動化していますか?
- 複数の環境(QA、UAT、デモ、プロダクション)に展開していて、バージョンがどこにあるかの素晴らしいダッシュボードを見たいですか?
- 特定のユーザーに本番環境へのプッシュを許可する必要がありますか?
- デプロイメントを開始する前に(たとえば、Mongoをインストールして設定するためにchocolateyを呼び出すなど)、各サーバーに追加のセットアップが必要ですか。限定的なサーバープロビジョニング
- プロモーションライフサイクルにわたってコントロールが必要です(例:QAを経た場合のみ、制作に行く)。
上記のほとんどに「はい」と答えた場合は、「Octopus Deploy Deploy」が導入に向けて勝利すると言います。そして、5つまでのプロジェクトと起き上がり、走っていくためには無料です。
エンドユーザーや開発者が管理する必要のないWebサイトの単純なCMS管理を必要とするシンプルなWebサイトについては、AzureのすべてのものとMSDeployは素晴らしいツールです。 Richard Szalayの言葉通り、最近は定期的に公開するためのコマンドラインツールが充実しています。
ビルドサーバーに関しては、アーチファクトを作成するために使用する必要があるため、実際には問題にはなりません。それがオクトパスとの一体感があるので、Team Cityは私の勝者です。 IMO、それは別の議論です。
- 1. より良いパフォーマンスのために、より良いです:componentWillUpdateまたはcomponentDidUpdate?
- 2. より良いアプリケーションサイズを得るためにコアデータまたはSQLiteを使用する必要があります
- 3. タコ展開は、私が環境</p> <p>コードがサーバーに到達するが、タコは、新しいディレクトリを指すように、Webアプリケーションを変更しないに私のウェブサイトをプッシュするタコのデプロイを使用していたウェブサイト
- 4. より良い名前を付けるために変数を複製する
- 5. ES6またはTypeScriptで複数の 'エクスポート'をインポートするより良い方法
- 6. すぐに使えるデプロイメントのための良いWebサーバー
- 7. さまざまな引数を持つ関数ポインタを使用するためのより良い設計
- 8. PL/SQLを使用したファイル圧縮のためのより良いパッケージ?
- 9. より良いifString関数を構築するために.valueOf()を使用できますか?
- 10. MSDeployを学習するためのリソース
- 11. ShareKitを使用するための良いチュートリアルはありますか?
- 12. 関数内で複数の異なるHTMLを構築するためのより良いPython 3.x +のアプローチ
- 13. フラグメントを使用する際にコードが重複しないようにするための最良の方法
- 14. 回避方法より良いパフォーマンスのために複数の結合?
- 15. GWTでPropertyChangeListnerを使用するにはどうしたらいいですか?それを行うためのより良い方法がありますか?
- 16. 複数のボックスを選択するための良いブートストラップUI
- 17. マップを同期させるためにチャネルを使用するより良い方法はありますか?
- 18. SpringでXmlBeanFactoryにアクセスするためのより良い設計
- 19. より良いパフォーマンスのためにカーネルコールで倍数を削除する
- 20. Netbeansを使用したSubversionと複数のバージョンの良いプラクティス
- 21. 複数の「パスワード」を持つためにReadKeyを使用していますか?
- 22. 正しく私はエンバーコントローラで複数のモデルにアクセスするためにEmber.RSVP.hashを使用していますコントローラ
- 23. Pythonでベクターグラフィックスを描画するためのより良いライブラリはCairoよりも優れていますか?
- 24. ドットネットコアエンティティフレームワークデータベースをシードするためのより良い方法は?
- 25. これを解決するためのより良い方法のためのジェネリックの使用
- 26. フラグメントトランザクションのためのより良いアプローチ
- 27. if/elseの代わりにnodejsサーバー上でファイルを提供するためのより良い方法
- 28. MsgWaitForMultipleObjectsよりも完了したスレッドを示すためのより良い方法はありますか?
- 29. 渡されたパラメータまたは変数の妥当性を保証するためのより良い方法
- 30. 複数のGITサーバーを使用しています
私はこのようにそれらを比較することが適切だとは言いません。 OctopusはMSDeployを使用しませんが、基本的にはMSDeployのコンセプトに関するラッパーです.MSDeployを使用すると、コマンドラインを使用したり、さまざまな引数を付けてMSBuild内で呼び出すことができます。 Octopusはあなたの設定を管理するフレンドリーなWeb UIを提供します。 –