Blog Azure Infrastructure

Unlocking the Power of Azure SQL: Choosing between Azure SQL, SQL Managed instance or SQL Server

When it comes to transforming an application to Azure, one common question we encounter at Intercept is selecting the right SQL database.

Rinie Huijgen

Author

Rinie Huijgen CTO

Reading time 4 minutes Published: 23 December 2021

Microsoft provides three distinct SQL offerings within Azure, each with its own strengths and features. Let's delve deeper into these options. In this article, we will tell you more about: 

  1. The possible options;
  2. Where to pay attention to when making this choice;
  3. Which database do we recommend for which situation;

The following SQL deployment options are available

1. Azure SQL

Azure SQL is a robust cloud-based service (PaaS) that shares many features with on-premises SQL Server. This solution offers exceptional scalability and high availability out of the box, making it an ideal choice for modernizing your applications. Leveraging Azure's infrastructure, you can seamlessly scale your databases to meet growing demands. Additionally, Azure SQL enables geo-replication, simplifying the deployment and management of databases across regions. Compliance requirements are addressed with features like Azure SQL Auditing and Transparent Data Encryption;

2. SQL Managed instance

Azure SQL Managed Instance is a fully managed database service that provides nearly 100% compatibility with the latest SQL Server (Enterprise Edition) database engine. It combines the benefits of both PaaS and traditional SQL Servers, offering a seamless migration path for applications dependent on SQL Server features. With SQL Managed Instance, you can take advantage of high-performance computing and comprehensive database capabilities while reducing administrative overhead. Considering resource limits when opting for this option is crucial to ensure optimal performance.

3. SQL Server

Azure fully supports running SQL Server on Infrastructure as a Service (IaaS) virtual machines (VMs). By leveraging Azure VMs, you gain complete control over the operating system and can maintain compatibility with on-premises workloads, including SQL Server Reporting Services. To ensure high availability, it is recommended to utilize Always On availability groups, guaranteeing continuous database accessibility. Regular patching of the VMs is essential, and Cluster-Aware Updating is advised for streamlined updates.

Azure SQL Database vs Managed Instance vs SQL Server: making the right choice

Running SQL in Azure makes a lot of sense and over a million on-premises SQL servers have already moved to Azure. Modernizing your application provides the opportunity to transform your data architecture. Azure SQL allows you to benefit from almost unlimited cloud scalability and has high availability out of the box. You can run SQL Server on an Azure VM if you also need complete control over the operating system or compatibility with on-premises workloads such as SQL Server Reporting Services.

The following SQL statement provides simple high-level guidance when choosing the correct SQL product in Azure:

 

Azure vs the competition

Azure emerged as the clear leader across both Windows and Linux for mission-critical SQL workloads. Microsoft SQL Server on Microsoft Azure shows a 3.6x better performance on Windows than SQL Server on AWS EC2 and up to 84.2% better price performance:


Source

Benefits of each deployment option

We do have some takeaways when investigating the different SQL options available in Azure.

  • For Azure SQL have a look at Failover groups to manage replication and failover of databases to another region. This feature was designed to simplify the deployment and management of geo-replicated databases at scale.
  • Also when you have a lot of databases, placing them in Elastic pools can be a simple and cost-effective solution. When looking at compliance have a look at Azure SQL Auditing and Transparent data encryption.
  • When you transform your application and would like to use Azure SQL, do not forget to mitigate connection errors and transient errors that your client application encounters when it interacts with Azure SQL Database. Adding robust retry logic should be top of mind.
  • If your application doesn’t support Azure SQL and you are looking to use SQL Managed instance, please have a close look at the resource limits. We have some great experience with SQL Managed instance compatibility, but only when you are not hitting IOPs limits.
  • Full compatibility is achieved when running SQL Server on a Windows or Linux VM. When exploring this option, make sure you are using Always On availability groups to ensure high availability. As you will now be using VMs, you must patch them regularly. We advise using Cluster-Aware Updating from the get-go as adding that later might be much more difficult.
  • To keep costs in control consider using Azure Reservations and Hybrid Use Benefit.

Execute a complete migration with near-zero downtime

If you want to analyze and automate your database migration to Azure, Microsoft has your back. The Azure Database Migration Guide offers guidance when moving from on-premises SQL Server, Oracle, MySQL, MongoDB, and more. From the pre-migration steps (discover, assess, and convert) to the actual migration.

Microsoft also offers the Azure Database Migration Service which enables seamless migrations from multiple database sources to Azure Data platforms with minimal downtime. Choose your database by filling in this questionnaire. 

Questions about SQL Database? Come to Intercept

If you have any questions regarding the selection of the right SQL database for your specific situation, don't hesitate to reach out to us at Intercept. Alternatively, you can join our Azure Fundamentals workshop, where we dive deeper into the world of Azure SQL Databases and provide valuable insights.