Le applicazioni moderne non nascono tutte sullo stesso motore di database. Molti progetti open source, CMS come WordPress, framework web e workload cloud-native adottano da anni PostgreSQL e MySQL come standard di fatto. Azure permette di portare questi motori in cloud senza rinunciare ai vantaggi del modello PaaS (Platform as a Service), grazie a servizi completamente gestiti.
I servizi gestiti open source su Azure
Azure offre due servizi PaaS dedicati ai motori relazionali open source più diffusi:
- Azure Database for PostgreSQL — versione gestita di PostgreSQL, adatta a workload transazionali, applicazioni geospaziali (con estensione PostGIS) e scenari analitici.
- Azure Database for MySQL — versione gestita di MySQL, ideale per applicazioni web e piattaforme LAMP.
Entrambi vengono erogati oggi tramite il modello di deployment Flexible Server, che offre maggiore controllo su finestre di manutenzione, zone di disponibilità e configurazione del motore. La caratteristica fondamentale è che restano compatibili al 100% con il motore open source: il codice, i driver e le query esistenti funzionano senza modifiche, facilitando il lift-and-shift di applicazioni già scritte per PostgreSQL o MySQL.
Cosa gestisce Azure al posto tuo
Trattandosi di PaaS, l’amministrazione dell’infrastruttura è a carico di Microsoft. In particolare Azure gestisce automaticamente:
- Backup automatici con point-in-time restore, senza dover schedulare job manuali.
- Patching del sistema operativo e del motore di database, incluse le patch di sicurezza.
- Alta disponibilità con replica e failover automatico tra zone di disponibilità.
- Scalabilità: si possono aumentare CPU, memoria e storage in modo indipendente, spesso senza downtime significativo.
- Monitoraggio e sicurezza integrati, con crittografia at-rest e in-transit e integrazione con Microsoft Entra ID per l’autenticazione.
Il team di sviluppo si concentra così su dati e applicazione, non sulla manutenzione di server, aggiornamenti o strategie di backup.
Quando scegliere open source rispetto ad Azure SQL
La scelta del motore relazionale è un tema ricorrente. La regola pratica di livello fundamentals è la seguente:
- Scegli Azure Database for PostgreSQL o MySQL quando l’applicazione è già scritta per quel motore, quando il team ha competenze open source, quando si migra un workload esistente (es. un sito WordPress usa MySQL, molte app Django usano PostgreSQL) o quando si vuole evitare dipendenza da un singolo fornitore.
- Scegli Azure SQL Database (basato su motore SQL Server) quando si parte da un’applicazione .NET o SQL Server on-premises, quando servono funzionalità enterprise specifiche o quando il team ha già competenze su T-SQL.
In tutti questi casi si parla di database relazionali: la differenza non è nel modello dei dati (tabelle, righe, chiavi, relazioni, SQL), ma nel motore e nel suo ecosistema.
Come i servizi gestiti riducono costi e overhead
Il vantaggio economico del PaaS non sta solo nel prezzo del servizio, ma nella riduzione dell’overhead operativo:
- Meno personale dedicato: non serve un DBA per patching, backup e configurazione dell’hardware.
- Nessun costo di infrastruttura sottostante da gestire: si paga il servizio, non i server fisici o le VM.
- Ottimizzazione dei costi: la scalabilità elastica permette di dimensionare le risorse in base al carico reale; alcuni tier (es. burstable) sono pensati per workload leggeri o di sviluppo, evitando di sovradimensionare.
- Riduzione del rischio: aggiornamenti di sicurezza e continuità sono garantiti dallo SLA di Microsoft.
Rispetto a installare PostgreSQL o MySQL su una VM Azure (modello IaaS), dove la manutenzione resta a carico dell’utente, il PaaS trasferisce a Microsoft gran parte del lavoro amministrativo.
Trappole tipiche d’esame
- Scenario: devi migrare un’app WordPress esistente su Azure con il minimo sforzo → risposta giusta: Azure Database for MySQL (motore compatibile, nessuna riscrittura).
- Scenario: vuoi un database relazionale senza gestire patching, backup e sistema operativo → risposta giusta: un servizio PaaS gestito (Azure Database for PostgreSQL/MySQL o Azure SQL Database), non una VM con il DB installato.
- Scenario: hai un’app Python/Django già scritta per PostgreSQL e vuoi ridurre l’overhead operativo → risposta giusta: Azure Database for PostgreSQL.
- Scenario: il team richiede pieno controllo sul sistema operativo e su versioni specifiche del motore non offerte dal PaaS → risposta giusta: PostgreSQL/MySQL su una VM Azure (IaaS), accettando la responsabilità della gestione.
- Scenario: parti da zero con uno stack Microsoft/.NET e competenze T-SQL → risposta giusta: Azure SQL Database, non un motore open source.