SQL Server su Azure

SQL Server è un RDBMS - Database Management System relazionale sviluppato da Microsoft. Si tratta di una delle piattaforme dati più diffuse al mondo e viene utilizzato per gestire database dalle dimensioni e strutture più disparate.


Non ci stancheremo mai di ripeterlo: i dati sono importanti e valorizzarli è fondamentale per qualsiasi azienda. Ecco quindi una panoramica su tutto quello che c'è da sapere sui dati aziendali e la loro elaborazione con il DBMS SQL Server di Microsoft. Se invece vuoi rimanere aggiornato con le ultime novità sul mondo dei dati, iscriviti al nostro blog.

Il cloud

Sempre più spesso si parla di cloud e le aziende si stanno attivamente interessando per capire le possibilità e i vantaggi che 
l’utilizzo di servizi su cloud possono offrire al loro business.

Tuttavia molto spesso le stesse aziende sono frenate in quanto si tratta di una tecnologia nuova e di cui si ha poca conoscenza: non si
conoscono bene i vari modelli di servizio che vengono messi a disposizione, i costi che si devono affrontare e le eventuali difficoltà nel processo di migrazione di applicazioni critiche per il business verso questa nuova realtà.

Azure di Microsoft

Microsoft ha iniziato ad investire su servizi cloud dal 2008, con il lancio di Windows Azure.

Uno dei cinque componenti chiave del lancio della piattaforma dei servizi di Azure è stato Microsoft SQL Services. Fin dall'inizio, 
infatti, SQL ha rappresentato una parte importante di Azure.

SQL di Azure è stato creato per offrire una versione ospitata nel cloud di SQL Server. In seguito, Windows Azure è stato rinominato Microsoft Azure, SQL di Azure è stato rinominato Azure SQL ed entrambi i servizi sono stati notevolmente espansi.

Azure SQL rappresenta quindi una famiglia di prodotti gestiti, sicuri e intelligenti che utilizzano il database engine di SQL Server nel cloud di Azure. Proprio perché Azure SQL si basa sul motore di SQL Server, può essere molto interessante capire quali servizi vengono offerti al fine di effettuare una progressiva migrazione di una parte o di tutte le applicazioni su cloud, valutando attentamente le necessità di business e i costi da sostenere.

SQL Server on premises

Si tratta della soluzione classica, che veniva utilizzata prima dell'avvento del cloud. Un po' per abitudine, un po' perché le caratteristiche tecniche sono più note, è ancora largamente diffusa nelle aziende.


L’azienda acquista il suo hardware e ospita il server fisico nella propria sede. Si fa interamente carico delle spese di acquisto, manutenzione e dei problemi derivanti dai malfunzionamenti.

Il server ospita gli applicativi e i dati e gli utilizzatori accedono agli applicativi collegandosi al server dalla rete aziendale.


I modelli di servizio su cloud

Ecco uno schema che illustra i modelli di servizio disponibili su cloud.

IaaS - Infrastructure as a Service

Un modello nel quale il provider cloud mette a disposizione risorse hardware virtualizzate (virtual machine), affinché l’utilizzatore 
possa creare e gestire, secondo le proprie esigenze, una propria infrastruttura su cloud, senza preoccuparsi di dove siano allocate le risorse fisiche.

Sarà a carico dell’utente l’installazione del SO e di eventuale software necessario.


PaaS - Platform as a Service

Questo è un modello nel quale vengono forniti l’infrastruttura e i componenti di middleware, grazie al quale un utente, di solito uno sviluppatore, può effettuare il deployment di applicazioni e servizi che intende fornire.

In questo caso, l’utilizzatore può sviluppare ed eseguire le proprie applicazioni attraverso gli strumenti forniti dal provider cloud, il quale garantisce il corretto funzionamento dell’infrastruttura sottostante.


SaaS - Software as a Service

questo modello racchiude applicativi e sistemi software, accessibili da un qualsiasi tipo di dispositivo (computer, smartphone, tablet, ecc.), attraverso il semplice utilizzo di un’interfaccia client.

In questo modo, l’utilizzatore non deve preoccuparsi di gestire le risorse e l’infrastruttura, in quanto controllati completamente dal 
provider cloud che li fornisce.


Opzioni di distribuzione in Azure SQL

Nell'ambito della piattaforma Azure SQL esistono numerose opzioni di distribuzione e scelte da effettuare per soddisfare le proprie esigenze aziendali.

Queste opzioni offrono la flessibilità necessaria per poter effettuare una migrazione quanto più personalizzata possibile, con la possibilità di pagare esattamente ciò di cui si ha bisogno.

SQL Server in Azure Virtual Machine

