SQL Server on Azure VM vs Azure SQL Managed Instance vs Azure SQL Database vs Azure Database for MySQL/PostgreSQL

Verdict: Only SQL Server on an Azure VM is IaaS, leaving OS and engine patching to you. Among PaaS, match the engine: SQL Server compatibility needs Managed Instance or SQL Database; a MySQL or PostgreSQL app needs the matching open-source service.

CriterionSQL Server on Azure VMAzure SQL Managed InstanceAzure SQL DatabaseAzure Database for MySQL/PostgreSQL
Management modelIaaS, customer-managedPaaS, fully managedPaaS, fully managedPaaS, fully managed
OS/patching responsibilityCustomer patches OS and SQL ServerAutomated by MicrosoftAutomated by MicrosoftAutomated by Microsoft
Compatibility surfaceFull on-premises SQL Server compatibilityNear-100% SQL Server compatibilityCore SQL Server database-level capabilities, not all instance-level featuresNative MySQL or PostgreSQL engine, not SQL Server
Best forMigrations or apps needing full OS-level accessMigrating instance-level SQL Server features with minimal changeNew cloud apps needing the lowest administrationExisting MySQL or PostgreSQL apps moving without rewrite

Rules

Traps