Decide order of rolling deployment
It would be very nice to be able to decide the order of a rolling deployment. Perhaps by setting a sort index on each machine in an environment. Today it seems a rolling deployment is always performed in the same order, but it is unclear what decides that order.
Andrew Laraia commented
This could be very useful. For me, its a collection of servers of the same role. One should be first, but the others can be in any order. Perhaps Octopus could be modified to use a secondary role to identify which one must be first.
Example: 4 machines of role 'xyz', and we want to do a rolling deployment. one machine could also be role 'abc'. If the rolling deployment could handle this secondary role for the order/priority that would solve it for me.
In general, rolling deployments could still be based on the role as it is now, but could optionally accept a list of secondary roles to define the order. This would allow those with secondary role 'abc' to be deployed first, then say 'def' could be deployed second, and so on. For each secondary role it's still somewhat random if you multiple machine with the same secondary role, but I would expect normal usage would see these secondary roles more limited and mostly to individual machines.
For now, my immediate solution is to selectively "include only" the priority machine in the "Deploy" view to do just that one. Then deploy again to the same environment but "exclude" that priority machine so the others get the deployment in a random order.
Ruben Olsen commented
Deploying to a randomized list of servers is really not a good DevOps methodology. The fastest way is to deploy alphabetically - or (slower) implement a way to configure the sequence number to a given server.
Gunnar storebo commented
For us this ia a necessity in order to start using the built in Rolling deployment feature. When performing a rollback it is a necessary to know which servers have been deployed to.
Having 12 servers randomly updated to is not a good scenario.
I really agree with the post below:
"at least, that SQL result was alphabetically ordered to have the chance to predetermine the targets deployment order"
Cristian Uroz commented
To give some additional info I found here: http://help.octopusdeploy.com/discussions/questions/9660-rolling-deployments-target-order
> The answer is: the order is undefined. We retrieve the machines from the SQL Server database without specifying an order (so SQL Server will just return them in whatever order will be fastest). There is currently no way to specify the order for a rolling deployment.
It would be nice if, at least, that SQL result was alphabetically ordered to have the chance to predetermine the targets deployment order.
This is certainly needed. We roll out a package to 3 servers but server1 has an additional step that is best being ran before the deployment is done to the remaining servers.
Douglas Spooner commented
+1 to this. It seems to be in reverse name ordering ie ws-004,ws-003.ws-002, ws-001
Marcello Fernandes commented
This would be a much appreciated feature. We are currently deploying to six servers, and have done a workaround with duplicating steps the deploy steps. Which doesn't feel right to do.