I often see that the bulk of the deployment time is waiting on server process 23423423 to finish…… I want to try to eliminate the duration of the deploy and there for the severity of the end user outage experience. What are the rules or approaches to reduce this bottleneck? Is it true that a tentacle can only do one thing at a time? Meaning the solution is to add more tentacles to a deployment server? Or is it regardless of the number of tentacles only one of them can be doing something at a given time?
A little bit of background first. When Octopus Deploy was first created it was designed to deploy to IIS and install Windows Services. Doing so required updating Windows components such as the IIS Metabase. Having multiple processes update the IIS Metabase can cause a bad time.
As time has gone on, IIS has gotten more robust (Octopus started when Windows Server 2008 R2 was the major server). However, we don’t like to change the default behavior. In some cases, folks like to have only one deployment running at any given time.
You can tell a tentacle to run multiple tasks by adding the variable OctopusBypassDeploymentMutex
to the project or variable set. See our documentation for further information.