Operators want to keep services running while deploying upgrades, or at least close enough to running that clients don't notice. Shutting down all services, upgrading them all, then running migrations, then starting them all up is an uptime nightmare.
Lets detail the steps needed to allow migrations to happen without [non-trivial] visible downtime.