Cowboy in the desert.

RFC: Cloud Regions

Michael Richardson


We are considering introducing a new target type, to be known as Cloud Regions. Cloud Region targets will enable steps which execute on the Octopus Server to execute multiple times, with variables scoped for each iteration. The specific scenario this is designed to support is deploying Azure steps (Web Apps, Cloud Services, PowerShell) to multiple regions.

A little history

With version 3.0 of Octopus Deploy we introduced two specific deployment targets for Azure, Web Apps and Cloud Services. Then we changed our mind and in version 3.1 reverted back to using steps rather than targets for Azure deployments, deprecating those targets (though they are still currently available).

While we truly regret any inconvenience or confusion, we are generally very satisfied with this change. However...

There is one scenario that a number of customers have reported was better modeled using targets rather than steps: deploying the same component (web app, cloud-service, etc) to multiple Azure regions. In the 3.0 model, they simple created one target per region. Currently, the options are to either use an Octopus environment per region, or to have a step per region. Customers have provided feedback that neither of those options is preferable. We agree. This has caused us to hesitate in removing the deprecated Azure targets.

Introducing Cloud Regions

Cloud Region will appear as an option when creating a new target.

Cloud Region Target

Cloud Region targets can be assigned a name and roles, just as any target.

Cloud Region Target Details

Cloud Regions will appear in your environments, just as any target.

Cloud Region Targets in Environment

You can scope variables to them, just as any target.

Cloud Region Variables

But now your Azure steps can either run once only, or once for each target that matches the specified roles.

Note the configured roles and the use of a variable for the Web App name in the Deploy an Azure Web App step below.

Azure Web App Step

When the step is deployed, it will run once per matching Cloud Region target.

Cloud Region Deployment Log

Note: Using Cloud Region targets with Azure steps will be completely optional. If you are currently using the Azure steps, you will not need to change anything. They will work exactly as they currently do.

Not only Azure

Although the motivation for this target type came from Azure regions, these targets can also be used by regular Run a Script steps. This means anyone who has a script step they wish to run multiple times with different variable values, without installing Tentacles, can take advantage of Cloud Regions. An example may be running the same SQL scripts against both production and disaster-recovery database servers.


As always, we truly value your feedback.

We'd particularly like to hear from you if you currently use the deprecated 3.0 Azure targets. We don't like having two methods to deploy Azure components (steps and targets). It's confusing for users, and more work for us to maintain. Our hope is that this will solve the regions problem, and allow us (with a clear conscience) to gradually remove the deprecated 3.0 Azure targets.

Tagged with: RFC