Microsoft Azure SQL PaaS vs. IaaS

09

Apr, 15

Microsoft Azure SQL PaaS vs. IaaS

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

Best for

New cloud-designed applications that have time constraints in development and marketing

You do not want to employ IT resources for support and maintenance of the underlying infrastructure

You want to focus on the application layer

You have IT resources for support and maintenance

Total cost of ownership

Eliminates hardware costs

Reduces administrative costs

Eliminates hardware costs

Business continuity

In addition to built-in fault tolerance infrastructure capabilities, Azure SQL Database provides features that increase business continuity, such as Point in Time Restore, Geo-Restore, and Geo-Replication

Lets you set up a high availability and disaster recovery solution for your database’s specific needs. Therefore, you can have a system that is highly optimized for your application. You can test and run failovers by yourself when needed

You can have applications that run partly in the cloud and partly on-premises. For example, you can extend the on-premises network and Active Domain Directory to the cloud via Azure Network Services. In addition, you can store on-premises data files in Azure Storage using the SQL Server Data Files in Azure feature

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.