Quando un’organizzazione decide di portare i propri database relazionali su Azure, non esiste un’unica strada: Microsoft offre una famiglia di servizi SQL che si collocano su punti diversi del continuum tra controllo e comodità. Capire quale scegliere in base allo scenario è uno degli argomenti più ricorrenti dell’esame DP-900.
Il modello di responsabilità condivisa
Il criterio guida per orientarsi è il shared responsibility model. Salendo da IaaS a PaaS, Microsoft si fa carico di una porzione sempre maggiore della gestione:
- IaaS (Infrastructure as a Service): gestisci tu sistema operativo, patch, backup e configurazione di SQL Server. Massimo controllo, massimo onere operativo.
- PaaS (Platform as a Service): Microsoft gestisce l’infrastruttura sottostante, il patching del motore, i backup automatici e l’high availability. Tu ti concentri su dati, schema e query.
L’esame ama contrapporre “voglio ridurre al minimo l’overhead amministrativo” (→ PaaS) a “ho bisogno del controllo completo del sistema operativo” (→ IaaS).
Le tre opzioni di deployment
SQL Server su Azure Virtual Machine (IaaS)
È letteralmente SQL Server installato su una VM Azure (Windows o Linux). Hai il controllo totale: versione esatta del motore, feature a livello di OS, SQL Server Agent completo, accesso al file system. In cambio, sei responsabile di patch, backup, alta disponibilità e tuning.
Quando usarla: quando servono funzionalità non disponibili nelle opzioni PaaS, quando un’applicazione richiede accesso al sistema operativo, o come rehost rapido di un carico esistente senza cambiare architettura.
Azure SQL Managed Instance (PaaS)
È un servizio gestito che offre compatibilità quasi totale con SQL Server on-premises, a livello di istanza. Supporta feature che il singolo database non ha, come cross-database queries, SQL Server Agent, Service Broker e CLR. È la scelta di riferimento per lo scenario lift-and-shift (rehosting): si migra un intero ambiente SQL Server con modifiche minime, delegando patching, backup e HA a Microsoft.
Quando usarla: migrazione di database SQL Server esistenti che usano funzionalità a livello di istanza e per cui si vuole comunque un servizio gestito.
Azure SQL Database (PaaS puro)
È il servizio PaaS puro e “cloud-native”, pensato per singoli database moderni. Offre il minimo overhead gestionale, scalabilità elastica, backup automatici e alta disponibilità integrata. Include modelli come serverless (scala automaticamente e mette in pausa il compute quando inattivo) ed elastic pool (condivisione di risorse tra più database con carichi variabili).
Quando usarlo: nuove applicazioni cloud, workload SaaS multi-tenant, scenari dove si desidera scalabilità elastica e il minimo sforzo operativo possibile.
Alta disponibilità gestita
Un vantaggio chiave delle opzioni PaaS (Azure SQL Database e SQL Managed Instance) è l’high availability integrata, con SLA fino al 99,99% senza dover configurare manualmente cluster o always-on. I backup automatici abilitano il point-in-time restore. Con SQL Server su VM, invece, l’HA va progettata esplicitamente (es. Always On availability groups). Ricorda: nelle opzioni PaaS l’autenticazione moderna si appoggia a Microsoft Entra ID, non alle vecchie identità “Azure AD”.
Criteri “quando usare cosa” in sintesi
- Minimo overhead + database singolo, app moderna → Azure SQL Database
- Migrazione lift-and-shift con feature a livello di istanza → Azure SQL Managed Instance
- Controllo completo di OS e motore / feature legacy → SQL Server su Azure VM
Trappole tipiche d’esame
- Scenario: “Devo migrare rapidamente più database SQL Server on-premises che usano cross-database queries e SQL Server Agent, con il minimo refactoring.” → Azure SQL Managed Instance (compatibilità a livello di istanza), non SQL Database.
- Scenario: “Nuova applicazione cloud, un singolo database, voglio il minimo lavoro amministrativo e scalabilità elastica.” → Azure SQL Database (PaaS puro), eventualmente serverless.
- Scenario: “L’applicazione richiede accesso al sistema operativo o a una feature non supportata dalle opzioni gestite.” → SQL Server su Azure VM (IaaS).
- Scenario: “Voglio backup automatici e alta disponibilità senza configurare nulla.” → una qualsiasi opzione PaaS (SQL Database o Managed Instance), mai la VM.
- Trabocchetto terminologico: “lift-and-shift” richiama quasi sempre Managed Instance; “PaaS puro / cloud-native / singolo database” richiama Azure SQL Database. Non confonderli.