Windows Server 2008/R2 & SQL Server 2008/R2 end of support brings challenges for organizations in terms of security, cost and regulatory compliance. Organizations must look for ways to upgrade their systems to the more recent versions of Windows & SQL Server.
This is a great opportunity for organizations to modernize their infrastructure using Azure.
So, what are the available options for Azure SQL Migrations?
To move SQL Server to Azure there are 3 options to choose from:
- SQL Server on Azure VM
- Azure SQL Managed Instance
- Azure SQL Database
Which one you should use depends on your requirements & features offered.
Let’s understand the offerings:
- SQL Server on Azure VM falls under Infrastructure as a Service (IaaS) offering and allows you to run SQL Server inside Azure managed virtual machine. Customer is responsible for Patching, backups, maintenance, patching and upgrade of o/s and database. SQL Server virtual machines in Azure are lift-and-shift ready for existing applications that require fast migration to the cloud with almost no changes. SQL virtual machines offer full administrative control over the SQL Server instance and underlying OS for migration to Azure. This approach is beneficial for organizations to consolidate workloads in Azure and prepare a plan for cloud optimization.
- Azure SQL Managed Instance (MI)is a Platform as a Service (PaaS) based intelligent, scalable, and highly available offering. SQL Managed Instance allows existing SQL Server customers to lift and shift their on-premises applications to the cloud with minimal application and database changes. At the same time, SQL Managed Instance preserves all PaaS capabilities like automatic patching and version updates, automated backups, high availability that drastically reduces management overhead and TCO. This offering combines the best features of the Azure SQL database and SQL Server database engine. You will get highly available System with up to 99.99% SLA.
- Azure SQL Database is a fully managed platform as a service (PaaS) database engine that handles most of the database management functions such as upgrading, patching, backups, and monitoring without user involvement. Azure SQL Database is always running on the latest stable version of the SQL Server database engine and patched OS with 99.99% availability. Since the scope is limited to the database, features that are supported at the instance level in on-prem hosting will not work here. An application may require a re-write before migrating to the Azure SQL database.
Azure SQL Database is offered in 2 deployment options:
- As a single databasewith its own set of resources managed via a logical SQL server. A single database is similar to a contained database in SQL Server. This option is optimized for modern application development of new cloud-born applications.
- An elastic pool, which is a collection of databases with a shared set of resources managed via a logical SQL server. This option is optimized for modern application development of new cloud-born applications using the multi-tenant SaaS application pattern.
SQL Server Deployments Options
Summary of Feature
|Feature||SQL Server on Azure VM||Azure SQL Managed Instance||Azure SQL Database|
|Offering Type||IaaS||PaaS||PaaS (DB as a Service)|
|Scope||Single/Collection DB||Instance of SQL Server||SQL Server inside a VM|
|Control||Full Control on SQL Server Instance & Underlying VM||Full control on SQL Server Instance||Full control on database|
|Administration||Full administration of SQL Instance||No access on underlying VM, Instance administration not required||No access to underlying OS & Instance.|
|Compatibility||100% compatible with On-prem||Nearly 100% compatible with On-prem||Supports database scoped features only|
|Upgrade||Manual Patching and manual upgrades required||Automatic patch & upgrade||Automatic patch & upgrade|
|Backup/Recovery||Manual Backup & Recovery||Built-In Backup and recovery||Built-In Backup and recovery|
|SLA||99.95% (VM guarantee & not SQL Server Instance)||99.99%||99.99%|
|Availability||Customer responsible for availability architecture||Built-In High Availability||Built-In High Availability|
|Migration Compatibility||Lift & Shift ready||Lift & Shift Ready||Application re-write may be required before migration.|
If you want to lift & shift and also need administrative control, then SQL Server VM is your choice.
Your team wants to concentrate on the application and does not want the overhead of managing the underlying infrastructure, upgrades, backups or your app team also does not want to re-write, SQL Managed Instance is a no-brainer.
Azure SQL Database is ideal for cloud-native developments & multi-tenant apps.
SQL Database and SQL Managed Instance both are sold as a service in Azure and are available with several deployment options and service tiers. They have built-in intelligence that helps in dramatically reduce the costs of running and managing databases, and that maximizes both performance and security of your application. Running millions of customer workloads around the clock, SQL Database collects and processes a massive amount of telemetry data, while also fully respecting customer privacy. Various algorithms continuously evaluate the telemetry data so that the service can learn and adapt with the hosted application.
Some of built-in intelligence capabilities of SQL Azure DB and SQL Azure MI are:
- Proactive Monitoring
- Tailored Performance Insights
- Early detection of database performance degradation
- Root Cause Analysis of issues detected
- Performance improvement recommendations
I will share deployment options, Service Tiers, Failover feature, Intelligence Insights and their business use case in an upcoming article.