Understanding deployment models in Azure SQL

Understanding deployment models in Azure SQL

If you are trying to create Azure SQL instance for the first time in your career, it may be very confusing because of the deployment option offered by Azure.

In this article, let’s have a look at the deployment options provided in Azure SQL and how to identify if they suit your business requirements.

Azure SQL is a Platform-as-a-Service option offered by Azure, powered by Industry leading Microsoft SQL Server Engine. Within PaaS, you have multiple deployment options and service tiers within each deployment option.

The key question that you need to ask when deciding between PaaS or IaaS is do you want to manage your database, apply patches, and take backups, or do you want to delegate these operations to Azure?

Depending on answer of this question, you have following options:

SQL Database

This is fully managed SQL database engine running based on latest stable Enterprise edition of Microsoft SQL Server. This is relational database as a service offering which falls under platform as a service category.

When using SQL Database, you pay-as-you-go with options to scale up or out for greater power with no interruption. SQL Database has some additional features that are not available in SQL Server, such as built-in high availability, intelligence, and management.

There are three more additional options under this category:

Single Database

This is similar to contained database in SQL server. It gets its own set of resources via a database server. This application is suitable for development of the modern cloud applications.

Elastic Pool

A collection of databases with a shared set of resources managed via a database server.  Single database can be moved in and out of Elastic Pool. Elastic pools provide a cost-effective solution for managing the performance of multiple databases that have variable usage patterns.

Database Server

This can be used to manage multiple instances of Elastic Poool or Single Databases. The Database servers act as a central administrative point for multiple single or pooled databases, loginsfirewall rulesauditing rulesthreat detection policies, and failover groups.

SQL Managed Instances

Managed instance is a collection of system and user databases with a shared set of resources that is lift-and-shift ready.  A managed instance is similar to an instance of the Microsoft SQL Server database engine offering shared resources for databases.

If you want to migrate application from On-Premise to Azure with minimal modifications, then this is the best suited option for you. Managed instances provide full SQL Server access and feature compatibility for migrating SQL Servers to Azure.

This option provides all benefits of Azure SQL PaaS but also adds the capabilities which were available earlier only with SQL virtual machines.

SQL Virtual Machines

This option is best for migrating the cloud and your application requires OS level access. SQL virtual machines offer full administrative control over the SQL Server instance and underlying OS for migration to Azure.

SQL virtual machines fall into the industry category Infrastructure-as-a-Service (IaaS) and allows you to run SQL Server inside a fully-managed virtual machine in the Azure cloud.

Because you are using virtual machine in this option, all versions of SQL Server are available for you to use. One of the additional responsibility you have as compared to SQL Managed instances, is upgrades, patching of virtual machines has to be done by you. They are not managed by Azure.

In addition to these details, there may be additional factors which you will have to consider before going for any deployment options. Some of them can be:

  • Cost, PaaS hides all unnecessary details from you, but IaaS may help you to optimize the cost by shutting down the resources.
  • Administration – PaaS hides all administrations upgrades, patching which may need some downtime.
  • Service level agreements, Both PaaS (99.99%)and IaaS (99.95%) provides very SLAs
  • Time to move to Azure, movement to SQL PaaS may need code changes and other modifications which may need more time as compared IaaS options.

I hope this article helps you to choose right deployment option which suits your business needs. Let me know your thoughts.

Leave a Reply