Utilizzo di Redis Enterprise in Azure

Lo storage NoSQL è disponibile in molti tipi. Alcuni sono database di documenti, altri memorizzano coppie chiave / valore, e tutti supportano molti tipi diversi di indice e query. Esistono sistemi basati su disco e altri progettati per funzionare in memoria. Alcuni gestiscono grandi quantità di dati in modo efficiente; altri si concentrano sulla fornitura di velocità. Con così tanti prodotti diversi a volte è difficile sceglierne uno.

Uno dei sistemi in memoria più popolari è Redis, il Remote Dictionary Server. È costruito sul server Redis open source, sponsorizzato da RedisLabs, con una serie di opzioni aziendali commerciali. Microsoft ha da tempo offerto la propria implementazione del Redis open source su Azure, dove viene utilizzato principalmente come cache ad alte prestazioni. Tuttavia, ha recentemente annunciato una partnership con RedisLabs, portando uno stack Redis Enterprise completamente gestito nel cloud di Microsoft.

Aggiunta di Redis Enterprise ad Azure

Il nuovo servizio è forse meglio pensato come l'aggiunta di due nuovi livelli ai servizi Basic, Standard e Premium esistenti: Enterprise ed Enterprise SSD. L'implementazione di Microsoft Redis si è concentrata sulla fornitura di una cache ad alte prestazioni per i dati in grandi applicazioni cloud native, dove la cache aiuta a gestire i messaggi per il codice basato sugli eventi o lo stato della sessione quando si creano sistemi containerizzati o senza server.

Le cache non servono solo per la gestione dei dati in arrivo. Le app moderne possono utilizzarle come metodo per precaricare i contenuti a cui gli utenti accedono regolarmente. Puoi precaricare Redis di Azure con le tue risorse comuni, come intestazioni e loghi, che non cambiano spesso. Ospitandoli in memoria possono essere consegnati molto più rapidamente, invece di estrarli dal disco ogni volta che viene caricata una pagina.

L'utilizzo di Redis è incentrato sulle prestazioni. L'inserimento dei dati della cache in un sistema in memoria può ridurre notevolmente la latenza delle applicazioni, soprattutto quando si creano ed eseguono applicazioni distribuite su larga scala. Il contenuto negli archivi Redis può essere replicato tra le aree di Azure, riducendo il rischio che gli utenti in un'area debbano accedere ai contenuti archiviati a metà del mondo.

A partire da Cache Redis di Azure

L'implementazione open source di Microsoft, Azure Cache for Redis, è disponibile in Basic, Standard e Premium, con una dimensione massima di 1,2 TB per i database Premium. Basic è un'implementazione a nodo singolo relativamente semplice, senza SLA ma con una scelta di dimensioni di memoria. Lo standard offre maggiore affidabilità implementando un sistema a due nodi e aggiungendo uno SLA. Se sono necessarie prestazioni migliori e una latenza inferiore, l'opzione Premium utilizza un grado diverso di hardware Azure, offrendo una velocità effettiva maggiore rispetto a Standard per quella che altrimenti sarebbe la stessa configurazione.

È abbastanza facile configurare una cache Redis in Azure. Inizia con un nome DNS, quindi aggiungi la cache a un gruppo di risorse e scegli una posizione. Questo configura le macchine virtuali sottostanti e avvia la cache; una volta che Azure lo segnala come in esecuzione, puoi usarlo nel tuo codice. Le credenziali necessarie per connettersi a Redis si trovano nel portale di Azure, con chiavi di accesso e stringhe di connessione. Il portale mostra l'indirizzo della tua istanza più la porta a cui il tuo codice deve connettersi. Per impostazione predefinita, questo avverrà tramite SSL.

Esistono vari pacchetti NuGet per usare Redis con le applicazioni .NET, con chiamate per ottenere e impostare elementi nella cache Redis, nonché per verificare che l'applicazione sia connessa a Redis. Tutto quello che devi fare è impostare la stringa di connessione della cache e quindi usarla per creare un oggetto cache dal tuo database Redis. Se usi Visual Studio, puoi lavorare con Redis usando strumenti di database .NET familiari come Entity Framework.

Le applicazioni basate su Redis sono facili da implementare utilizzando i pattern MVC (model, view e controller), utilizzando i controller per scrivere dati serializzati nella cache e per leggerli quando necessario. Microsoft consiglia di utilizzare i formati JSON per scrivere e leggere i dati, con i dati JSON restituiti facili da formattare e visualizzare utilizzando librerie JavaScript e .NET comuni.

