Windows Azure Virtual Machines is a real game changer as it gives us ability to spin up VMs in no time to setup a full blown SQL Server.
The topic of High Availability(HA) will come to your mind in case you are planning to deploy a mission critical SQLServer on Windows Azure VMs and you cannot afford any downtime.
Do Microsoft take the VMs in Azure down for maintenance ? Yes, they do that. There are scheduled windows when MSFT will do maintenance for their data centers, host machines and they will restart the VMs which are part of the host.
What does this mean to your mission critical application which utilizes SQLServer deployed on this VM ?
Though Microsoft is really careful planning and scheduling these maintenance to occur during non business hours,it might still impact your SLAs(How much time your server will be up and running).
Is there a way to override this ?
Yes,there are ways to avoid this and there comes the concept of Availability Sets.
In a nut shell, you will have to have 2 or more VMs for the application to be highly available and you configure them on the same Availability Set.
When you configure 2 VMs in an availability set, Microsoft will never take them down at the same time during maintenance windows(Related to update domains), and also it can overcome single point of failures within the racks(Fault domains).
The below picture should help to understand the concept well.
VM2 and VM8 are part of an availability set and with these VMs your application can be highly available. During a maintenance window these 2 VMs wont go down at the same time.
You can create an availability set when configuring your 1st VM.
When creating the 2nd VM,you have the option to add it to the availability set.
Always ON Availability Groups can be configured to ensure that outages are reduced or avoided.
Windows Azure is gaining traction and with the inclusion of HA features, your move up to the cloud is more reliable now.
Thanks for reading and keep watching this space for more !