I have a suggestion for the improvement of the deployment strategy in order keep at least one machine up during the deployment on Tentacles in a cluster/web farm environment which usually has a load balancer in front. I would introduce the concept of deployment strategy when defining a “Deploy a Nuget package” step in order to keep compatibility with the existing parallel deployments. The strategy might have at least two options: parallel deployments on all Tentacles in the same environment and, the other option, rolling deployments - meaning that the server will perform one deployment at a time on each Tentacle. In this way, the application (as a whole) will be up permanently.
In order to control the load balancer (remove nodes from cluster and later add it back when deployment finished on the agent), the server should have the ability to run a Powershell script before and after each deployment on a Tentacle because usually the load balancers have APIs which can be called using a scripting language in order to remove the machine from rotation and, at the end, add it back. The script should be run from server and not from Tentacle as it is no real use to transfer this responsibility on each Tentacle. Embedding the script in the nuget package to control the balancer is not a good idea security wise since the balancer credentials or its modus operandi are not under the control of developers who prepare the packages.