
Secondo capitolo: l’hosting del dato

Giunti a questo punto del viaggio, affrontiamo il tema dell’hosting. Come beanTech sfrutta la potenzialità di Azure SQL Database per archiviare in modo ottimizzato e sicuro i dati? Scopriamo insieme nel secondo capitolo.
Cos’è il SQL Database di Azure?
Il SQL-db di Azure è un database Engine PaaS (servizio di piattaforma distribuita) che esegue la maggior parte delle funzioni di gestione dei database, come upgrading, patching, backup e monitoring completamente gestito, senza intervento dell’utente.
Il db è costantemente aggiornato all’ultima versione stabile disponibile del motore di database di Microsoft SQL Server con compatibilità al 99,99% con tutti i sistemi operativi.
SQL-db consente un’ampia varietà di applicazioni cloud moderne, con cui è possibile creare un livello di archiviazione dei dati a disponibilità elevata e ad alte prestazioni per le applicazioni e le soluzioni sia relazionali che non. E’ possibile usare funzionalità avanzate di elaborazione di query come tecnologie high-performance in-memory ed intelligent query processing.
Le prestazioni offerte sono scalabili dinamicamente senza tempi di inattività, ottimizzazione intelligente built-in, scalabilità e disponibilità globali, oltre ad opzioni avanzate di sicurezza.
Le tipologie di acquisto sono di due tipi: uno basato su vCore ed uno su DTU. Il modello di acquisto basato su vCore consente di scegliere il numero di vCore, la quantità di memoria e la quantità e la velocità della risorsa di archiviazione. Il modello di acquisto basato su vCore offre inoltre la possibilità di usare Azure Hybrid benefit for SQL Server per un risparmio in termini di costi.
Il modello di acquisto basato su DTU offre una combinazione di risorse di calcolo, memoria e I/O su tre livelli di servizio per supportare carichi di lavoro di database da leggeri a pesanti. Le dimensioni di calcolo di ogni livello forniscono una diversa combinazione di queste risorse, a cui è possibile aggiungere altre risorse di archiviazione.
Poiché SQL di Azure si basa sul noto motore di SQL Server, è possibile eseguire la migrazione delle applicazioni con facilità e continuare a usare gli strumenti, i linguaggi e le risorse con cui si ha familiarità. Poiché le competenze e l’esperienza acquisite sono applicabili anche al cloud, è possibile ottenere risultati ancora più efficaci con le risorse già disponibili.
Deployment Models
Azure SQL-db rende disponibili 2 opzioni distinte di deployment del database:
- Il single database, simile ad un database indipendente nel database engine di SQL Server on prem. Esso rappresenta un database completamente gestito ed isolato per mettere a disposizione un unica data source affidabile per applicazioni cloud. La scalabilità dinamica consente al database di rispettare i requisiti in continua evoluzione relativi alle risorse e di pagare solo le risorse necessarie quando necessario.
- L’elastic pool, inteso come raccolta di database singoli con risorse condivise, rappresenta la miglior soluzione per la gestione e il ridimensionamento di più database con esigenze di utilizzo variabili e imprevedibili. Questi database si trovano in un unico server e condividono un numero impostato di risorse ad un prezzo fisso, ideale per consentire a sviluppatori SaaS di ottimizzare i costi, garantendo prestazioni elastiche per ogni database: Lo sviluppatore aggiunge semplicemente i database al pool, imposta facoltativamente le risorse minime e massime per i database (DTU minimo e massimo o Vcore minimo o massimo a seconda del modello di Resourcing scelto), quindi imposta le risorse del pool in base al relativo budget.
Quando scegliere un elastic pool
Gli elastic pool sono adatti per un numero elevato di database con modelli di utilizzo specifici. Per un determinato database, questo modello è caratterizzato da un utilizzo medio ridotto con picchi di utilizzo relativamente poco frequenti. Viceversa, più database con utilizzo persistente medio-elevato non devono essere inseriti nello stesso pool.
Monitoring and alerting capabilities
Per quanto riguarda le funzionalità di monitoraggio e troubleshooting vengono predisposti due strumenti:
- Funzionalità predefinite di monitoring: consentono di trovare informazioni dettagliate sulle prestazioni in tempo reale e funzionalità per soluzioni PaaS fornite da Azure, di monitorare e risolvere i problemi di un numero elevato di istanze di database.
- Query Store: registra le prestazioni delle query in tempo reale e consente di identificare i potenziali problemi di prestazioni e i principali consumer di risorse. L’ottimizzazione automatica e le raccomandazioni forniscono consigli riguardo alle query con prestazioni ridotte e agli indici mancanti o duplicati.
Con l’ottimizzazione automatica disponibile in Database SQL, è possibile applicare manualmente gli script che possono risolvere i problemi o consentire a Database SQL di applicare la correzione automaticamente.
Availability capabilities
A differenza di un ambiente SQL Server locale tradizionale, Azure SQL-db assicura la continuità operativa delle organizzazioni durante le interruzioni del servizio, attraverso funzionalità predefinite:
- Automatic backups: Il database SQL esegue automaticamente backup completi, differenziali e dei log delle transazioni dei database per consentirne il ripristino temporizzato. Per i database singoli e quelli in pool, è possibile configurare Database SQL per l’archiviazione di backup completi in Archiviazione di Azure per la conservazione a lungo termine.
- Point-in-time restores: Tutte le opzioni di distribuzione del database SQL supportano il ripristino di uno stato riferito a qualsiasi momento entro il periodo di conservazione automatico del backup per qualsiasi database.
- Active geo-replication: Le opzioni di database singolo e in pool consentono di configurare fino a quattro database secondari leggibili nello stesso data center o nei data center di Azure distribuiti a livello globale.
- Auto-failover groups: Tutte le opzioni di distribuzione di Database SQL consentono di usare gruppi di failover per la disponibilità elevata e il bilanciamento del carico su scala globale. Le funzionalità includono la replica geografica trasparente e il failover di grandi set di database, pool elastici e istanze gestite. I gruppi di failover consentono la creazione di applicazioni SaaS distribuite a livello globale, con un sovraccarico amministrativo minimo.
- Zone-redundant database: Il database SQL consente di effettuare il provisioning di database o pool elastici Premium o business critical in più zone di disponibilità. Poiché questi database e pool elastici hanno più repliche ridondanti per la disponibilità elevata, l’inserimento di tali repliche in più zone di disponibilità assicura una maggiore resilienza, oltre alla possibilità di eseguire il ripristino automatico dagli errori di scalabilità del data center, senza perdita di dati.
Il viaggio continua, a breve uscirà il prossimo capitolo. Nell’attesa, iscriviti all’evento finale del 3 dicembre 2020 qui dove ti mostreremo live di cosa siamo capaci!