Si tratta di una soluzione IaaS. Rappresenta la soluzione più simile alla versione on premises, con il vantaggio che l’utente non deve preoccuparsi dello strato hardware, completamente gestito dal provider di servizi.

Microsoft fornisce inoltre la possibilità di installare delle immagini già pre-configurate e ottimizzate per diversi sistemi operativi e per diverse versioni di SQL Server.

Il vantaggio principale è che l'utente mantiene il pieno controllo del sistema operativo e del dimensionamento delle risorse.

Si tratta dell’unica soluzione che permette la completa disponibilità di alcune funzioni tipiche di SQL Server on premises:
  • Funzionalità che richiedono l’accesso al File System (Filestream, Semantic Search, Database Snapshot).
  • Replication, Linked Server, Extended/OLE Store Procedure, Policy Based Management.
  • Disponibilità di altri component tipici di SQL Server: SSIS, SSAS, SSRS, SQL Server Agent.

D'altra parte spetta all’utente l’onere di dover gestire tutte quelle attività tipiche della gestione di una istanza SQL Server: updates, backup dei dati, HA/DR, dimensionamento delle risorse, eccetera.  L'utente è responsabile inoltre dell'aggiornamento e dell'applicazione di patch al sistema operativo.

A livello di costi Microsoft propone, per questa soluzione, il modello pay-as-you-go (a consumo): l’utente paga il servizio in base ai secondi di utilizzo del servizio stesso.

Il costo al secondo associato all’esecuzione della Azure Virtual Machine comprende anche il costo della licenza SQL Server. Per incentivare l’utilizzo di servizi in cloud, Microsoft propone anche il piano Azure Hybrid Benefit. Tale piano consente di utilizzare 
la propria licenza SQL Server on premises su una Azure SQL Server Virtual Machine. 

L’utente non riceve addebiti per l’uso della licenza SQL Server in quanto già acquistata ma si assume solo il costo della risorsa cloud
sottostante (VM e SO, operazioni di I/O).

Tale piano vantaggioso può essere utilizzato solo a partire da licenze dotate di Software Assurance. Inoltre, se si dispone di Software
Assurance, è possibile implementare piani di HA/DR con SQL Server senza sostenere i costi di licenza aggiuntivi per una istanza di ripristino passiva.

In conclusione, SQL Server in Azure Virtual Machine rappresenta la soluzione più semplice a livello di compatibilità per la migrazione (Lift & Shift) di applicazioni esistenti in una realtà aziendale, soprattutto per quanto riguarda applicazioni legacy che, molto spesso e per ovvi motivi, rappresentano uno scoglio per il passaggio a soluzioni in cloud.

Azure SQL Database

Azure SQL Database è un'opzione di distribuzione PaaS di Azure SQL che astrae sia il sistema operativo che l'istanza di SQL Server. Di conseguenza l’onere di gestire l’hardware, il sistema operativo e l’istanza di SQL Server è tutta in carico al provider di servizi, in questo caso Microsoft.

Questa opzione di distribuzione consente di ottenere velocemente un database e di iniziare subito a sviluppare applicazioni. Azure SQL Database è anche l'unica opzione di distribuzione che supporta scenari che richiedono uno spazio di archiviazione database senza limiti (100TB+ Hyperscale) e la scalabilità automatica per i carichi di lavoro imprevedibili (Serverless).

Azure SQL Database ha il contratto di servizio con l’alta disponibilità più elevata del settore. Fornisce altre funzionalità intelligenti di 
monitoraggio e prestazioni, in parte perché è Microsoft a gestire le istanze.

Esistono diversi modelli di servizio per Azure SQL Database:
  • Dimensionamento per DTU (Database Transaction Unit): Basic, Standard, Premium.
  • Dimensionamento per vCore (Virtual Core): General Purpose, Business Critical.


Azure SQL Database offre essenzialmente due modalità di deployment:
  • Database Singolo: molto simile ad un database indipendente di SQL Server con uno specifico set di risorse. 
  • Pool Elastico: una raccolta di database con un set condiviso di risorse. Queste risorse condivise tra più database possono essere DTU-Based o vCore-Based e permettono una scalabilità a caldo dei database entro dei range predefiniti.

Azure SQL Database Managed Instance

Azure SQL Database Managed Instance rappresenta l’ultima soluzione, in ordine di tempo, proposta da Microsoft e rientra sempre nella categoria di settore PaaS (Platform-as-a-Service).

Tale soluzione mette a disposizione un’intera istanza di SQL Server a disposizione per l’utente, con la possibilità di creare e gestire una moltitudine di database.

Azure SQL Database Managed Instance mantiene tutti gli aspetti positivi di una soluzione PaaS:
  • E’ completamente gestita
  • Scalabilità up/down semplice e veloce
  • HA/DR inclusi

Ha il grosso vantaggio di avere una compatibilità quasi del 100% con una soluzione on premises: offre componenti quali SQL Server Agent, Backup/Restore, Replication, CDC, CLR, Service Broker, Posta elettronica database (che di solito non sono presenti nei servizi PaaS). 

Pur essendo un servizio PaaS, tale soluzione è posizionata all’interno della propria rete virtuale, per dare un maggior controllo dal 
punto di vista della sicurezza.

Azure SQL Database Managed Instance rappresenta un punto di svolta importante che apre definitivamente le porte del mondo PaaS ai processi di Lift&Shift (migrazione semplice e indolore di applicazioni On Premise su cloud).ù

Modelli di pricing su Azure SQL

Modello basato su DTU (Database Transaction Unit)

E’ un metodo di misurazione delle risorse computazionali richieste dal database. Le DTU si basano su una misura combinata di CPU, memoria, letture e scritture, bilanciati per carichi di lavoro comuni. Questo modello è disponibile solo per SQL Azure Database.


Modello basato su vCore (Virtual Core)

Si tratta di un metodo di misurazione delle risorse computazionali che riprende il concetto dei cores delle licenze on premises. Questo modello di pricing permette molta più flessibilità rispetto al modello DTU-Based.

Quando si valuta il modello vCore-Based vanno considerati due concetti fondamentali:
  1. Livello computazionale «Provisioned»: Azure SQL assegna al database delle risorse computazionali prestabilite per un prezzo orario fisso.
  2. Livello computazionale «Serverless»: il database viene considerato come un componente serverless con funzionalità di auto-scaling (capacità di scalare in base all’effettiva necessità delle risorse) e un costo di utilizzo al secondo.
 
E’ disponibile sia per Azure SQL Database sia per Azure SQL Database Managed Instance.

Servizi e componenti di SQL Server 

Vediamo quali sono i principali componenti di SQL Server:

  • SQL Server, il servizio che gestisce le varie istanze di Microsoft SQL Server.
  • SQL Server Agent, ricopre il ruolo di Task Scheduler.
  • SQL Server Browser, gestisce le richieste e connette le istanze coinvolte.
  • SQL Server Full-Text Search, per eseguire query di testo.
  • SQL Server VSS Writer, per il backup e il restore dei dati.

In SQL Server è disponibile inoltre un'ampia serie di componenti e servizi aggiuntivi. Si tratta di una serie di funzioni accessorie non fondamentali per il funzionamento del database ma che possiedono un alto valore aggiunto per esigenze specifiche. Tra questi troviamo gli Analysis Services (SASS), gli Integration Services (SSIS) e i Reporting Services (SSRS), tutti ampiamente utilizzati in ambito Business Intelligence.


Esistono anche funzioni particolari per esigenze specifiche, come ad esempio i linked server per far comunicare un'istanza SQL Server con un'altra istanza, anche diversa, ad esempio Oracle. Si trovano inoltre integrati strumenti per realizzare un piano di backup, che dovrebbe essere sempre previsto per qualsiasi sistema informatico.


Un altro scenario è quello di SQL Server utilizzato in cloud, con la gamma differenziata di servizi di Microsoft Azure SQL.


Azure Hybrid Benefit

Un importante vantaggio nell’utilizzo del modello di pricing basato su vCore è dato anche dal fatto che, se applicato, è 
consentito l’utilizzo della propria licenza SQL Server on premises dotata di Software Assurance su servizi SQL Azure Database o SQL 
Azure Managed Instance.


Si tratta del programma Azure Hybrid Benefit che permette di ottenere risparmi fino al 55% sul costo dei vCore utilizzando licenze esistenti:
  • Consente di ottenere 180 giorni di diritto di utilizzo doppio della licenza, sia in locale che su Azure, per favorire processi di migrazione.
  • Consente di applicare a SQL Serve lo scambio da 1 a 4 vCore: per ogni core di SQL Server Enterprise Edition si ottiene 4 vCore di Azure SQL Managed Instance oppure 4 vCore del livello di servizio Business Critical di Azure SQL Database oppure 4 vCore di SQL Server Standard Edition su Azure SQL Virtual Machine.

Gestire i database SQL in Azure

A seconda del tipo di servizio scelto su Azure, sarà necessario effettuare diverse operazioni sui nostri database. Un esempio è rinominare un database SQL Server, un'operazione che può essere effettuata tramite SQL Server Management Studio o altri tool analoghi per la gestione delle infrastrutture database.