Distribuire un servizio di database gestito con Istanza gestita di SQL abilitata per Azure Arc
Istanza gestita di SQL abilitata per Azure Arc è un servizio di Azure SQL alimentato dal motore di SQL Server che può essere distribuito nell'infrastruttura preferita.
Confronto con Azure SQL
Azure SQL è una famiglia di servizi di database distribuiti nell'infrastruttura di Azure:
SQL Server in una macchina virtuale di Azure
Questa opzione di distribuzione di Azure SQL consente l'esecuzione di un prodotto SQL Server con licenza completa nella versione scelta in Windows o Linux. L'utente gestisce tutti gli elementi all'interno della macchina virtuale guest, mentre Microsoft gestisce l'infrastruttura. Questa opzione è nota come infrastruttura distribuita come servizio (IaaS).
Istanza gestita di SQL di Azure
Questa opzione di distribuzione di Azure SQL fornisce un'istanza di SQL Server senza versione e preinstallato come servizio completamente gestito. L'utente ha accesso a quasi tutte le funzionalità di un'istanza del motore di SQL Server. Microsoft gestisce tutti gli aspetti della piattaforma e dell'infrastruttura necessari per ospitare l'istanza. Questa opzione è un esempio di piattaforma distribuita come servizio (PaaS).
Database SQL di Azure
Questa opzione di distribuzione di Azure SQL fornisce un database SQL Server indipendente alimentato da SQL Server senza versione e preinstallato come servizio completamente gestito. L'utente gestisce il database mentre Microsoft gestisce l'istanza di SQL, la piattaforma e l'infrastruttura sottostanti. Questa opzione è anche un esempio di piattaforma distribuita come servizio (PaaS).
Istanza gestita di SQL abilitata per Azure Arc
Istanza gestita di SQL abilitata per Azure Arc è simile a Istanza gestita di SQL di Azure. Dispone di funzionalità e capacità di gestione simili. L'intenzione di Istanza gestita di SQL abilitata per Azure Arc è fornire le stesse funzionalità di piattaforma distribuita come servizio (PaaS) e l'esperienza di Azure, mentre il cliente sceglie e gestisce l'infrastruttura usando la piattaforma Kubernetes.
Confronto delle funzionalità
Per comprendere le funzionalità di Istanza gestita di SQL abilitata per Azure Arc, è importante esaminarne le funzionalità di base, le opzioni di distribuzione e l'integrazione con Azure.
Funzionalità di base
Poiché Istanza gestita di SQL abilitata per Azure Arc si basa sul motore di SQL Server, offre funzionalità di istanza di base quasi totalmente compatibili con SQL Server e Istanza gestita di SQL di Azure. L'istanza include un'interfaccia del linguaggio T-SQL compatibile e tutte le funzionalità di sicurezza, prestazioni e disponibilità. Altre informazioni sulle funzionalità per Istanza gestita di SQL abilitata per Azure Arc sono disponibili nella documentazione Microsoft.
Come per Istanza gestita di SQL di Azure, quando si distribuisce Istanza gestita di SQL abilitata per Azure Arc, si ottiene SQL Server preinstallato e senza versione. Istanza gestita di SQL abilitata per Azure Arc usa le immagini del contenitore di Microsoft Container Registry (MCR).
Istanza gestita di SQL di Azure usa i server gateway per astrarre l'applicazione dai dettagli di connettività sottostanti. Istanza gestita di SQL abilitata per Azure Arc fornisce anche l'astrazione della connessione tramite i servizi LoadBalancer o NodePort di Kubernetes.
Livelli di servizio
Come Istanza gestita di SQL di Azure, è possibile distribuire Istanza gestita di SQL abilitata per Azure Arc con due opzioni di distribuzione denominate livelli di servizio:
Utilizzo generico: come suggerisce il nome, questo livello di servizio è destinato alla maggior parte dei carichi di lavoro. Questo livello di servizio ha un limite per le risorse, ad esempio core e memoria, ma include una disponibilità elevata di base predefinita tramite Kubernetes e l'archiviazione condivisa. Le istanze nel livello Utilizzo generico eseguono il mapping alle funzionalità supportate nell'edizione Standard di SQL Server.
Business critical: questo livello di servizio è destinato ai carichi di lavoro che richiedono prestazioni ottimali e il massimo livello di disponibilità. Questo livello di servizio non prevede limiti per la memoria o i core e usa i gruppi di disponibilità per garantire disponibilità elevata con scalabilità in lettura. Le istanze nel livello Business critical eseguono il mapping alle funzionalità supportate nell'edizione Enterprise di SQL Server.
Entrambi i livelli di servizio vengono fatturati per ogni singolo core, ma includono anche la possibilità di usare le licenze Vantaggio Azure Hybrid e un'opzione per sviluppatori senza costi. Il livello di servizio Business critical è attualmente in versione di anteprima, quindi non vengono addebitati costi per l'uso. Altre informazioni sui livelli di servizio sono disponibili nella documentazione Microsoft.
Integrazione con Azure
Quando si distribuisce un'istanza gestita di SQL di Azure, la fatturazione, l'utilizzo, le metriche e i log possono essere integrati con Azure. Inoltre, è possibile usare interfacce di Azure, ad esempio il portale, per distribuire e configurare un'istanza gestita di SQL di Azure.
L'integrazione con Azure per Istanza gestita di SQL abilitata per Azure Arc dipende dalla modalità con connessione usata.
L'integrazione con Azure viene gestita automaticamente con la modalità con connessione diretta tramite gli agenti e il controller dei dati di Azure Arc. Per la distribuzione e la configurazione è possibile usare le interfacce di Azure, ad esempio il portale di Azure.
Se si usa la modalità con connessione indiretta, è necessario inviare una quantità minima di dati ad Azure per scopi di fatturazione. Facoltativamente, è possibile esportare dati, ad esempio metriche e log. La distribuzione e la configurazione tramite il portale di Azure non sono supportate con la modalità con connessione indiretta. Tuttavia, per la distribuzione e la configurazione è possibile usare interfacce come l'interfaccia della riga di comando di Azure e kubectl.
Confronto tra le funzionalità di gestione
Poiché l'istanza SQL Managed abilitata ad Azure Arc è un servizio gestito, è utile confrontare le capacità di gestione con l'istanza SQL gestita di Azure. Le sezioni seguenti mettono a confronto il motore senza versione, l'implementazione e la configurazione, il monitoraggio, l'alta disponibilità, il ripristino di emergenza e le funzionalità di migrazione.
Senza versione
Uno dei vantaggi legati all'uso di Istanza gestita di SQL di Azure è che non è più necessario applicare patch e aggiornare SQL Server, il sistema operativo ed eventuali software della piattaforma. Il motore per Istanza gestita di SQL di Azure viene spesso definito senza versione, perché non esiste il concetto di versione principale come con SQL Server. L'istanza viene costantemente aggiornata in base alle esigenze per le patch del software o le nuove funzionalità.
Anche Istanza gestita di SQL abilitata per Azure Arc usa un motore senza versione, quindi gli aggiornamenti possono essere applicati automaticamente in base alle esigenze tramite immagini del contenitore aggiornate. La disponibilità viene mantenuta usando la potenza di Kubernetes per arrestare e avviare nuovi contenitori.
Distribuzione e configurazione
La distribuzione di Istanza gestita di SQL abilitata per Azure Arc è un processo dichiarativo semplice, molto simile a quello di Istanza gestita di SQL di Azure. Quando si distribuisce un'istanza gestita di SQL abilitata per Azure Arc, è possibile specificare: un livello di servizio, limiti di core e memoria, specifiche della classe di archiviazione e opzioni di configurazione di SQL quali SQL Server Agent, regole di confronto e flag di traccia.
In modalità con connessione diretta Istanza gestita di SQL abilitata per Azure Arc può essere distribuita con il portale di Azure. In modalità con connessione indiretta Istanza gestita di SQL abilitata per Azure Arc può essere distribuita usando l'interfaccia della riga di comando di Azure (con estensione arcdata), kubectl o Azure Data Studio.
All'esterno dell'istanza di SQL, Istanza gestita di SQL abilitata per Azure Arc può essere configurata in modalità con connessione diretta anche usando il portale di Azure. In entrambe le modalità con connessione, è possibile configurare le opzioni all'esterno dell'istanza di SQL con l’interfaccia della riga di comando di Azure o kubectl.
All'interno dell'istanza di SQL, è possibile usare interfacce di SQL Server standard, ad esempio sp_configure, ALTER SERVER CONFIGURATION e ALTER DATABASE, per configurare le opzioni di istanza e database.
Monitoraggio
Come per Istanza gestita di SQL di Azure, è possibile monitorare Istanza gestita di SQL abilitata per Azure Arc usando Monitoraggio di Azure per le metriche chiave. In locale all'interno del cluster è anche possibile usare il monitoraggio predefinito con i dashboard di Grafana per i nodi o l'istanza di SQL.
I log per Istanza gestita di SQL abilitata per Azure Arc sono disponibili per la visualizzazione nel portale di Azure tramite Log Analytics. In locale all'interno del cluster è possibile anche usare i log predefiniti con Kibana.
Poiché Istanza gestita di SQL abilitata per Azure Arc è basata su SQL Server, sono disponibili i file ERRORLOG standard per visualizzare gli errori di SQL e i dettagli dell'istanza. Istanza gestita di SQL abilitata per Azure Arc supporta anche tutte le DMV (Dynamic Management View) disponibili e gli eventi estesi.
Disponibilità elevata
Uno dei vantaggi legati all'uso di un servizio gestito come Istanza gestita di SQL abilitata per Azure Arc è la disponibilità elevata predefinita. Come Istanza gestita di SQL di Azure, il metodo usato per ottenere la disponibilità elevata dipende dal livello di servizio.
Per il livello di servizio Utilizzo generico, viene usata la disponibilità elevata predefinita di Kubernetes StatefulSets con l'archiviazione condivisa.
Per il livello di servizio Business critical, viene fornita la disponibilità elevata predefinita usando una combinazione di Kubernetes StatefulSets e repliche del gruppo di disponibilità Always On di SQL Server. Le repliche del gruppo di disponibilità vengono distribuite e configurate automaticamente per l'utente. Come per Istanza gestita di SQL di Azure, è disponibile una replica di sola lettura per l'offload dei carichi di lavoro di lettura. I database di sistema, ad esempio master e modello, fanno parte del gruppo di disponibilità. Gli oggetti a livello di sistema, ad esempio i processi di SQL Agent, saranno automaticamente disponibili dopo un evento di failover.
LoadBalancers e NodePorts di Kubernetes forniscono l'astrazione della connessione per l'applicazione in caso di spostamento dell'istanza all'interno del cluster. Viene inoltre fornito un punto di astrazione della connessione di sola lettura per i livelli di servizio Business critical.
Poiché Microsoft gestisce la piattaforma completa e l'infrastruttura di Istanza gestita di SQL di Azure, gli utenti ottengono il vantaggio di un contratto di servizio. Poiché i clienti devono gestire l'infrastruttura per le istanze gestite SQL abilitate ad Azure Arc, il cliente è proprietario e gestisce qualsiasi SLA.
Ripristino di emergenza
Come Istanza gestita di SQL di Azure, Istanza gestita di SQL abilitata per Azure Arc offre un sistema di backup automatico per i database, incluso il ripristino temporizzato. Gli utenti possono eseguire manualmente backup COPY_ONLY e ripristinarli in qualsiasi momento.
Gli utenti configurano un obiettivo del punto di ripristino (RPO) desiderato e un periodo di conservazione. Queste impostazioni determinano la frequenza con cui vengono eseguiti i backup del log delle transazioni e la durata della conservazione dei backup.
Istanza gestita di SQL di Azure offre ridondanza predefinita per i backup usando Archiviazione di Azure. Gli utenti di Istanza gestita di SQL abilitata per Azure Arc possono configurare una classe di archiviazione Kubernetes specifica da usare per i backup di SQL, ma sono responsabili di eventuali esigenze di ridondanza.
Migrazione
Poiché Istanza gestita di SQL abilitata per Azure Arc usa un motore di SQL Server, è possibile eseguire la migrazione di versioni di SQL Server esistenti usando il backup e il ripristino del database. I database possono essere ripristinati direttamente da Archiviazione di Azure o attraverso la copia di un backup locale nel contenitore per Istanza gestita di SQL.
Interfacce per Istanza gestita di SQL abilitata per Azure Arc
Le interfacce seguenti possono essere usate con Istanza gestita di SQL abilitata per Azure Arc per gestire l'istanza e creare applicazioni:
SQL Server Management Studio (SSMS)
SQL Server Management Studio (SSMS) è completamente compatibile per eseguire query e gestire un'istanza gestita di SQL abilitata per Azure Arc.
Azure Data Studio
Azure Data Studio (ADS) è uno strumento multipiattaforma che può eseguire query e gestire un'istanza gestita di SQL abilitata per Azure Arc. ADS supporta le query usando T-SQL insieme ai notebook T-SQL. È anche possibile usare l'estensione ADS Azure Arc per creare e gestire risorse di servizi dati abilitati per Azure Arc, ad esempio controller dei dati, Istanza gestita di SQL e Server PostgreSQL (anteprima).
Strumenti da riga di comando di SQL
Gli strumenti da riga di comando di SQL come sqlcmd e bcp sono supportati con Istanza gestita di SQL abilitata per Azure Arc.
Portale di Azure
Se è in uso la modalità con connessione diretta, è possibile creare, visualizzare e gestire i servizi dati abilitati per Azure Arc dal portale di Azure. Inoltre, se si caricano dati usando la modalità con connessione indiretta, è possibile visualizzare i dettagli di Istanza gestita di SQL abilitata per Azure Arc nel portale di Azure.
Interfaccia della riga di comando di Azure
È possibile usare l'estensione arcdata con l' interfaccia della riga di comando di Azure (CLI) multipiattaforma per creare, visualizzare e gestire i servizi dati abilitati per Azure Arc, ad esempio Istanza gestita di SQL. L'interfaccia della riga di comando di Azure può essere usata in modalità con connessione indiretta solo per distribuire un'istanza gestita di SQL abilitata per Azure Arc. L'interfaccia della riga di comando di Azure è l'interfaccia principale per caricare fatturazione, metriche e log quando si usa la modalità con connessione indiretta.
kubectl
È possibile usare l'interfaccia della riga di comando kubectl multipiattaforma per creare, visualizzare e gestire i servizi dati abilitati per Azure Arc, inclusa Istanza gestita di SQL. L’interfaccia della riga di comando di Azure è l'interfaccia della riga di comando preferita da usare con Istanza gestita di SQL abilitata per Azure Arc, ma è possibile usare i file yaml con kubectl per creare e gestire le risorse. Kubectl può essere usato in modalità con connessione indiretta solo per distribuire un'istanza gestita di SQL abilitata per Azure Arc. In alcuni scenari, ad esempio la modifica della configurazione predefinita del ripristino temporizzato, è richiesto l'uso di kubectl.
Driver di SQL
Perché l'applicazione si connetta ed esegua query in un'istanza gestita di SQL abilitata per Azure Arc, è possibile usare qualsiasi driver di SQL Server supportato. Il supporto dei driver è incluso per i linguaggi di programmazione più diffusi, ad esempio C#, Java, Node.js, PHP, Python e Ruby.