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.