Cache Redis di Azure è più di un database e un set di API, poiché contiene un set completo di strumenti di gestione, incluso il monitoraggio. Questi possono aiutarti a ridimensionare la tua istanza Redis secondo necessità. Puoi solo aumentare i livelli, passando da Basic a Standard a Premium.

Eventuali modifiche alle dimensioni sono un'operazione separata e puoi modificare le dimensioni in su o in giù all'interno dello stesso livello (a condizione che non puoi ridimensionare fino all'offerta di dimensioni standard più piccola). Se desideri passare a un livello inferiore, crea una nuova istanza di Redis e quindi copia i dati o le strutture nel nuovo database prima di eliminare la versione precedente. Se è necessario automatizzare il ridimensionamento, è possibile usare PowerShell o l'interfaccia della riga di comando di Azure o con il codice usando le librerie di gestione di Azure.

Scalabilità fino alle funzionalità del database in memoria di Redis Enterprise

L'implementazione di Redis di Azure è buona, ma non è tutta la storia. È basato sul Redis open source, quindi non ha tutte le caratteristiche del Redis Enterprise commerciale. Ecco perché Microsoft e Redis hanno collaborato per fornire due livelli aggiuntivi, gestiti da Microsoft e supportati da entrambe le società, con piena integrazione nel portale Azure. Enterprise, il livello base, utilizza l'archiviazione standard di Azure, mentre il livello Enterprise SSD aggiunge il supporto per l'archiviazione flash per un accesso più rapido ai dati non disponibili in memoria.

Attualmente in un'anteprima privata, il nuovo servizio aggiunge il supporto per i moduli chiave di Redis Enterprise, consentendo di utilizzare il servizio per molto di più che per i dati puramente memorizzati nella cache. Questa è una distinzione importante, poiché un database in memoria veloce è una parte importante di un sistema su larga scala, guidato dagli eventi, in particolare uno che si basa su dati di serie temporali. Altre funzionalità supportate includono RedisBloom, che aggiunge il filtro probabilistico dei dati, e RediSearch, che migliora l'indicizzazione e ti consente di utilizzare la ricerca full-text sui tuoi dati.

Ulteriori funzionalità verranno aggiunte quando il servizio passerà dall'anteprima privata alla disponibilità generale (attualmente prevista per la fine del 2020). Ciò consentirà di utilizzare la replica attivo-attivo tra aree geografiche e distribuzioni ibride che funzionano tra istanze Redis private e ospitate in Azure. Non è necessario disporre di una connessione dedicata tra locale e Azure Redis; la replica active-active funzionerà su una VPN.

La nuova implementazione di Redis Enterprise ha l'aspetto della cache di Azure esistente per Redis all'interno del portale e sarai in grado di aumentare la scalabilità da istanze esistenti o iniziare da zero. Se stai cercando prestazioni migliori, il ridimensionamento è un'opzione, ma probabilmente vorrai creare un'istanza completamente nuova se stai utilizzando una delle nuove funzionalità del database. È possibile abilitarli come parte del processo di creazione, dal portale o tramite un modello di Azure Resource Manager. Sebbene gran parte della tua gestione e monitoraggio provenga dall'interno del portale di Azure, hai la possibilità di usare gli strumenti di gestione di Redis per ottimizzare e ottimizzare i tuoi dati.

La combinazione dell'implementazione di Redis di Azure e di Redis Enterprise di RedisLabs è interessante che mostra come un fornitore con un'offerta premium costruita su una base open source possa coesistere con i cloud hyperscale. Azure è in grado di offrire un servizio basato sulla piattaforma open source, mentre le implementazioni più complesse possono utilizzare gli strumenti di RedisLabs. Questo percorso consente all'azienda di accedere a un nuovo flusso di entrate senza dover cambiare il suo modello di licenza con uno che escluda i fornitori di servizi cloud.

Con un semplice percorso dal servizio cache basato su Redis di Azure a Redis Enterprise e senza modifiche agli strumenti di gestione o alle relazioni di fatturazione, è anche trasparente per gli utenti finali. Hanno accesso a nuovi livelli e nuove funzionalità senza dover cambiare il modo in cui lavorano.