Administrators looking to migrate VMs to Azure may simply use the IaaS platform but may find utilizing PaaS will...
benefit the business and the IT staff in the long run.
When workloads run as a group of virtual machines (VMs) on-premises, administrators may select the IaaS "lift-and-shift" migration model and assume the VMs will run the same way in Microsoft's Azure virtual network. Upon deep examination, they may find a switch to PaaS will help reduce costs and boost security.
To start comparing Azure IaaS vs. PaaS, consider when IaaS is the most reasonable choice. This example uses Microsoft Azure, but can apply to any public cloud provider.
When to use Azure IaaS vs. PaaS
IaaS gives full-stack access to VMs. Administrators who use Microsoft's Azure virtual network will have the same degree of control over the VMs' configuration as they had before the migration from on-premises VMs.
There are situations that mandate the lift-and-shift approach:
- Your web application framework and/or database version is not supported by the public cloud provider;
- Your management policies require the ability to manipulate the VMs at the registry level;
- Your security policies compel you to protect data in ways not supported by the cloud provider's resources separately;
- You cannot guarantee your customers the same service-level agreement (SLA) metrics that the cloud provider offers in a PaaS configuration.
If these situations don't apply, then consider PaaS. Microsoft Azure offers several hosted alternatives, including:
- Azure App Service: Hosted web applications
- Azure SQL Database: Hosted, geo-scale SQL Server databases
- Azure Active Directory Domain Services: Hosted Active Directory forests
Azure IaaS vs. PaaS features
To illustrate a migration scenario, let's say we have a typical database server that provides the data tier of a line-of-business application. The database might be a SQL Server failover cluster or an Always On availability group.
The administrator's goal is to get the database into the Azure cloud as efficiently as possible, without undue cost or a performance hit.
Some benefits of the PaaS Azure SQL Database include a 99.99% availability SLA, that many businesses cannot match, even with failover clustering. Azure SQL Database offers active geo-replication for the same cost as the primary database. This feature makes the SQL Server database available worldwide, but without the administrative overhead and cost of additional hardware and power.
The trade off to using a PaaS platform is the advantage of using IaaS -- administrative control. For example, administrators have less control over the IIS web server and underlying VM that hosts an Azure App Service web application than they would by hosting the same app in a VM. But the advantage to PaaS is more agility, such as the geo-replication feature of Azure SQL Database.
Sometimes the lines between IaaS and PaaS gets blurry. For example, Microsoft Azure now has an Azure SQL Database feature in preview called Azure SQL Database Managed Instance. This offering gives more access to the underlying SQL Server instance than Azure SQL, but with the advantages of hosting. Microsoft handles the high availability and hardware tuning of the SQL Server virtual server and associated databases.
Azure IaaS vs. PaaS service cost comparison
To compare Azure IaaS vs. PaaS costs, administrators can use the Azure Pricing Calculator. For this example, we'll run a simplified comparison between putting an on-premises SQL Server VM into Azure using the VM and the Azure SQL Database deployment options.
An estimate for SQL Server VM includes:
- DS3v2 instance size (4 vCPUSs, 14 GB RAM)
- No SQL Server license
- 2 managed premium disks
- Reserved public IPv4 address
The monthly runtime charge for that VM, assuming it's always on, was just shy of $500 USD per month. To use geo-availability, add:
- Duplicate of the above VM configuration
- Traffic Manager DNS load balancer
This adds up to $1,000 per month to use IaaS.
An estimate for Azure SQL Database includes:
- Single, Standard tier (S3) database
- 500 GB storage per database
That quote comes to $170 per month. Adding geo-replication makes it $340 per month. The PaaS model turns out to be quite a bit cheaper.