Azure SQL Database è un servizio di database relazionale completamente gestito offerto da Microsoft Azure, progettato per fornire elevate prestazioni, scalabilità e sicurezza per le applicazioni cloud. Basato sull'ultima versione del motore di SQL Server, Azure SQL Database consente di gestire e ottimizzare i database senza la necessità di gestire fisicamente l'infrastruttura sottostante ed è una soluzione ideale per le aziende che cercano di modernizzare le proprie applicazioni e infrastrutture di dati nel cloud. In questo articolo vedremo più da vicino cos’è, come funziona, quali opzioni offre per la preservazione dei dati e quali sono gli elementi essenziali da conoscere per navigarne le tariffe.
Nell'epoca odierna dominata dai dati, le aziende affrontano la sfida di gestire enormi quantità di informazioni generate da vari dispositivi e man mano che le imprese trasferiscono i loro flussi di dati nel cloud, queste sperimentano i vantaggi dell'archiviazione e del computing cloud, come la scalabilità flessibile, il risparmio sui costi grazie all'esternalizzazione delle infrastrutture IT interne e la massimizzazione della disponibilità dei dati.
Microsoft ha creato il suo Azure appositamente per permettere alle organizzazioni di sfruttare questi vantaggi nel loro passaggio “alle nuvole” e, nell’ambito dei dati, Azure SQL Database è una componente chiave della piattaforma di cloud computing della casa di Redmond.
Azure SQL Database di Microsoft Azure è un servizio di Database as a Service (DaaS) affidabile e scalabile, con soluzioni completamente automatizzate e alimentate dall'intelligenza artificiale. Il servizio consente di ospitare e utilizzare un database SQL relazionale nel cloud senza la necessità di installare alcun hardware o software.
Questa robusta piattaforma, progettata per le applicazioni web moderne, è rinomata per la sua efficienza e si colloca tra i migliori sistemi di gestione dei database. Molte applicazioni ora utilizzano Azure SQL Database con successo come parte della loro strategia dei dati.
Ma come funziona? Quali sono le sue caratteristiche? Vediamolo insieme nelle prossime sezioni.
Azure SQL Database è un database SQL nativo del cloud accessibile a individui e aziende tramite un modello Platform as a Service (PaaS), supportato dai robusti SLA contrattuali di Microsoft e con una disponibilità impressionante del 99,99%.
A differenza di un tipico database SQL auto-gestito, che richiede configurazione, gestione, sicurezza e una serie di altri processi per garantire che il database rimanga in uno stato di salute adeguato, il servizio gestisce automaticamente tutte le funzioni critiche di gestione del database, come aggiornamenti, pre-configurazioni, patching, gestione dei file di log e troncamenti, senza l'intervento dell'utente finale. I team IT possono quindi concentrarsi sulle operazioni aziendali critiche, piuttosto che dedicare tempo e risorse alla gestione e al monitoraggio di un database SQL gestito.
Azure SQL Database, per quanto riguarda l'allocazione dello storage, si comporta molto diversamente rispetto a un database on-premises o anche a un database SQL nativo del cloud auto-gestito. Tramite il servizio è possibile creare uno strato di storage elastico e scalabile, altamente disponibile, consumato secondo necessità e che mantiene lo stesso alto livello di prestazioni di un qualsiasi database SQL auto-gestito.
SQL Database offre aggiornamenti automatici, patching e backup automatizzati senza la necessità di intervento o configurazione dell'utente. Per impostazione predefinita, utilizza l'ultima versione stabile di SQL, tuttavia, per gli utenti che desiderano sfruttare le ricche capacità di configurazione di SQL, queste sono ancora disponibili. Servizi come Alter Database (Transact-SQL) permettono agli utenti di modificare alcune opzioni di configurazione del database.
Inoltre, gli utenti non devono preoccuparsi di sovra-allocare le risorse SQL o di affrontare esercizi complessi di pianificazione della capacità. Piuttosto, lo storage SQL viene allocato dinamicamente in base alle esigenze di storage del database per un'applicazione. Pertanto, per coloro che cercano un approccio semplice e ottimizzato in termini di costi per SQL, Azure SQL Database può essere un'opzione incredibilmente conveniente.
Ci sono quattro livelli nell'architettura di Azure SQL:
Se si sceglie di utilizzare la piattaforma Azure per i database SQL, ci sono due opzioni disponibili: database singolo e pool elastico (in inglese Elastic Pool). Entrambi hanno le loro peculiarità e andremo a vederle meglio nelle sezioni che seguono.
Un database singolo è l'equivalente di un database SQL Server, ma ospitato nel cloud. Questo è isolato dagli altri database ed è gestito tramite un server. Quando vengono assegnate risorse a ogni singolo database, queste appartengono solo al database specifico a cui sono state assegnate e non sono condivise con altri, indipendentemente dal livello di servizio.
Il modello di distribuzione del database singolo è una soluzione per un'applicazione cloud che richiede una singola fonte di dati ed è inoltre possibile aumentare o ridurre le risorse allocate al singolo database.
La capacità di gestire le risorse viene misurata in DTU (acronimo di Database Transaction Units) per i database singoli. I DTU rappresentano una combinazione di potenza di calcolo, memoria, e I/O (Input/Output) necessarie per eseguire operazioni su un database.
Questo modello di distribuzione si riferisce a più database con risorse condivise, gestite insieme tramite un server logico. Si può spostare un singolo database in questo pool elastico o rimuoverlo quando se ne ha bisogno.
Se non si sa quante risorse consumerà ciascun database specifico e quante se ne dovrebbero allocare in anticipo, il lavoro può diventare impegnativo. Questo modello permette ai database di attingere dinamicamente alle risorse disponibili nel pool in base alle necessità, adattandosi ai picchi di carico senza dover sovradimensionare ogni singolo database.
Quindi, quando un singolo database richiede risorse uniche e imprevedibili, il pool elastico assegna le risorse necessarie al database di destinazione.
La capacità di gestire le risorse nel caso degli elastic pool è misurata in eDTU (elastic Database Transaction Units). A differenza delle DTU, che si applicano a un singolo database e rappresentano risorse dedicate come potenza di calcolo, memoria e I/O, le eDTU rappresentano risorse aggregate condivise tra più database all'interno di un pool.
Il pool riceve un numero definito di eDTU per un prezzo fisso. Pertanto, l'utente paga per il pool elastico Azure SQL come un'unità singola, non per ciascun database separato. All'interno del pool, un singolo database può consumare più eDTU, prendendole dal numero complessivo disponibile, se il carico aumenta. Quando il carico è ridotto o assente, non vengono consumate eDTU.
Si possono aggiungere più eDTU al pool elastico. Viceversa è possibile rimuovere le eDTU extra dal pool se i database non le consumano ed è possibile farlo in qualsiasi momento, senza causare impatti negativi o tempi di inattività.
Il pool elastico specifica lo spazio di archiviazione in GB, e questo può essere condiviso tra tutti i database. Tuttavia, non è consentito superare questo limite di archiviazione. Se i propri database crescono troppo e la loro dimensione aggregata supera lo spazio di archiviazione del pool elastico, tutti i database diventano di sola lettura.
Abbiamo creato il team Infra&Security, verticale sul cloud Azure, per rispondere alle esigenze dei clienti che ci coinvolgono nelle decisioni tecniche e strategiche. Oltre a configurare e gestire il loro tenant, ci occupiamo di:
Con Dev4Side, hai un partner affidabile in grado di supportarti sull'intero ecosistema applicativo di Microsoft.
I database sono più stabili e affidabili rispetto al passato, ma esiste ancora la possibilità di perdere dati a causa di un bug nel motore del database. Un'altra preoccupazione è l'affidabilità dell'infrastruttura che si sta utilizzando per ospitare il database. Ci sono diverse soluzioni per il backup dei database SQL su Microsoft Azure a cui gli utenti possono ricorrere e i backup sono gestiti internamente dalla piattaforma cloud per i loro prodotti di database PaaS come, appunto, SQL Database.
Il servizio supporta 3 tipi di backup, simili a quelli di SQL Server, per ottenere un ripristino a un punto specifico nel tempo:
Il backup completo è una copia integrale del proprio database, che include tutto ciò che è presente nel database e nel file del log delle transazioni. Il backup differenziale cattura solo le modifiche effettuate dall'ultimo backup completo, mentre il backup del log delle transazioni cattura i record dal file del log delle transazioni. Quest'ultimo viene utilizzato anche per il ripristino a un punto specifico nel tempo. Il backup del log delle transazioni cattura i dettagli del log in formato incrementale; quindi, se si perde un backup del log precedente, non si potrà recuperare il database oltre quel punto.
I backup automatici per questi database vengono eseguiti con un backup completo settimanale, un backup differenziale ogni 12 o 24 ore e un backup del log delle transazioni ogni 5 o 10 minuti. Non è necessario configurare nulla per questo, poiché Azure lo fa automaticamente ogni volta che si distribuisce un database SQL. Dopo questo primo backup completo, i backup differenziali e del log delle transazioni inizieranno a essere eseguiti in background.
Il sistema deciderà quando eseguire ogni tipo di backup e i loro intervalli in base al carico di lavoro sul database. Questi backup possono essere utilizzati per il ripristino a un punto specifico nel tempo, per ripristinare i database in un'altra posizione o regione di Azure, o per ripristinare un database da un backup molto vecchio conservato sotto una politica di conservazione a lungo termine.
Quando si memorizzano dati in Microsoft Azure, indipendentemente dal tipo di archiviazione, essi sono archiviati da qualche parte nei data center di Microsoft e, per garantirne la disponibilità e la preservazione, Azure crea e memorizza copie dei dati in più posizioni con l’obiettivo di fornire ridondanza per proteggere le proprie informazioni da guasti hardware, interruzioni di corrente o di rete.
La ridondanza dello storage di backup è supportata anche per i backup automatici, con tre opzioni disponibili. Dal punto di vista dei costi o dei prezzi, ciascuna opzione ha un prezzo diverso, quindi i costi saranno influenzati dalle modifiche al tipo di ridondanza dello storage di backup. Le tre tipologie disponibili sono:
Il GRS è la configurazione predefinita. Crea più copie dei propri file di backup in regioni associate per garantire che il backup sia sicuro e sempre disponibile, molto utile nel caso in cui la regione primaria diventi inaccessibile o se si desidera ripristinare il proprio database in un'altra regione. Può anche essere una delle soluzioni di ripristino di emergenza più economiche per i database.
L’opzione LRS mantiene tutte le copie di backup localmente nello stesso data center, mentre lo ZRS conserva i file di backup in diverse zone di disponibilità della stessa regione. Queste due opzioni sono adatte se si desidera mantenere le copie di backup vicine al proprio sito primario.
I database SQL di Azure supportano due tipi di politiche di conservazione dei backup:
La prima è utilizzata per gestire i ripristini a un punto specifico nel tempo, mentre la seconda è utilizzata per gestire i ripristini da backup a lungo termine o più vecchi, per scopi di audit e conformità. Possiamo anche conservare questi file di backup come parte della politica di conservazione a breve termine per un periodo compreso tra 7 e 35 giorni. La conservazione predefinita dei backup è di 7 giorni, ma può variare a seconda del livello di servizio.
La politica di conservazione a lungo termine è applicabile se si desidera conservare i file di backup per un periodo più lungo e mantenere un periodo di conservazione a lungo termine. Con l’applicazione di questa policy il servizio esegue un backup settimanale e salva le copie dei backup nello storage Azure Blob per un massimo di 10 anni. Tutti i backup sono criptati, sia quando sono conservati nello storage che durante il transito, al fine di garantire la massima sicurezza.
È ormai praticamente un dato di fatto che l’enorme mole di servizi messi a disposizione da Azure possa generare confusione nella fetta di utenza che desidera avvicinarsi alla piattaforma di cloud computing di Microsoft.
Anche in questo caso gli utenti meno familiari con gli ambienti Azure potrebbero avere qualche attimo di smarrimento, quindi ci prenderemo un momento per parlare della differenza tra SQL Database e un altro servizio di Azure dedicato ai database: Managed Instance.
Azure Managed Instance e Azure SQL sono entrambe soluzioni progettate per fornire una piattaforma di database scalabile e sicura ma che presentano alcune differenze chiave. Managed Instances è, come SQL Database, un servizio PaaS, ma è progettato per offrire una compatibilità più elevata con SQL Server, la vecchia soluzione on-premise di Microsoft per la gestione dei database relazionali.
Il servizio fornisce un ambiente di database simile a quello on-premises, con il vantaggio della gestione automatica delle risorse e delle operazioni di manutenzione e la possibilità di installare applicazioni personalizzate e configurare funzionalità di sicurezza avanzate, mantenendo allo stesso tempo una maggiore compatibilità con le funzionalità avanzate di SQL Server come le query tra database e l'integrazione CLR.
SQL Database è invece progettato per le applicazioni moderne e per i carichi di lavoro che non richiedono tutte le funzionalità avanzate di SQL Server e, come abbiamo già visto, fornisce una gestione automatica delle risorse e della manutenzione, inclusi aggiornamenti, patch e backup. Tutte queste caratteristiche lo rendono ideale per nuovi progetti o per applicazioni non richiedono una configurazione avanzata o una compatibilità totale con SQL Server.
Con Azure SQL, le aziende hanno un controllo limitato sull'istanza di database, poiché il servizio è, nel bene e nel male, completamente gestito da Microsoft. Le aziende hanno quindi accesso limitato al sistema operativo sottostante e non possono installare applicazioni personalizzate o configurare funzionalità di sicurezza avanzate, a differenza di Managed Instance.
Un'altra differenza tra i due è il livello di compatibilità con i carichi di lavoro SQL Server on-premises. Managed Instance è, come dicevamo prima, progettato per essere altamente compatibile con i carichi di lavoro SQL Server on-premises, rendendolo una buona opzione per le aziende che desiderano migrare i loro carichi di lavoro SQL Server al cloud. Azure SQL, d'altra parte, presenta alcune limitazioni in termini di compatibilità con i carichi di lavoro SQL Server on-premises ed è generalmente preferito per nuovi carichi di lavoro.
Anche in termini di pricing le differenze sono sostanziali e seppur sia Azure Managed Instance che Azure SQL offrano un’ampia varietà di opzioni in base alla tipologia d’uso, il primo è generalmente più costoso del secondo, poiché offre tutta una serie di funzionalità aggiuntive e un maggiore controllo sull'istanza di database.
Quindi, quando usare uno o l’altro? La risposta, come in molti di questi casi è: dipende.
Managed Instance per via del più ampio parco di funzionalità e i costi maggiori è una soluzione maggiormente specializzata, più orientata agli ambienti delle grandi organizzazioni e che è consigliabile usare solo se si hanno specifiche necessità di controllo sui propri database relazionali o se si desidera migrare i propri database on-premise da SQL Server al Cloud. SQL Database, in virtù della sua semplicità d’uso e rapidità al costo di funzionalità più limitate, è invece una scelta migliore per nuove applicazioni o scenari con requisiti più semplici, adatta a ogni tipo di impresa.
Nel contesto di Azure SQL Database, il pricing può sembrare complesso, ma è strutturato per offrire flessibilità e adattarsi a diverse esigenze di carico di lavoro e scalabilità. Di seguito, esploreremo le principali opzioni e modelli di pricing.
Per prima cosa vediamo i modelli di acquisto, che determinano come vengono allocati e fatturati i costi per le risorse di calcolo e storage. I due modelli principali sono vCore (Virtual Core) e DTU (Database Transaction Unit), ciascuno con caratteristiche specifiche che si adattano a diverse esigenze.
I Tier di servizio determinano il livello di prestazioni, scalabilità e disponibilità del database e permettono di ottimizzare le risorse e i costi in base alle specifiche caratteristiche dei carichi di lavoro.
Queste opzioni determinano come vengono calcolati i costi per le risorse di calcolo e storage, e includono diversi modelli di acquisto e fatturazione che si adattano alle esigenze specifiche dei carichi di lavoro.
Oltre ai costi base, ci sono opzioni aggiuntive che possono influire sul prezzo finale. Le operazioni di backup e ripristino sono generalmente incluse, ma possono esserci costi aggiuntivi per backup a lungo termine o su geolocalizzazione esterna e le opzioni di alta disponibilità e resilienza, come repliche geografiche e zone di disponibilità, possono comportare spese extra. Servizi aggiuntivi come il monitoraggio avanzato e le funzionalità di sicurezza possono anch'essi avere costi aggiuntivi.
Per una valutazione completa e per scegliere le opzioni aggiuntive più adatte alle proprie esigenze vi rimandiamo alla pagina del calcolatore dei prezzi di Azure, dove è possibile ottenere informazioni più dettagliate sui prezzi e le funzionalità disponibili e fare una prima stima dei costi del servizio per la propria organizzazione.
Con il continuo investimento di Microsoft nella sua piattaforma Azure, l’offerta della soluzione di cloud computing della casa di Redmond è ormai uno dei punti di riferimento leader per tutte quelle organizzazioni che desiderano sfruttare il potenziale delle “nuvole” per le loro infrastrutture digitali.
E tra gli oltre 200 servizi messi a disposizione dalla piattaforma, Azure SQL Database si rivela non solo come una delle migliori soluzioni per database offerte da Azure ma anche come una delle migliori opzioni per la gestione di database relazionali nel cloud al momento sul mercato.
Con la sua capacità di adattarsi alle esigenze variabili delle imprese e la sua integrazione con il resto dei servizi Azure, SQL Database offre strumenti efficaci per ottimizzare la performance nell’amministrazione delle proprie banche dati e garantire la sicurezza delle informazioni contenute al loro interno, riducendo al tempo stesso i costi di gestione e mantenimento e semplificando enormemente l’utilizzo anche per tutti quegli utenti meno avvezzi alle complessità tecniche.
In sostanza, un’offerta solida che può fare la differenza nel panorama odierno, dove la corretta gestione dei propri dati ha la stessa importanza della corretta gestione dei propri capitali. Ma perché non provarlo e vedere se è la scelta adatta alle vostre esigenze?
Azure SQL Database è un servizio di database relazionale completamente gestito offerto da Microsoft Azure. Supporta SQL Server e offre funzionalità integrate come scalabilità, alta disponibilità e sicurezza.
Azure SQL Database garantisce l'alta disponibilità tramite backup automatici, geo-replica e meccanismi di failover integrati. Questo assicura che il database rimanga accessibile anche in caso di guasto hardware o di rete.
Azure SQL Database offre diversi livelli di prestazioni, tra cui Basic, Standard e Premium. Ogni livello fornisce differenti livelli di prestazioni, archiviazione e disponibilità per soddisfare le esigenze delle varie applicazioni.
Azure SQL Database offre robuste funzionalità di sicurezza, tra cui crittografia dei dati a riposo e in transito, protezione avanzata dalle minacce e valutazioni delle vulnerabilità. Supporta inoltre la conformità a vari standard di settore.
Sì, Azure SQL Database consente una scalabilità fluida sia verticale (aumento delle risorse) che orizzontale (aggiunta di più database) per gestire carichi di lavoro crescenti. Questa flessibilità assicura che il database possa crescere insieme alle esigenze dell'applicazione.
In Azure SQL Database, un database singolo è un database isolato ottimizzato per carichi di lavoro con esigenze di prestazioni stabili. Un pool elastico, invece, consente a più database di condividere risorse, rendendolo conveniente per la gestione di carichi di lavoro variabili.
Azure SQL Database esegue automaticamente backup completi, differenziali e del log delle transazioni senza intervento dell'utente. Questi backup sono archiviati in modo sicuro, e puoi ripristinare il database a qualsiasi punto entro il periodo di conservazione.
Azure SQL Database fornisce diversi strumenti di monitoraggio, tra cui Azure Monitor, SQL Analytics e Query Performance Insights. Questi strumenti ti aiutano a tracciare le prestazioni, rilevare problemi e ottimizzare le operazioni del database.
Sì, Azure SQL Database supporta la migrazione da database SQL Server on-premises utilizzando strumenti come Azure Database Migration Service e SQL Server Management Studio. Questi strumenti aiutano a garantire una transizione fluida con tempi di inattività minimi.
Azure SQL Database si integra perfettamente con altri servizi Azure come Azure Functions, Azure Logic Apps e Power BI. Questa integrazione consente lo sviluppo di soluzioni complete basate sul cloud che sfruttano più offerte di Azure.
Il team Infra & Security è verticale sulla gestione ed evoluzione dei tenant Microsoft Azure dei nostri clienti. Oltre a configurare e gestire il tenant, si occupa della creazione dei deployment applicativi tramite le pipelines di DevOps, monitora e gestisce tutti gli aspetti di sicurezza del tenant, supportando i Security Operations Centers (SOC).