We’ve just added a third machine that shares the same roles and environment as the previous duo. Is there a way to deploy all projects that exist on the original two machines to this third machine without re-releasing to the old machines? I’ve found the thread below about the Octo.exe option (and a GUI option that appears to be deprecated), but this is pretty dated. There was also a mention made of supporting this type of scenario in 3.1?
What’s the current state of horizontally scaling mature roles/environments with new machines?
Thanks for reaching out! You’re right that the GUI option in that thread is outdated. The same function exists, but the screenshots you’ve seen aren’t too helpful after all of the UI updates we’ve made since then. In recent versions of Octopus, this is how you can deploy to a specific machine.
- When you select to deploy a project, there’s an
Advanced option next to the
Deploy now button (refer to my first screenshot).
- Under the
Preview section, select the
Include specific deployment targets radio button.
- Select only the specific machine(s) that you want to deploy to (refer to my second screenshot).
The Octo.exe solution you’ve come across is also an option by using the
--specificmachines=VALUE option in
deploy-release commands. You can read more about deployment options with Octo.exe in our documentation.
In regards to your question about scaling - Octopus 3.4 released a feature called elastic and transient environments. This allows deployments to succeed when machines are taken offline, or are added in an auto-scaling environment. Combining this with project triggers, you can automatically deploy to machines once those machines become available. Check out our immutable infrastructure documentation page which provides more detail and a great end-to-end example of provisioning infrastructure.
You can also read more about elastic and transient environments on our blog.
I hope that helps! Don’t hesitate to get in touch if you have any further questions.
That answers all my questions and gives me a number of options. Fantastic. Thanks for all the help