Starting multiple deployments will download multiple copies of the same package

Octopus version 3.3.6

We are running into an issue with deploying to multiple environments at once when those environments are utilizing the same deployment target. This is how we accomplish multi-tenancy at the moment.

Here is the setup:
DeploymentTarget1 is a part of 2 environments (Environment1 and Environment2)

My project will deploy Package.1.0.0

I kick off a deployment to Environment1 and Environment2 at the same time (There is not an existing version of the package cached on the DeploymentTarget1)
At the Acquiring Packages step, both Environment1 and Environment2 will start downloading Package.1.0.0 at the same time.
This means I will be left with 2 copies of the exact same package on DeploymentTarget1.

Our current workaround for this is to make sure to always deploy to 1 environment first, then I can deploy to as many environments I want in subsequent deployments, as they will realize the package is cached on the machine. This is pretty annoying, though. Is there any better solution to this problem out there?

Thanks,
Eben Krapfl

Hi Eben,

Thanks for reporting this! Currently we do not check when multiple deployments to different environments share any packages. It is only done within a single project/deployment.
However with the new Multi-tenancy feature this will be even more common so I have submitted a request that it is addressed for 3.4.
Unfortunately I cannot link you to an issue as our in development features are not included as individual tasks in our GitHub.

Vanessa

That sounds great. We are planning on upgrading to the multi-tenancy version as soon as it is released. Is there any update on a timeframe for the 3.4 release?

Thanks,
Eben

And on a potentially related note, we have been having some issues with our tentacle service becoming unresponsive when deploying to a lot of environments at once that are on the same deployment target and require new packages. In our particular case, we are deploying 4 packages which range is size from about 20MB to about 250MB on a single deployment target using a polling tentacle. Sometimes when we deploy to several environments on a deployment target, it will begin downloading all of the packages for several environments, but it will eventually start saying that the tentacle is not responding within the timeout period. Once that happens, all current and subsequent deployments will fail with the same errors, and there is no way for us to recover except to remote to the deployment target and manually restart the tentacle service.

It is a pretty scary issue that has been rearing it’s head quite a bit for us lately. Our only workaround at this point is the same as the one I described in the original post.

Any thoughts on this?
Thanks,
Eben

Hi Eben,

For your question about Multi-tenancy the beta is due in the next few weeks, then it will spend at least a month in beta.

For your other issue, could you send me a deployment log where you get the errors? Just so I can see what happens/ what the error is.

Vanessa