In the past few articles I’ve discussed the different aspects of moving your databases to the cloud. Based on the feedback and the talks I’ve had with people in the industry clearly most businesses have no intention for moving their production databases into the cloud. The cloud is a good fit for startups and for many businesses using the hybrid cloud provides some affordable options for disaster recovery. Although today cloud usage for production database workloads is limited there’s another place where the cloud makes perfect sense: test and development.
When your development team is working of a project they often have the need to spin up new VMs from database servers, web servers as well as development and staging systems. It’s not uncommon to need several of these for each developer. While you can certainly do this using in-house resources you need to have the capacity to do so and many times provisioning all these new VMs requires the involvement of the virtualization administrator and sometimes even the storage administrator. These VMs and server systems are usually only needed on temporary basis but this process takes both time and resources.
The cloud like Azure or Amazon AWS really makes sense in a situation. Developers can provision the VMs with the applications that they need from the cloud without requiring any outside support or internal compute or storage resources. Plus, in cloud providers like Microsoft Azure provide a number of prebuilt VM templates that can speed up the creation of fully provisioned VMs from hours to just minutes. For instance, to provision a VM on-premise you typically need to provision storage for the VM, create the VM, install the OS, configure the OS, and then install whatever applications are required. This can take hours for just one VM. If you’re using a private cloud this might be faster but most businesses don’t have private clouds. To provision a SQL Server VM in Azure you simply use the Azure Portal select the SQL Server template then select the size of VM that you want and the Azure storage account to place it in and hit the button. Azure will take care of creating the VM, installing the Windows Server operating system, optionally joining a domain, and installing SQL Server. The administrator doesn’t need to be involved and the whole process is much faster than provisioning an on-premise VM. When the project is completed the developer can just tear down the VMs and get ready for the next project.
Testing scenarios have similar advantages. There’s no need to deploy VMs on-site. Instead you can use VM templates from your cloud provider to rapidly deploy the scenarios that you want to test and discard them when you’re done. For instance, if you need to test a SQL Server AlwaysOn deployment then you can use something like the Azure AlwaysOn template to rapidly roll out a five VM deployment that includes two domain controllers, a file server witness and two SQL Server VM with AlwaysOn already configured enabling you to rapidly deploy your test environment. You pay for the resources that you use while you use them.
The cloud may not make sense for most production SQL Server workloads but it makes a lot of sense for test and development work.