We made some exciting improvements to our SQL Server AlwaysOn Cluster template in the Azure portal to improve security, availability and performance.

To ensure a highly available configuration, our AlwaysOn Cluster template automatically deploys the following resources:

Two SQL Server Virtual Machines and one Witness Virtual Machine in an AlwaysOn Cluster

Two Domain Controllers to create a new Windows domain

One AlwaysOn Listener using an Internal Load Balancer

A Virtual Network to contain all resources for security

In addition, you can customize your cluster to optimize it for performance and availability with the following features:

Customizable Storage configuration

Configurable Patching Schedule

Option to choose SQL Server version

All of this ensures the template can be used to deploy production-ready clusters that meet your availability, performance, and security requirements.

Support for Internal Load Balancer

To improve the security of this deployment, the template now takes advantage of an Internal Load Balancer for your Listener endpoint. This means you can only connect to your primary replica from within your Virtual Network.

Configuration of Storage and SQL Server for workload

In the past, after provisioning a SQL Server VM, you had to manually attach and configure the right number of data disks to provide the desired number of IOPs or throughput (MB/s). Then you need to stripe your SQL files across the disks or create a Storage Pool to divide the IOPs or throughput across them. Finally, you’d have to configure SQL Server according to the performance best practices for Azure VM.

Now, we made this part of the provisioning experience for both single SQL VMs and SQL VMs create by our AlwaysOn Cluster Template. In this template, you can specify how much storage you want, between one and four Terabytes to start (this will of course increase in the future). Based on your input, we attach the required number of data disks and configure them. If more than one data disk is required, we will create one Storage Pool across all disks with our performance best practices according to the workload type you specify (online transactional processing or data warehousing).

Option to choose SQL Server version

You can now select which version of SQL Server you wish to use for your SQL Server replica VMs. Whether you wish to use SQL Server 2012 and 2014 (all Enterprise edition), you simply select the version you require. We will soon also have support for SQL Server 2016 CTP3.

Automated Patching

To improve the availability of your cluster and your domain, this template now takes advantage of the Automated Patching feature. This feature configures a patching window for your VM to ensure any patching and subsequent reboots only take place during the specified time window. When this cluster is deployed, each virtual machine will have a different patching window so no two VMs that are part of your AlwaysOn deployment will go down at the same time due to patch updates.

We have updated the AlwaysOn template to support Azure Resource Manager. This means we will soon add ARM templates to GitHub which you can then customize and deploy via PowerShell.