https://a.storyblok.com/f/162428/1280x1262/96ce32308e/group-4-2.png

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.


Potrebbe interessarti...
Soluzioni software
Investimenti software: Credito di imposta fino al 2023
Soluzioni software
Integrazioni hardware: una consulenza a 360 gradi
Soluzioni software
Machine learning: l’apprendimento automatico dei dati