Concurrent deployments

Hi,

I’m trying to speed up our deployments in the following scenario:

  • 1 Octopus 3.3.4 server.
  • 3 Environments: QA(1 machine) => Staging (4 machines) => Production (30 machines)
  • 1 manual lifecycle for deploying projects manually from one environment to the next.
  • 1 auto lifecycle for deploying projects automatically from one environment to the next with no user intervention.
  • 200 projects.

I’m using an automated script to create new Releases for 50 projects in one go and deploy them through the auto lifecycle. At the moment this results in dozens of Tasks sitting waiting for each other. What’s the best way to speed up this process?

  • I’ve increased the Nodes -> Task cap so that the server attempts to carry out more Tasks concurrently.
  • Tasks’ Steps are mostly waiting for each other with the message:
This Tentacle is currently busy performing a task that cannot be run in conjunction with any other task. Please wait...

This page seems to indicate that I can set a OctopusBypassDeploymentMutex to true and this would stop deployments waiting for each other? Is that right? Can OctopusBypassDeploymentMutex be defined in a Variable Set, or does it have to be a Project Variable?

Is there any other way of increasing the number of concurrent deployments that the tentacles will carry out?

Cheers,
Martin.

Hi Martin,

Thanks for getting in touch! We have not heard of anyone putting the OctopusBypassDeploymentMutex in a Variable set but it should work fine.
When using the OctopusBypassDeploymentMutex you need to be sure exactly what all the deployments are doing (Where they touch). The OctopusBypassDeploymentMutex was put in place becuase if Octopus touches something twice at the same time then you can break your deployment. As an example, if you were to update IIS settings on the same machine twice at the same time due to this variable being set to true then your deployment can fail.

Something else to note, you will need to have it enabled for each and every project you wish to run at the same time, you can also scope it per environment so you could have it scoped to dev but not prod if you want to test.

Let me know how you go, or if you have any questions about this. :slight_smile:

Regards,
Daniel