Redis è un database in-memory a elevata disponibilità. Il suo archivio di dati chiave-valore persistente su disco è ideale per molti usi ad alta disponibilità.
Docker, invece, è uno strumento che serve a containerizzare applicazioni e servizi, isolare i loro ambienti e consentirne l’esecuzione separatamente. Potete usare Docker come gestore di pacchetti per applicazioni e servizi con tutte le dipendenze, le configurazioni, gli script e così via. Uno script chiamato Dockerfile viene inserito all’interno del container Docker e vi permette di distribuire il container come un’unica entità.
Questo articolo vi mostrerà come usare efficacemente queste due tecnologie open-source. Parleremo anche dei motivi per cui l’esecuzione di cluster Redis all’interno di container Docker è fondamentale e quali sono i vantaggi e i benefici di questa operazione rispetto all’esecuzione di cluster Redis su macchine virtuali o server bare metal.
I vari usi di Redis
Redis presenta numerosi vantaggi. I suoi usi più diffusi sono:
- Cache distribuita di database a valore-chiave
- Broker di messaggi
- Server di caching di oggetti persistenti
Inoltre, Redis è in grado di supportare diversi tipi di dati e strutture, il che lo rende adatto a essere utilizzato come livello di database primario e secondario per le applicazioni. Supporta anche liste, flussi, hash, set, ecc.
Tuttavia, potete approfittare ancora di più dei vantaggi di Redis containerizzandolo.
Redis funziona meglio all’interno di un Container
Redis è una delle immagini Docker più popolari nel registro Docker, con oltre un miliardo di download. Il motivo della containerizzazione delle applicazioni Redis è quello di ottenere i vantaggi di Docker e il supporto della comunità per i casi d’uso più comuni di Redis.
L’immagine Docker di Redis ha una comunità open-source che crea e mantiene una documentazione chiara. Inoltre, Docker è altamente affidabile e consente un utilizzo semplice e flessibile.
Facilità d’uso
Docker isola gli ambienti delle applicazioni e dei servizi che girano all’interno dei container. L’isolamento permette di confezionare, costruire e distribuire immagini di Redis che funzionano indipendentemente dal sistema operativo ospite, il che rende facile lo sviluppo e l’esecuzione di applicazioni Redis all’interno di Docker. Inoltre, Docker Desktop semplifica la creazione di un ambiente di sviluppo locale coerente, particolarmente utile per i team più numerosi.
Sicurezza
È possibile eseguire una scansione delle vulnerabilità di sicurezza con Redis all’interno di un container. Docker usa Snyk, uno strumento che fornisce visibilità sulla sicurezza delle immagini Docker. Esegue la scansione dei container Docker e fornisce dettagli e rimedi in caso di immagini corrotte. Docker può anche generare una distinta base del software (SBOM) per la scansione di tutte le dipendenze utilizzate nella creazione delle immagini dei container, anche se è ancora in fase sperimentale.
Flessibilità
Docker è disponibile per la maggior parte dei sistemi operativi e delle applicazioni basate su Unix e Windows. Poiché i container servono a isolare il software dal suo ambiente per garantire che funzioni con tutti i sistemi, le applicazioni e i servizi Redis funzionano sempre nonostante l’infrastruttura.
Affidabilità
Docker vi permette di eseguire qualsiasi carico di lavoro containerizzato in qualsiasi ambiente in modo affidabile. Redis è affidabile in Docker perché i container Docker eseguono periodicamente delle istantanee dell’immagine del container, e vi permettono di tornare a queste istantanee in caso di database danneggiato o corrotto. Potete anche creare un volume Docker montando una directory contenente il file del database Redis all’interno del container.
Un volume Docker aiuta a mantenere il container al sicuro da qualsiasi forma di perdita accidentale di dati. È però importante ricordare che i volumi Docker non includono le istantanee dell’immagine. Dovete salvare o fare il backup dei dati del vostro database Redis manualmente e periodicamente.
Come usare Redis con Docker
Per inserire il vostro archivio Redis in un container Docker, dovete avere Docker nell’ambiente di destinazione. Le seguenti istruzioni vi mostrano come installare Docker su Windows.
Per un sistema operativo Unix o basato su Unix, seguite la guida sul sito web di Docker. Dopo l’installazione e la configurazione, create una rete all’interno del vostro container Docker. Installate poi Redis e create un database. A questo punto, potrete eseguire delle operazioni sul vostro database Redis.
Per prima cosa, installate Docker sul vostro sistema operativo. In alternativa, accedete a Docker Hub e create un account. Avete bisogno di un account per creare e pubblicare le vostre immagini.
Dopo aver creato un account, accedete a Docker Hub e scaricate l’ultima versione di Docker Desktop del vostro sistema operativo.
Dopo la procedura di installazione, accedete alla finestra del terminale per verificare che il motore Docker sia pronto per l’esecuzione e inserite il seguente comando:
docker --version
Poi digitate: docker-compose --version
.
Compose è uno strumento che consente di definire ed eseguire applicazioni Docker multi-container usando file YAML, che si usano per configurare i servizi delle applicazioni.
Potete eseguire un Redis dockerizzato per verificare che il motore Docker sia attivo e funzionante utilizzando il codice seguente. Questo esempio esegue l’immagine di Redis da Docker Hub e la nomina my-redis-container.
docker run --name my-redis-container -d redis
Visto che non disponete dell’immagine in locale, Docker preleva l’immagine di Redis da Docker Hub.
Ora potete aprire Docker Desktop per confermare l’estrazione dell’immagine di Redis. Nella Bacheca, fate clic su Immagini nel pannello di sinistra.
Ora potete creare una rete. Il driver Docker usa il bridge o i driver di rete integrati nell’overlay per creare una rete Docker. Potete anche installare e usare un driver di rete di terze parti.
La differenza è che le reti bridge sono isolate su una singola installazione di Docker Engine, mentre le reti overlay si estendono su più host Docker, ognuno dei quali esegue un motore.
Tipo:
docker network create -d bridge kinsta-demo-network
Se non specificate alcun driver per impostazione predefinita, Docker usa il driver bridge per creare una nuova rete poiché crea automaticamente il driver bridge quando installate Docker Engine. Tuttavia, se eseguite un container Docker con il comando Docker run, questo non userà questa rete.
Ora che avete una rete, il passo successivo è l’installazione di Redis all’interno del container Docker. Per farlo, digitate: docker pull redis
.
Per verificare che l’immagine di Redis sia installata correttamente, eseguite uno dei seguenti comandi:
docker images
docker image ls
Successivamente, create e avviate il container Redis. Per farlo, eseguite il seguente comando:
docker run -it –name dev_kinsta_redis_container -d redis
Ora verificate che Redis sia in esecuzione nel container. Per farlo, digitate: docker ps
.
Ora che avete confermato che il vostro container Docker è attivo e funzionante, potete aggiungere il container alla rete. Digitate: docker network connect
.
Se tutto funziona come previsto, il passo successivo è verificare che il server Redis in esecuzione all’interno di Docker sia pronto ad accettare connessioni. Per farlo, usate docker logs
.
Dopodiché dovete creare un database perché avete bisogno di un modo per connettervi al container Redis per eseguire i comandi sul server. Per farlo, digitate: docker exec -it bash
. Potete usare il nome del container e l’ID del container in modo intercambiabile.
Nel container, usate la CLI per eseguire i comandi. Redis ha installato automaticamente gli host Docker. Per usare la Redis-CLI, digitate: redis-cli
.
Questo vi connette alla porta predefinita di Redis sull’host locale. Digitate: ping
, e la risposta dovrebbe essere pong
.
Successivamente, selezionate un database all’interno del vostro server Redis digitando select
. Sebbene il database predefinito sia 0
, selezionate db 1
.
Successivamente, inserite i dati nel database. Usate il comando Redis SET
. Per farlo, digitate SET <key> <value>
.
Per esempio:
SET mykey "Hello"
Per ottenere la stessa chiave, digitate:
get myKey
Per ottenere il valore della chiave, eseguite get
. Questo restituisce il valore. Successivamente, monitorate il vostro database Redis digitando MONITOR
.
Infine, arrestate il server Redis uscendo dalla CLI. Digitate due volte exit
per uscire dalla CLI e da Redis.
Infine, interrompete l’esecuzione del container Redis digitando docker stop
.
Redis con DevKinsta
DevKinsta vi permette di collegare un sito WordPress a un database Redis. Con DevKinsta, il componente aggiuntivo Redis funziona perfettamente come una cache di oggetti per mantenere i dati attraverso diversi caricamenti di pagina. Ciò significa che utilizzando il componente aggiuntivo Redis, potete usare la cache per riutilizzare gli oggetti invece di interrogare costantemente il database MySQL.
Dopo aver scaricato e configurato DevKinsta, installate come dipendenza Docker Desktop, che viene utilizzato per creare file di ambiente locali all’interno di un container. Con questa configurazione, potete configurare il componente aggiuntivo Redis in Devkinsta.
Il componente aggiuntivo Redis per DevKinsta si può quindi usare come fonte secondaria, riducendo il carico sul database primario, aumentando i tempi di risposta e rendendo l’applicazione più veloce.
Questo si traduce in una maggiore gestione del carico e in un’efficiente scalabilità dell’applicazione. Date un’occhiata a questo articolo per utilizzare il plugin Redis con il vostro sito web.
Riepilogo
L’esecuzione di Redis all’interno di un container Docker presenta numerosi vantaggi. Offre un ambiente sandbox per le vostre applicazioni, per cui non dovrete più preoccuparvi della piattaforma su cui distribuire le vostre applicazioni. Inoltre, Docker offre facilità d’uso, flessibilità ed elevata affidabilità.
Per quanto riguarda la sicurezza, potete verificare e analizzare le vulnerabilità di sicurezza con Synk, uno strumento che fornisce visibilità sulla sicurezza delle immagini Docker. Per quanto riguarda la flessibilità, Docker funziona con la maggior parte dei sistemi operativi e delle applicazioni basate su Unix e Windows. Questa flessibilità implica che le applicazioni o i servizi dockerizzati o containerizzati funzionano sempre, indipendentemente dal sistema operativo.
È facile usare Docker e il componente aggiuntivo Redis con DevKinsta, che avvia un sito WordPress dockerizzato in locale all’avvio. Date un’occhiata a DevKinsta e al componente aggiuntivo Redis per sfruttare le potenzialità di Redis in Docker.
Lascia un commento