So you have an application running in Azure, running on a set of web and worker roles, and you need to upgrade it. What do you do?
The third option is to do a VIP Swap, where you set up a completely new set of servers in Azure with the new version, then you click a button and your production IP address immediately starts routing to the new servers.
That’s great, but how much is this going to cost?
A VIP swap upgrade requires that you start up a new set of roles in the staging environment. This will have an added cost, as you must pay the hourly/monthly fee for staging roles just like you do for production roles. However, this can be minimized if you delete the staging environment when you’re done. If you have the staging environment up for less than an hour, which seems quite possible, you can get away with paying under $1 per role for the hour that is up if they are extra large instances (or less for smaller roles). This can be done with the following process:
1. Decide you want to upgrade your app from v1 to v2
2. Ramp up a sufficient number of staging servers with v2, wait for them to all be ready
3. VIP swap
4. Delete/Remove the staging servers, which are now running v1 (don’t just turn them off)
However, if you need to have your staging servers up for test purposes on a permanent basis, the cost of the staging servers will be whatever the monthly fee is for the staging roles, independent of the cost for the production roles. Additionally, keep in mind that when you delete and then redeploy the staging servers, the DNS name for the staging servers will change, and it can take several hours for the new DNS name to propogate and be available for your testers.
In-place and Delete/Redeploy
For an in-place upgrade or a delete and redeploy, there is no added cost, unless you are changing the number or size of the roles, which of course will mean that your monthly bill will increase. But there is no cost associated with the upgrade itself.