3

現在、新しいASP.NETプロジェクトの展開をOctopusと統合しようとしていますが、Octopusを使用して従来のASPサイトを展開しようとした人はいないでしょうか。

私はそれが可能であり、理論的にはそれを行う方法を知っていますが、私たちの問題はASPサイトが巨大であるという事実から生じます。すべてのビデオ、画像、およびpdfの合計サイズを合計すると、サイトの重量は3ギガ弱になります。したがって、変更がTeamCityにチェックインされ、NuGetパッケージが作成されると、Octopusは3ギガのnugetパッケージを2つの個別の負荷分散サーバーにプッシュします。

メディアファイル用の共有ディレクトリまたはcdnを作成することはできません(少なくともまだ)ので、誰かがこれを攻撃するための良い方法を教えてもらえますか?それとも、Octopusは大規模なASPサイトに適したソリューションではなく、Web配置の方が優れているでしょうか。その場合、エラーをロールバックできるように、Web配置のバックアップソリューションをどのように実装できますか?

事前にこれに関する助けをありがとう。これらのASPサイトをMVCに変換していますが、これにはしばらく時間がかかり、それが完了するまで、それらを操作する方法を見つける必要があります。

4

2 に答える 2

3

ASPサイトとメディアファイルを2つの別々のNuGetパッケージとしてパッケージ化する必要があります。これにより、すべてのメディアファイルを展開しなくてもASPコードを更新して展開できます(コードがメディアよりも頻繁に変更されると想定)。

実装の詳細

  • TeamCityをセットアップして、ASPサイトとメディアファイルを個別に公開されたNuGetパッケージとしてパッケージ化します。
  • Octopus Deployで、2つのNuGetパッケージのそれぞれを単一のプロジェクトの展開手順として追加します
  • Octopusで新しいリリースを作成するときは、ASPコード用に最新のパッケージバージョンを選択し、メディアファイル用に以前にリリースされたパッケージバージョンを選択します。
  • リリースを展開するときに、メディアファイルの展開をスキップするチェックボックスをオンにすることができます

チップ

  • Octopus変数「OctopusWebSiteName」を使用して、メディアファイルパッケージをASPサイトのサブディレクトリに展開する必要があることを指定します。(「デフォルトのWebサイト/メディア」のように)変数は特定のパッケージにスコープを設定できるため、そのパッケージを展開するときにのみ適用されます。
于 2012-12-27T14:47:26.247 に答える
0

本当に毎回すべてのコンテンツをプッシュする必要がありますか?変更をプッシュするだけではいけませんか?

于 2012-12-03T08:29:11.713 に答える