I've be been tasked with deciding between iaas and paas for our upcoming product. I have gone through most of the documentation out there but unfortunately lacks any practical real-life experience with either one of them. I have a lot of experience with on premise SQL server so I believe it's easier for us to transition our support to an iaas solution.

I have talked to couple of my friends and their organizations has chosen iaas over paas citing lack of control in paas environment.

Our application is going to be mission critical, highly transactional and will be used in the financial industry.

So my question is whether azure SQL dB is mature enough and are people using it for mission critical large databases? Is there any gotchas that we need to be aware of.


  • 2
    you need to do a poc (proof of concept) on Azure VM and Azure SQL DB and see where you want to go. there's a lot of things you need to consider like business continuity, security, workload, etc.. you can start reading PaaS IaaS SaaS here and then register and play with Azure SQL DB and Azure VM free.
    – user37701
    Apr 4, 2018 at 8:32

3 Answers 3


Azure SQL (PaaS) is not yet fully mature and there are few features in the On-Premises that will not be supported. IaaS will be much suitable for existing application for migration as you will have full control on moving the existing functionalities.

Here are 2 links which give a better comparison of the two offerings:

1.Microsoft Documentation

2.MSDN Blog


There is a new azure solution, that offers best sides of PaaS and IaaS: Azure SQL Database Managed Instance


Managed Instance enables you to use almost any feature that you have in SQL Server 2017 Database Engine. Managed Instance supports CLR, cross-database queries, linked servers, Service Broker/Query Notifications, native BACKUP/RESTORE statements, db_mail, SQL Agent etc.

and at the same time:

Managed Instance is fully Platform as a Service database offer. High availability, automated backups, point-in-time restore, automatic plan correction, threat detection, vulnerability assessment, and other intelligent features are built-in into service without any additional charge.

OS patching and database upgrades are handled automatically and do not require any action.

In addition to built-in monitoring and maintenance features, you can use any 3rd-party tool to monitor and manage your instance, because most of the system views are exposed.

enter image description here


Blog post: What is Azure SQL Database Managed Instance?


As you say IaaS gives you more control over the instance. The corollary is that you have to provide that control - and the maintenance, patching, HR, backups, DR etc... For that extra effort you get an environment exactly like the on-premise one you're familiar with, with someone else looking after the hardware.

With PaaS you lose some access (no more SYSADMIN!) but don't have to deal with many of the admin tasks either. Backups, HA & fail-over are provided to you. The experience is more like being in ops or a highly privileged developer rather than an up-to-the-elbows production DBA.

Some of the things to be aware of with PaaS are

  • Restrictions on the features available.
  • The SQL syntax is sometimes more limited on Azure DB.
  • Costs can mount, especially at the higher tiers. If you have a terabytes of storage and heavy ingestion it can incur unexpected charges. This is easy to track through the portal, however, and you can always down-scale quickly unlike on-prem where you're stuck with the capacity you've bought.
  • Things are measured in DTUs which do not correspond easily to CPU or RAM measurements. The only way to know if you have enough / too much DTU is to stress test the environment and measure performance, which of course costs money. Scaling up & down is trivially easy, however.
  • There is an upper limit to the horsepower available. Looking at the pricing guide you'd have to be trying hard to stress those top-end instances, though.
  • Monitoring tools you may be used to using will not play nicely with Azure DB. With an IaaS instance you can install anything you choose alongside your DBMS.

Is Azure DB mature enough? As I understand it, it is SQL Server, but tailored to a cloud environment. Rumour has it it is actually vNext and new code is first deployed on Azure, then released as on-prem CUs. So the question becomes is Microsoft's cloud ready for production, but that will be a common factor in any of the options you're considering so is moot.

Currently I work for a small start up. All our environments are on Azure and work well, though our current requirements are quite modest. Previously I've worked as DBA and developer for large multi-nationals. I would have no hesitation suggesting a heavy workload be deployed on an Azure DB.

Not the answer you're looking for? Browse other questions tagged or ask your own question.