Deploying from one Project to many Websites

We have a situation where one Project, a Content Mgt. System, needs to be deployed to multiple websites. The only difference between these CMS websites is the database connection string - which provides access to a table of configuration variables and other content that, in the end, manages a dozen separate and completely different “front end” websites. In other words, there is one code base (with a web.config transformation) for a CMS deployed to multiple servers and sites.

My question is what would be a recommended or “Best Practices” way of accomplishing this with Octopus Deploy? I could see deploying to a common folder and then launching a synch utility to replicate to all the CMS websites. Or, create multiple packages? Or…?

I am sure this must be a relatively common problem and I am hoping you have some past experience to guide me.

Hi Dalej,

Thanks for your questions.

There is no perfect Best Practice for what you are asking for. Down the track we are going to develop multi-tenancy functionality. However that will not be in any short time frame.
As to how to solve this issue using current processes you have a few choices, and which you choose may depend on how many website you need to deploy to.

  1. Create one project, with a step for each package deployment for each website with its own connection string variable per step.
  • this would be best if you always deploy to each website at the same time, otherwise you would need to skip steps at release time etc.
  1. Create individual projects for each website and individual releases for each
  • possibly the highest maintenance option, but the most configurable and individual for deployment times
  1. Create one project, setup variables that are dependent on environment then set up many environments/machines to match these scoped variables.

I think whichever you choose will really be dependent on when you do your releases to the websites, and how often.

Please let me know if you have any further questions about any of these options.