Data storage is a big part of everything we do today. Data is stored in many ways, including on SQL servers. Microsoft SQL Server is a widely used and robust solution enjoyed by many. Traditionally, Microsoft SQL Servers were housed in a data center on hardware sufficient to support the workload. This is still a viable solution today, but it is no longer the only option.
Microsoft Azure has expanded the options for bringing SQL-based solutions to your customers. You can install and run SQL Servers on a Virtual Machine through the Azure Infrastructure as a Service options. You can also run an Azure SQL Database through what we call Database as a Service.
The question is, how do you help your customers choose the right option for their needs? This is an area where partners can add value for customers. You can help them make a choice that will solve the challenges they may be facing today, with flexibility to address their future business needs as well.
The big picture
The diagram below does a good job illustrating the four ways you can run SQL today. As you move vertically up the list of options, the cost decreases. Moving horizontally takes you from higher control/higher administration options to ones of lower control/lower administration.
This illustration also shows that regardless of what option you choose, you can connect on-premises and cloud bases resources together through our Hybrid cloud options—one of the real values of Microsoft Azure.
Two options for SQL on Azure
Now, let’s take a closer look at the two options that run on Azure, Microsoft Azure SQL Database and SQL Server in Azure Virtual Machine.
- Microsoft Azure SQL Database is a relational database-as-a-service, which falls into the industry category Platform as a Service (PaaS). Azure SQL Database is built on standardized hardware and software that is owned, hosted, and maintained by Microsoft.
- SQL Server in Azure Virtual Machine (VM) falls into the industry category Infrastructure as a Service (IaaS), and allows you to run SQL Server inside a virtual machine in the cloud. Similar to Azure SQL Database, it is built on standardized hardware that is owned, hosted, and maintained by Microsoft.
These two SQL options are optimized for different purposes:
- Azure SQL Database is optimized to reduce overall costs to the minimum for provisioning and managing many databases. It minimizes ongoing administration costs because you do not have to manage any virtual machines, operating system, or database software, including upgrades, high availability, and backups.
- SQL Server running in Azure VM is optimized to extend existing on-premises SQL Server applications to Azure in a hybrid scenario, or deploy an existing application to Azure in a migration scenario or dev/test scenario. With SQL Server in Azure VMs, you have the full administrative rights over a dedicated SQL Server instance and a cloud-based VM. With SQL Server in VM, you can build a highly customized system to address your application’s specific performance and availability requirements.
This table summarizes the main characteristics of Azure SQL Database and SQL Server in Azure VM:
|Azure SQL Database||SQL Server in Azure VM|
|Total cost of ownership|
There are some additional factors to consider when choosing the correct solution:
- How big of a data set will you manage? Anything over 500GB will need to go on an IaaS VM.
- What level of control and customization is needed? Azure SQL Database is always adding new features, so be sure to check for the latest information. If your database solution requires things like table partitioning, distributed transactions, Windows based authentication, linked servers, or full text search, then you are better off looking at deploying SQL on an IaaS VM.
- Is management and monitoring important? If you have a database that needs a core set of monitoring Azure SQL Database has a nice set of capabilities. If you have need to do highly customized and rich monitoring along with tracing, SQL Running in a VM may be the better solution.
What about Data Migration
It is possible to migrate data from an existing SQL Server to an Azure SQL Database. There are tools like this one that make the job easy. If your goal is to do regular backups and restore operations from on-premises to Azure, I suggest using SQL running on an Azure VM.
A word on data protection
Both options for running SQL on Azure allow you to enable solutions for backing up and preserving data. Azure SQL Databases enable point in time restores of 7, 14, or 35 days based on the selected service tier. There are also several options for geo-replication to support business continuity.
What does it cost?
- SQL Database pricing is published here.
- If you are deploying SQL Server on a VM you have options to bring your own licenses or to purchase the Microsoft SQL Server license as a part of the VM per-hour cost. Details here.