Deployment Process

Hi Octopus Support,

We were trying to perform parallel deployments for a specific project.

For this,

  1. We have created a Project and mutiple releases (from release1 - release5) under that project.
  2. Build steps are same for all releases.
  3. We tried to trigger deployment for each release starting release1 to release5 with time gap of tab space.

Though deployments were successful, we observed

Deployments are happening in serial.
i.e. First release started at 10:48:54 and finished by 10:49:21,
Second started at 10:49:22 - 10:49:48,
3rd at 10:49:49 - 10:50:17,
4th at 10:50:18 - 10:50:45
and
5th at 10:50:45 - 10:51:12

Query : Is there any way we can make the release deployments in parallel? Please share.

Hi @raji.kotamraju,

Thanks for getting in touch!

It is necessary for Octopus to queue deployments that have the same project and environment to prevent conflicts occurring such as file locks.

There are further details on how we handle parallel deployments available here: Run multiple processes on a target simultaneously - Octopus Deploy

Would you be able to expand some more on the use case for needing to run several releases of the same project in parallel?

Regards,
Paul

Thanks @paul.calvert for your response.

Our use case is something like, on same project and environment release team want to deploy.
Is it still possible if we enable OctopusByPassDeploymentMutex?

We couldn’t find this field in Project Settings. Where can we find this?

Thanks,
Rajeswari.

Unfortunately not, as mentioned in the documentation, deployments for the same project and environment cannot run in parallel as this will result in them trying to use the same locations and files at the same time which will result in errors or misconfiguration.

Regarding the use case, the question I was getting at is what is the difference between these 5 releases? Typically, each release would include a different package version with the intention of overwriting the previous release during deployment.
So, running 5 different releases one after the over would usually just result in each release overwriting the last one.

It sounds like you may be using this in a different way and if you can provide some additional detail on that we can see if there are other options to support this, such as Tenants.

Hi @paul.calvert ,

The use case is, we do have around 20 releases everyday to be deployed in different environments such as SIT, PreProd and Prod. Each release may or may not be linked with previous release (Usually not linked).

Multiple users from operations team try to trigger the deployments selecting the release number. But, due to serialisation, these release deployments taking longer time to complete.

Do we have any alternate to achieve these deployments go in parallel?

Thanks,
Rajeswari.

Deploying the releases to different environments should be fine, the main issue that Octopus can’t get around is deploying to the same environment and targets in parallel.

For different environment deployments, do we need to enable OctopusBypassDeploymentMutex?

If they are running on the same deployment target, yes.
If you have different deployment targets in each environment, then it shouldn’t be necessary.