Need info regarding Octopus deploy HA setup and scalability

Hi guys,

Looking for quick information/suggestion around Octopus HA setup/design for scalability. Please find below requirement section:

Requirement:

  • There are around 1000 target servers (deployment targets).
  • Octopus Projects/Jobs are used to install patches (by running powershell scripts) on these target servers (not all 1000 servers at once).
  • Octopus pulls external patches (NuGet) from Artifactory and transfers onto Target machines.
  • Note: ‘Tranfer a package’ step runs on deployment targets but it is configured to first pull NuGet package onto Octo server, apply delta compression and then tranfer to the required deployment targets.
  • Expect to run Octo Project parallely on atleast 10-15 target servers at one time.
  • Important: Almost all the steps (having powershell scripts) in Octopus project/process run directly on the deployment target. Only few steps such as Health check, email notification run on Octo server. So, don’t think if there is a need for worker nodes. Correct me?

I have gone thru Octopus documentation but could not find right information as per my need.

Also, it would be great if you could help with hardware configuration information for the setup. Below link provides some hardware information for smaller deployments (30 deployment targets) but does not tell any further about larger deployments (1000 deployment targets?).

Is there a baseline of how many deployment targets could be handled by one Octopus server?

Hi,

Thanks for getting in touch.

We have some performance documentation that can help here, specifically the sections regarding parallel acquisition.

Regarding a baseline for hardware requirements, if you watch your Octopus Server in resource monitor during a large deployment, you should be able to see if it is CPU, memory or IO bound. We have found if your Tentacles have very low latency, your Octopus Server is most likely to be CPU bound, in which case it would benefit from more cores.

We generally use Amazon’s c3.xlarge instances for heavy-use Octopus Servers. They come with 4 cores and 7.5 GB of RAM.

If you would like to keep your hardware down but deploy to a large number of servers, we would suggest doing a rolling deployment or use special Octopus parallelism variables to keep the number of targets being deployed to at once down.

Hope this helps. Let me know how you go.
Mark