Docker sito DotEnvv

Docker: Lo strumento ideale per programmare

Quante volte è capitato, ad ogni programmatore, di trovarsi a dover gestire un progetto che utilizza un database, un server web o una versione del linguaggio di programmazione ben precisi?
In quel caso le alternative sono due: installare ogni singolo applicativo sul proprio computer -e sperare che tutto funzioni- o usare Docker che isola ogni servizio in container. Il software Docker, per quanto concerne la containerizzazione, offre infatti la possibilità di creare, distribuire, spostare e copiare i container da un ambiente all’altro.

Docker oggi è una scelta praticamente obbligata data la vastità di ambienti che si possono avere per ogni progetto ed è parte integrante del flusso di lavoro di DotEnv; intervenendo infatti su progetti molto diversi tra loro e creati sulle necessità del cliente, avere un sistema che replica perfettamente l’ambiente informatico del cliente è fondamentale.

La funzione dei container di Docker

Un container è quindi fondamentalmente un’istanza di un servizio isolata dal resto del computer e dagli altri container. Di conseguenza, si possono avere molte istanze che funzionano in contemporanea e permettono quindi di avere, ad esempio, due motori di database o due versioni di PHP allo stesso momento.
Altra caratteristica fondamentale è la sicurezza: poiché ogni istanza è isolata dalle altre e anche dal sistema operativo, diventa molto difficile per un processo attivo accedere alle risorse del computer (ad esempio a tutto l’hard disk con privilegi di amministratore).

Ci sono svantaggi? Sì, principalmente le prestazioni. Avere ad esempio PHP che funziona nativamente sul computer permette di avere prestazioni di gran lunga superiori a quelle che si hanno con PHP isolato in un container e quindi “virtualizzato”. Il calo di prestazioni più vistoso si ha in ambiente MacOS soprattutto se si hanno accessi ai file frequenti.

Ma i vantaggi sono nettamente superiori. Soprattutto in fase di distribuzione del codice e del progetto ad altri programmatori, basta avere Docker installato sul computer per “tirare su” un ambiente strutturato e sostanzialmente uguale senza bisogno di richiedere configurazioni particolari sui singoli computer di ogni programmatore.

Riepilogo dei vantaggi 

Ma quindi ci sono più vantaggi o svantaggi? Vantaggi!

  • La modularità, ad esempio, perché con Docker è possibile suddividere l’applicazione in piccole parti, più semplici da testare e condividere. Prima si parlava di isolamento dei singoli container e processi ma, in caso di necessità, è possibile far dialogare i vari container tra loro, arrivando quindi a soluzioni più complesse come un server LAMP o LEMP costituito da più container.
  • Le immagini Docker sono poi composte da diversi pezzetti, quindi se c’è un aggiornamento o una modifica dell’immagine non si deve scaricare tutto nuovamente ma solo la relativa modifica. E in caso di problemi si può tornare indietro alla versione precedente dell’immagine del container facilmente.
  • In fase di deploy dell’applicazione è possibile poi usare Docker anche sul server di produzione: in questo modo, in caso di modifiche o aggiornamenti il downtime è legato a quei pochi secondi di aggiornamento del container, rendendo tutto molto più stabile e resiliente.

 

Articolo di Nicola Bettini – Senior Backend Developer

Condividi

Condividi su facebook
Facebook
Condividi su linkedin
LinkedIn

Potrebbe interessarti anche...

data analyst DotEnv
Servizi

Data analyst: numeri che parlano

Colgo l’occasione della giornata mondiale del foglio di calcolo, domenica 17 ottobre, per fare una riflessione in merito a un tema a me molto caro:

e-commerce dotenv
Servizi

Quanto costa un e-commerce?

Riprendiamo la nostra analisi da dove eravamo rimasti: ecco allora i 4 tipi di e-commerce più diffusi valutati dal punto di vista del prezzo. Una