Perché usare Docker per lo sviluppo di software?

Docker è uno strumento molto potente, entrato di diritto nelle best practices di programmazione di moltissime software house. Da diversi anni ormai è diventato parte integrante della nostra azienda, sia per lo sviluppo locale che per la produzione.

Durante questi anni di sviluppo software con docker, abbiamo scoperto ed apprezzato le sue mille potenzialità e tutti i benefici che può apportare ad un azienda. In questo articolo cerchiamo di condividere la nostra esperienza.

Cosa è docker?

Docker è un software opensource che ti permetterà di creare dei Container (o contenitori) con al loro interno tutti i software dello stack sul quale si basa l’applicativo che stai sviluppando e tutto questo indipendentemente dalle versioni degli stessi che ci si trova installati nel nostro sistema operativo.

Se si vuole scendere più nel dettaglio tecnico, Docker è un nuovo approccio alla virtualizzazione. La virtualizzazione “in termini semplici” permette di installare un nuovo sistema operativo all’interno del tuo sistema operativo attuale, il quale utilizzerà disco e ram del tuo computer ma per il resto vivrà di vita propria.

Docker è un sistema evoluto di virtualizzazione, che a differenza di una macchina virtuale classica, cerca di condividere il più possibile dal tuo sistema operativo, cercando di utilizzare il minor numero di risorse possibile, condividendo quanto può tra container, mantenendo però il concetto di isolamento.

Perché dovrei usare Docker?

Vogliamo essere sinceri, la cultura della nostra azienda è quella di non restare ma indietro, essere sempre al passo con le ultime tecnologie. È stato principalmente questo il motivo iniziale che ci ha spinti a scoprire gli ambienti dockerizzati

A parte questo aspetto, siamo un azienda di software, lavoriamo per clienti differenti anche simultaneamente, quindi una della maggiori problematiche che avevamo prima di questo approccio era ricreare e mantenere il giusto ambiente per ogni cliente e ridistribuirlo.

Dopo diversi anni, possiamo affermare che ad oggi docker è sempre più presente nelle nostre pratiche di DevoOps ed è diventato parte integrante della nostra metodologia di lavoro.

Se stai pensando di utilizzare docker per la tua azienda, vediamo alcuni casi per i quali la riteniamo la giusta scelta.

1. Standardizzare gli ambienti di sviluppo

Docker ti consente grazie alla scrittura di un Dockerfile, di creare un ambiente con tutto l’occorrente per il tuo applicativo, con le giuste versioni di ogni componente. Distribuendo questo file si avrà la certezza che ogni sviluppatore lavori con il medesimo ambiente, evitando così errori di incompatibilità.

2. Facilità nel deployment su ambienti diversi

Dato che il container racchiude al suo interno tutto ciò di cui ha bisogno per funzionare, questo renderà il deploy dell’applicazione molto più rapido ed indipendente dal livello sottostante. Sia che rilascerai il tuo applicativo su Google Cloud, su Aws o su Azure il tuo container continuerà a funzionare nello stesso modo.

3. Disaster recovery semplificato

Seppur tutti sperano nel modo più assoluto di non dover affrontare un disaster recovery con Docker puoi effettuare il backup di un immagine (chiamato “snapshot”) per lo stato attuale del container, e puoi ripristinarlo in un secondo momento se si verifica qualche problema. Se ad esempio si verifica un problema hardware e devi cambiare macchina, è semplice rilanciare il docker sulla nuova.

4. Utilizzo simultaneo di versioni differenti

Capita spesso che una nuova versione del software che magari introduce molti cambiamenti voglia prima essere testata dal cliente. Creare versioni differenti dello stesso software senza sistemi di isolamento può diventare complesso o a volte anche impossibile.

Grazie a Docker, si possono lanciare versioni differenti dell’applicazione sulla stessa macchia, facendole rispondere a porte differenti.

5. Isolamento

Docker ti da la sicurezza che le applicazioni e le risorse siano isolate, dato ogni container ha risorse isolate da quelle degli altri. Questo è utile anche nel caso in sui si voglia rimuovere un applicativo in maniera più pulita, sarà infatti sufficiente eliminare il suo container, con la sicurezza che non verranno lasciati file temporanei o di configurazione nella macchina.


Se è pieno di vantaggi, perché non lo usano tutti?

Docker è un software relativamente nuovo, ed ha portato un cambio notevole soprattutto concettuale in questo settore, le buone norme di DevOps ora lo consigliano quasi come scelta obbligata ma non è sempre stato così.

Passare ad ambienti dockerizzati è abbastanza complesso, e richiede sicuramente una buona fase di studio ed analisi, è per questo che molte aziende si sentono più sicure e veloci utilizzando i classici sistemi.

Se vuoi un analisi gratuita dei tuoi software per capire come migrare a Docker, contattaci.

Share: