Azure Storage: come conservare i dati “nelle nuvole”

Con l’aumento esponenziale dei dati generati all’interno delle aziende e l’adozione sempre più massiccia di soluzioni cloud per la loro conservazione e successivo utilizzo è importante avere un’idea chiara di quale sia, per il proprio business, il modo migliore di spostare i dati “nelle nuvole”. Microsoft Azure, la piattaforma di cloud computing della casa di Redmond, tra i leader del settore, mette a disposizione una grande quantità di opzioni per lo storage dei propri dati all’interno del cloud e in questo articolo daremo una panoramica generale di tutte le tipologie disponibili, di come funzionano, del loro costo e come cominciare a ottimizzarlo con le migliori pratiche, per sfruttare al massimo l’offerta di Azure Storage.

Cosa troverai in questo articolo

  • Azure Storage: una breve introduzione
  • Azure Storage: tipologie di archiviazione e cosa fanno
  • Azure Storage Pricing: tipi di account, costi e ottimizzazione
  • Azure Storage: replicazione e accesso ai dati
Azure Storage: come conservare i dati “nelle nuvole”

Azure Storage: una breve introduzione

Le imprese moderne sono ormai pienamente incentrate sull’utilizzo del cloud per le loro operazioni e questo include non solo l'adozione del cloud computing tramite la migrazione delle applicazioni, ma anche una transizione dallo storage su disco allo storage nel cloud.

Con l'aumento dei dati generati da big data, analytics e Internet of Things (IoT), le aziende hanno bisogno di soluzioni efficaci per archiviare e gestire grandi quantità di informazioni che un tempo avrebbero richiesto investimenti di tempo, lavoro e denaro significativi per creare infrastrutture on-premise specifiche per la loro conservazione e utilizzo.

La competizione tra i fornitori di servizi cloud per conquistare clienti sta portando a un grado di innovazione senza precedenti e i servizi stanno diventando più facili da usare, più robusti, scalabili e disponibili, nonché più economici giorno dopo giorno.

In questo scenario, Microsoft non è certo rimasta a guardare con le braccia conserte, ma ha investito sul suo Azure Storage, che è diventato così uno dei leader del settore. Questo servizio cloud della piattaforma Azure offre soluzioni di archiviazione dalla capacità praticamente illimitata unite alla qualità e affidabilità degli ecosistemi digitali della casa di Redmond.

Altamente scalabile, robusta ed economica, l’offerta di Microsoft per lo storage dei propri dati supporta una varietà di client, come .NET, Ruby e Java per REST, e l'accesso da più sistemi operativi Windows e Linux, nonché la possibilità di sfruttarne le funzionalità anche su dispositivi mobili come tablet e smartphone.

Ma come funziona esattamente? Che opzioni mette a disposizione? Scopriamolo insieme nelle prossime sezioni.

Sai che aiutiamo i nostri clienti nella gestione dei loro tenant Azure?

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:

  • ottimizzare i costi delle risorse
  • implementare procedure di scaling e high availability
  • creare deployment applicativi tramite le pipeline di DevOps
  • monitoring
  • e soprattutto security!

Con Dev4Side, hai un partner affidabile in grado di supportarti sull'intero ecosistema applicativo di Microsoft.

Azure Storage: tipologie di archiviazione e cosa fanno

Uno dei passaggi più importanti nella scelta del tipo di archiviazione di Microsoft Azure è definire cosa si desidera archiviare, come farlo e quali opzioni e funzionalità sono necessarie per raggiungere questo obiettivo.

Ci sono cinque tipi di archiviazione disponibili in Microsoft Azure, divisi in due gruppi.

Il primo gruppo comprende le tipologie di archiviazione accessibili tramite API REST e sono destinati a risolvere problemi di scalabilità e comunicazione tra il tipo di archiviazione utilizzato e le applicazioni che accedono ai file. Sono rispettivamente:

  • Queue Storage
  • Table Storage
  • Blob Storage

L'altro gruppo serve invece per estendere le capacità dell'ambiente di macchine virtuali Microsoft Azure e per l'accesso esclusivo dalle VM e comprende:

  • Azure Files (Sebbene il nome possa suggerire che si tratti di uno storage per file non strutturati, in realtà non è così. "File Storage" è un servizio di Azure utilizzato per creare condivisioni di file che funzionano come un file server nel cloud)
  • Disk Storage

Per capire meglio come funzionano vediamoli adesso uno per uno un po’ più nel dettaglio e cerchiamo di comprendere quali sono le loro caratteristiche principali.

Queue Storage

Il Queue Storage è progettato per connettere i componenti della tua applicazione. Permette di costruire applicazioni flessibili con componenti indipendenti che si basano sulla messaggistica asincrona in coda. Si tratta di un servizio comodo per utenti più avanzati ma cercheremo di dare un’infarinatura generale di come funziona.

Supponiamo di avere un'applicazione on-premise che interagisce con un server da qualche parte nel cloud. Questo server potrebbe essere offline, il che significa che non gli si può più inviare messaggi e se ci provassimo, normalmente risulterebbe in un errore.

Tuttavia, tutto questo può essere evitato semplicemente utilizzando un mediatore che raccoglie i messaggi mentre uno dei partner di comunicazione è offline. Con Azure Queues, hai un terzo elemento che collega i due componenti e funge sia da buffer che da mediatore.

L'Azure Queue Storage è essenzialmente un servizio per memorizzare un gran numero di messaggi che possono essere accessibili da qualsiasi luogo tramite richieste HTTP o HTTPS autenticate. Una singola coda può contenere messaggi fino a 64 KB.

Azure supporta due tipi di meccanismi di coda:

  1. Storage queues. Essendo parte dell'infrastruttura di archiviazione di Azure, offrono un'interfaccia semplice basata su REST per le operazioni di GET/PUT/PEEK con messaggistica affidabile e persistente all'interno e tra i servizi.
  2. Service Bus queues. Fanno parte di un'infrastruttura di messaggistica Azure più ampia che supporta sia il queuing che modelli di integrazione più avanzati.

Azure Tables (Table Storage)

Azure Table Storage è utilizzato per memorizzare grandi quantità di dati strutturati in tabelle, come dati NoSQL strutturati. NoSQL è un tipo di database non relazionale che funziona come un archivio chiave/valore (a differenza di Microsoft SQL Server e Azure SQL, che sono database relazionali). Le tabelle di Azure hanno un design senza schema e possono essere utilizzate per memorizzare dati utente per applicazioni web e altri metadati.

Questa tipologia di archiviazione è altamente scalabile e accessibile a un prezzo basso e rappresenta un'alternativa meno costosa rispetto a Microsoft Azure SQL, se si è confortevoli con le limitazioni associate e non si hanno requisiti per la struttura e l'architettura SQL. Tuttavia, si noti che il costo aumenta all’aumentare del numero di accessi ai file.

Questo database è gestito da Microsoft e gli amministratori non si dovranno preoccupare dell'infrastruttura sottostante nel cloud. Quindi non è necessario distribuire o installare nulla, ma è sufficiente una prima configurazione per poter cominciare subito a usarlo.

Microsoft Azure Blob Storage

Blob è l’acronimo di Binary Large Object ed è un tipo di archiviazione dati per dati non strutturati (file) come immagini, audio, video, backup, ecc. È utilizzato per memorizzare file particolarmente grandi e anche per i data lake con carichi di lavoro elevati.

Blob Storage è uno dei tipi di archiviazione Azure più ampiamente utilizzati e i dati al suo interno sono organizzati in contenitori simili a una struttura a cartelle.

Ci sono tre tipi di Blob Storage: Block blob, Append Blob e Page Blob. Vediamoli più nel dettaglio:

  • Block Blob: Ideale per l'archiviazione di file, con una capacità di 4,77 TB per file. Quando si archivia un file come block blob, questo arriva nello storage in piccole parti chiamate blocchi. Solo dopo aver completato il caricamento, il file/blob viene unito in un unico pezzo. Con questa architettura, il file non può essere modificato senza un nuovo caricamento completo. Questo è il modo più semplice ed economico per archiviare file in Azure. È possibile accedere ai file, ma non è possibile modificarli all'interno del repository senza riscriverli completamente.
  • Append Blobs: Ideale per archiviare log o metadati, può essere aggiornato costantemente. Come abbiamo già detto, non è possibile modificare un Block Blob senza ricaricarlo. Tuttavia, ci sono momenti in cui è necessario eseguire molte operazioni di input/output, come nei database. Gli Append Blobs sono stati creati proprio per questo scopo: sono strutturati in modo che l'utente possa aggiungere un nuovo blocco alla fine del blob.
  • Page Blobs: Progettati per l'archiviazione dei dischi, i Page Blobs sono alla base dell'ambiente delle macchine virtuali Microsoft Azure. Sono stati specificamente progettati con le limitazioni dei dischi in mente: ogni Page Blob deve essere un multiplo di 512 byte. L'architettura dei Page Blobs consente di scrivere dati in ciascuna parte di un blob. Lo scopo dei Page Blobs è semplice: quando una VM o una macchina locale opera con lo storage locale (HDD o SSD con le partizioni del disco all'interno), opera su varie parti del dispositivo, senza una struttura lineare. In realtà, se si esegue qualsiasi tipo di disco su una VM in Microsoft Azure, si utilizzano i Page Blobs.

Tuttavia, questo non è tutto per i blob. Oltre ai tre tipi sopraelencati, ci sono anche da tenere in considerazione i livelli di accesso.

Ci sono tre livelli di accesso per Microsoft Azure Blob Storage e ognuno offre caratteristiche tra cui scegliere in base al ciclo di vita dei dati archiviati nel cloud di Azure. Quando si selezionano i livelli di archiviazione di Azure Blob Storage, è importante definire innanzitutto con quale frequenza si accederà ai dati e per quanto tempo devono essere conservati, dato che la scelta del livello corretto permette di ottimizzare enormemente i costi di archiviazione:

  • Il livello denominato “Hot” è per i dati di cui hai bisogno frequentemente. È costoso per l’archiviazione ma economico per l’accesso.
  • Il livello “Cool” è per i dati di cui si ha bisogno meno frequentemente. È meno costoso archiviare file rispetto al livello Hot, ma è un po’ più costoso accedervi.
  • Il livello “Cold” (o Archive) è per gli archivi. È estremamente economico archiviare file lì, ma molto costoso accedervi e l’accesso può essere molto lento a causa della bassa priorità di questo livello.

Azure Files

Sebbene il nome possa suggerire che si tratti di uno storage per file non strutturati, in realtà non è così. "File Storage" è un servizio di Azure utilizzato per creare condivisioni di file che funzionano come un file server nel cloud.

Quindi, anche se il nome può far pensare a uno storage per file non organizzati o casuali, il servizio è progettato per essere una soluzione strutturata per condividere e accedere ai file tramite la creazione di una cartella condivisa.

In questa cartella condivisa si possono salvare i propri file proprio come lo si potrebbe fare su un disco rigido del computer ed è possibile aprirli e utilizzarli da macchine virtuali che si trovano nel cloud di Azure oppure da computer locali che hanno il permesso di accedere a questa cartella.

Azure Files funziona quindi come un server di file nel cloud che permette di avere i propri documenti accessibili da più posti. Supporta due protocolli, SMB (Server Message Block) e NFS (Network File System), che sono metodi standard per condividere file su reti, rendendo facile per diverse piattaforme e sistemi operativi accedere e condividere i file archiviati in Azure.

Azure Disk Storage

Azure Disk Storage è un servizio di archiviazione di livello blocco persistente, progettato per fornire spazio di archiviazione persistente e ad alte prestazioni per le macchine virtuali e le applicazioni in esecuzione su Azure. È utile quando si ha bisogno di memorizzare dati che devono essere accessibili rapidamente e in modo affidabile, come i dischi del sistema operativo o i dati delle applicazioni critiche per il proprio business.

Questi dischi possono essere configurati come SSD (unità a stato solido) Premium per prestazioni elevate o come HDD (unità a disco rigido) Standard per utilizzi generici, inclusi backup e archiviazione di dati.

Ci sono due tipi principali di dischi in Azure Disk Storage:

  1. Managed Disks (Dischi gestiti): Questi dischi sono completamente gestiti da Microsoft. Quando crei una VM in Azure, puoi collegare dischi gestiti direttamente alla VM senza dover creare manualmente un account di archiviazione. Questi dischi sono ideali se si desidera che Microsoft gestisca l'infrastruttura sottostante.
  2. Unmanaged Disks (Dischi non gestiti): Questi dischi richiedono la gestione manuale dell'infrastruttura di archiviazione sottostante come parte di un account di archiviazione. È quindi necessario creare manualmente un account di archiviazione e gestire i dischi come page blob.

Azure Storage: replicazione e accesso ai dati

Ora che abbiamo finito di scegliere il tipo di archiviazione che si adatta alle nostre esigenze rimane un’ultima preoccupazione: nel mondo IT la sicurezza dei dati è tra le cose più essenziali e fondamentali.

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 Storage 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.

Per impostazione predefinita, Azure Storage replica i dati tre volte all'interno di una regione primaria. Inoltre, Azure offre le seguenti opzioni che è possibile configurare per la replica all'interno della regione primaria selezionata:

  • Archiviazione localmente ridondante (LRS): replica sincronicamente i dati su tre dischi all'interno di un data center nella regione primaria. Offre un livello moderato di disponibilità a un costo inferiore.
  • Archiviazione con ridondanza di zona (ZRS): replica sincronicamente i dati tra tre zone di disponibilità Azure nella regione primaria. Fornisce un livello superiore di resilienza a un costo maggiore.

Ma supponiamo l’avverarsi di uno scenario catastrofico che possa buttare giù l’intera regione primaria (improbabile ma pur sempre un’eventualità). Se si desidera coprire ogni possibilità sono disponibili altri due tipi di replica in Azure Storage:

  • Archiviazione geo-ridondante (GRS): memorizza altre tre copie dei dati in una regione Azure associata. I propri dati vengono quindi memorizzati in totale sei volte, con tre copie al sicuro in un’altra regione a centinaia di chilometri di distanza in caso di scenari catastrofici. Le copie nell’altra regione diventeranno disponibili per la lettura nel caso in cui quelle conservate nella regione primaria diventino inaccessibili.
  • Archiviazione geo-ridondante con accesso in lettura (RA-GRS): uguale a GRS, ma consente di leggere i dati da entrambe le regioni Azure.

Azure Storage Pricing: tipi di account, costi e ottimizzazione

Azure Storage utilizza un modello di servizio a pagamento in base al consumo che si adatta alla propria azienda, sia che si stiano memorizzando solo poche centinaia di GB o trilioni di oggetti.

Il servizio mette a disposizione diversi tipi di account di archiviazione, ognuno con la propria lista di funzionalità e modelli di prezzo. È importante comprendere le differenze tra questi account prima di iniziare a utilizzare Azure Storage per le proprie applicazioni e fare la scelta più adatta per le esigenze della propria compagnia. Le opzioni principali sono:

  • Account di tipo generico v2: Un tipo di account di archiviazione di base che supporta blob, file, code e tabelle. Questo tipo di account è sufficiente per la maggior parte dei casi d'uso.
  • Account BlockBlobStorage: Un account ad alte prestazioni premium focalizzato sull’ottimizzazione dei block blob e degli append blob. Questo tipo di account è consigliato per scenari ad alta frequenza di transazioni, oggetti più piccoli e altri scenari che richiedono una latenza costantemente bassa.
  • Account FileStorage: Un account di archiviazione che supporta solo Azure Files, ma con prestazioni migliorate per applicazioni enterprise su larga scala.

Lo spazio di archiviazione di Azure viene tariffato in base alla capacità, al numero di transazioni di archiviazione e alla quantità di dati trasferiti. Le tariffe di Azure Storage sono composte dai seguenti tre elementi chiave:

  1. Larghezza di banda: La velocità di trasferimento dei dati nell'area dell'account di archiviazione. I servizi gestiti possono essere posizionati nella stessa località, fornendo larghezza di banda gratuita tra i servizi di calcolo e i servizi di archiviazione. Si paga solo per l'uso della larghezza di banda di accesso quando si accede al servizio di archiviazione al di fuori della sua posizione.
  2. Transazioni: Il numero di richieste eseguite sul tuo account di archiviazione. Le richieste REST sono generate per ogni servizio di archiviazione (blob, tabella e coda) e sono considerate fatturabili.
  3. Capacità totale: La somma dei dati nell'archiviazione persistente. Azure calcola la capacità totale dei blob archiviati, delle entità, dei messaggi, delle app e dei metadati per determinare la capacità totale.

Altri fattori che potrebbero influire sui costi del servizio sono la regione geografica dell’account, il pattern di utilizzo dati specificato (GPv2, Blob, etc.), il numero di copie e il tipo di replicazione scelta e la quantità totale di dati uscenti trasferiti.

Per tutte quelle aziende che vogliono sfruttare l’offerta dei servizi di storage di Azure è importante quindi seguire alcune linee guida e implementare le migliori strategie di utilizzo al fine di massimizzare il rapporto costi/efficienza. Qui sotto vi proponiamo una piccola lista di 6 tip per cominciare a capire come fare:

  1. Comprendere le proprie esigenze di archiviazione su Azure: scegliere la giusta tipologia di account, le giuste opzioni per la redundancy e valutare cosa si vuole fare con i propri dati. Desideriamo solo conservarli o vogliamo potervi accedere e modificarli e aggiungere elementi su base regolare? Tutte queste domande ci permettono di comprendere quale sia la soluzione migliore per le nostre esigenze.
  2. Ottimizza la dimensione dell’archivio e del calcolo per minimizzare gli sprechi: Avere capacità di archiviazione e calcolo pressoché illimitate è comodo, ma questo non deve essere un invito alla pigrizia o alla noncuranza, quindi prendiamoci del tempo per identificare con precisione le risorse di archiviazione e di calcolo necessarie per supportare le applicazioni e i carichi di lavoro senza eccedere.
  3. Attenta pulizia: Terminare le risorse di calcolo che non sono più necessarie e cancellare i volumi non collegati (dischi gestiti di Azure) una volta eliminati i relativi servizi di calcolo tramite la dashboard di Azure.
  4. Controllare lo stato dei dischi rigidi virtuali: All'interno del proprio Azure Storage Account cerchiamo "Disco rigido virtuale". Troveremo le proprietà del disco nella scheda Panoramica. Se lo stato di un disco è "sbloccato" e il suo stato di locazione è "disponibile", significa che la risorsa non è collegata a nessun volume e possiamo tranquillamente eliminarlo.
  5. Il giusto carico per il giusto disco: mantenere carichi di lavoro meno intensivi in I/O nei dischi Standard invece che nei dischi Premium o Ultra Disk permette di ridurre drasticamente il costo per le transazioni.
  6. Reserved Capacity: una volta che si ha un'idea approssimativa della quantità di archiviazione necessaria, sfruttiamo le opzioni di capacità riservata di Azure Storage per beneficiare degli sconti legati agli impegni nel prenotare un tot di risorse (per un certo numero di mesi o anni) offerti da Microsoft.

Conclusioni

Con la loro varietà di opzioni, capaci di adattarsi alle esigenze di aziende di ogni tipo e dimensione, gli spazi di archiviazione di Azure Storage sono una scelta sicura e affidabile per tutte quelle compagnie che vogliono portare i loro dati “nelle nuvole”.

