Question

We are currently trying to integrate deploying our new ASP.NET projects with Octopus and I was wondering if anyone has tried to use Octopus to deploy a classic ASP site?

I know it is possible and I know how to do it in theory, but our problem arises from the fact that the ASP site is HUGE. After the total size of all the videos, images, and pdf's are summed up the site weighs in at just under 3 gigs. So when a change is checked into TeamCity and a NuGet package is created, Octopus will be pushing a 3 gig nuget package to 2 individual load balanced servers.

We can't create a shared directory or cdn for the media files (at least not yet) so can anyone tell me a good way to attack this? Or is Octopus just not a good solution for a large ASP site and Web Deploy would be better? If that is the case, how can a backup solution be implemented for Web Deploy so that any errors can be rolled back?

Thanks for the help on this in advance. We are converting these ASP sites to MVC but that is going to take a while and until that is done we have to find a way to work with them.

Was it helpful?

Solution

You should package the ASP site and the Media Files as 2 separate NuGet packages. This will allow you to update the ASP code and deploy it without having to deploy all the media files (assuming the code changes more often than the media).

Implementation Details

  • Setup TeamCity to package the ASP site and the Media files as separately published NuGet packages.
  • In Octopus Deploy add each of the 2 NuGet Packages as deployment steps for a single project
  • When you create a new Release in Octopus select the newest package version for the ASP code and the previously released package version for the media files.
  • When you deploy the release you can check a box to skip the deployment of the media files

Tips

  • Use the Octopus variable "OctopusWebSiteName" to specify that your media files package should be deployed in a sub-directory of your ASP site. (Like "Default Web Site/Media") The variable can be scoped to a specific package so that it only applies when deploying that package.

OTHER TIPS

Do you really need to push all the content every time - cant you just push the changes?

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top