Multi Deployment Machine Advice

We are looking to use OctopusDeploy to do a 3 phase deploy of our software. First 2 stages are internally hosted machines, so no problem there.

Now for the ‘Release’ stage, we would like to automatically release to our clients, who are hosting our solution on-premises, in the cloud (Azure), or on our own Servers. I am seeking some advice how following scenario could be done (if possible):

  • Have a list of deployment targets (one for each client) -> This can obviously be done, but are there any alternatives? We have appr. 100 clients
  • Each client has it’s own database, which we want to backup before proceeding
    => I need a way to store / retrieve the server, dbname and credentials for this database connection, where would be a good place, or how can this be done?
  • A SQL Upgrade script should be run on each of those SQL Servers

What would be the recommended way of doing this? We have ± 100 clients to deploy our software to.


Hi Pieter,

Thanks for reaching out. Our recomended approach for this scenario is:

  • Have an Environment per customer
  • The last phase of your lifecycle would include all of your Customer’s environments
  • Have variables scoped to the Environments. By having 1 environment per customer, you’ll have a set of variables (usernames, passwords, etc) per customer.

We even have a document that explains the possible approaches for this scenario. Please take a couple of minutes and give it a look: