RFC: Cloud Regions
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 targets can be assigned a name and roles, just as any target.
Cloud Regions will appear in your environments, just as any target.
You can scope variables to them, just as any target.
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.
When the step is deployed, it will run once per matching Cloud Region target.
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.