There is a new cloud offering: Azure SQL Database Managed Instance, released to General Availability timed with the Microsoft Ignite conference.
Managed Instances fit between the PaaS and IaaS offerings and an important and distinct consideration for cloud SQL platforms. It combines many of the advantages of both, especially for lift-and-shift scenarios for on-prem SQL Server workloads.
This new offering combines many of the no-administrative-effort advantages of Azure SQL Databases, where DR and performance tuning is automatically handled, but also many of the feature advantages of running a SQL Server installation in an VM (Iaas). Managed Instances have "nearly 100% compatibility" with existing SQL Server databases and workloads, as well as some features that make Azure SQL Databases so easy — with built-in high availability, automatic backups, automatic performance tuning, threat detection, and automatic SQL patching.
However, Managed Instances provide for many on-prem features that Azure SQL Databases don't have, including user-initiated backups, Transparent Data Encryption (TDE), automation via SQL Agent, Change Data Capture (CDC), Service Broker, Common Language Runtime (CLR), cross-database queries, linked servers, Database Mail, and more.
In this way, Managed Instances have many of the features of IaaS SQL Servers and low-maintenance advantages of PaaS Azure SQL Databases. Each of these three distinct offerings have a value and ideal scenario for long-term investment of your applications.
Lift and Shift On-Prem SQL Applications
We can lift-and-shift existing on-prem SQL Server-dependent applications that need Enterprise-level features with minimal changes to Managed Instances. Moving existing on-prem SQL Server-dependent applications to Azure SQL Database can be somewhat more challenging or impossible, because of feature usage. The Azure Database Migration Service provides an easy tool for migrations of databases to any Azure database option — Azure SQL Database, Managed Instance, or SQL Servers hosted in an Azure VM.
Azure SQL Database Managed Instances have two tiers at launch of General Availability: the General Purpose and Business Critical levels. Both have managed backups and automatic, managed Availability Groups for high availability with read-only replicas. Business Critical features what should be a standard for production applications: premium IO performance, an additional read-only replica for read-only routing and some Enterprise-level performance features like in-memory tables. Here is a breakdown of feature differences between the three different platforms.
Additionally, you can lift-and-shift existing SSIS workloads to the serverless and high scalable Integration Runtime environment with minimal code changes. Assuming you have the networking setup correct, your existing SSIS packages can run in the cloud, even accessing on-prem resources and systems, without code changes, and with the same development environment. Here's a quick start to using SSDT to deploy your SSIS packages to Azure Data Factory instead of to a SQL Server.
While Azure SQL Databases can be grouped into Elastic Database Pools for a big pricing advantage, Managed Instances is much like an on-prem SQL Server, it contains many databases in a single resource. Managed Instances use a vCore pricing model, making it easier to compare on-prem to comparable Managed Instance sizes. (Azure SQL Databases also support vCore pricing now, in addition to their original DTU-based pricing.)
Additionally, Managed Instances can be used with the Azure Hybrid Benefit for SQL Server, allowing you to use your existing SQL Server licensing for Azure spend. Microsoft suggests this may reduce the cost of a Managed Instance up to 55%.
Information and material in our blog posts are provided "as is" with no warranties either expressed or implied. Each post is an individual expression of our Sparkies. Should you identify any such content that is harmful, malicious, sensitive or unnecessary, please contact firstname.lastname@example.org