L’infrastruttura sottostante, interamente gestita da Microsoft, libera poi le organizzazioni dall’onere di dover spendere tempo e denaro preziosi per l’acquisto, la gestione e il mantenimento di infrastrutture on-premise e dà modo ai propri reparti IT e data engineer di concentrarsi su compiti più importanti, incrementandone in maniera significativa l’efficienza operativa.

Azure è diventata negli anni una delle piattaforme leader nel settore del cloud computing per molti, validi motivi e possiamo tranquillamente affermare che i suoi servizi di storage sono tra questi. Non resta dunque che invitarvi a toccarne con mano le potenzialità e lasciare che l’offerta di archiviazione della piattaforma di cloud computing Microsoft parli da sé.

FAQ su Azure Storage

Cos'è Azure Storage?

Azure Storage è la soluzione di archiviazione cloud di Microsoft che offre servizi di archiviazione altamente disponibili, sicuri e scalabili per una vasta gamma di tipi di dati, inclusi file, blob, code e tabelle.

Quali sono i principali tipi di Azure Storage?

Azure Storage offre diversi tipi di archiviazione, tra cui Blob Storage per dati non strutturati, File Storage per condivisioni di file gestite, Queue Storage per la gestione delle code di messaggi e Table Storage per dati NoSQL.

Come funziona Azure Blob Storage?

Azure Blob Storage è progettato per archiviare grandi quantità di dati non strutturati come immagini, video e documenti. Organizza i dati in contenitori e consente un'enorme scalabilità e accessibilità dei dati tramite HTTP o HTTPS.

Quali sono i vantaggi dell'utilizzo di Azure File Storage?

Azure File Storage fornisce condivisioni di file completamente gestite nel cloud accessibili tramite il protocollo SMB. Questo servizio è ideale per applicazioni che richiedono l'accesso condiviso ai file e può integrarsi perfettamente con gli ambienti locali esistenti.

Come può essere utilizzato Azure Queue Storage?

Azure Queue Storage viene utilizzato per memorizzare un gran numero di messaggi che possono essere accessibili da qualsiasi luogo tramite richieste HTTP o HTTPS autenticati. È comunemente usato per costruire sistemi distribuiti scalabili e resilienti.

Cosa rende unico Azure Table Storage?

Azure Table Storage è un archivio NoSQL basato su chiavi che è ideale per memorizzare dati strutturati non relazionali. Consente un accesso rapido a grandi volumi di dati e può scalare per soddisfare le esigenze di applicazioni che richiedono un'elevata velocità di trasmissione.

Come garantisce Azure Storage la sicurezza dei dati?

Azure Storage protegge i dati attraverso la crittografia sia a riposo che in transito. Offre inoltre funzionalità avanzate di sicurezza come il controllo degli accessi basato sui ruoli (RBAC), l'integrazione con reti virtuali e endpoint privati per proteggere i dati da accessi non autorizzati.

Quali sono i modelli di pricing per Azure Storage?

Azure Storage offre modelli di pricing flessibili, tra cui il pay-as-you-go, la capacità riservata e i livelli di archiviazione come Hot, Cool e Archive. Ogni modello è progettato per ottimizzare i costi in base ai modelli di accesso ai dati e alle esigenze di conservazione.

Come supporta Azure Storage la ridondanza dei dati?

Azure Storage fornisce diverse opzioni di ridondanza come Locally Redundant Storage (LRS), Zone-Redundant Storage (ZRS), Geo-Redundant Storage (GRS) e Read-Access Geo-Redundant Storage (RA-GRS) per garantire la durabilità e la disponibilità dei dati.

Azure Storage può essere integrato con altri servizi Azure?

Sì, Azure Storage si integra perfettamente con vari servizi Azure, come Azure Virtual Machines, Azure Functions e Azure Data Lake, consentendo un ambiente cloud coeso per la costruzione e il deployment di applicazioni.

Scopri perché scegliere il team

Infra & Sec

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).