Successfully reported this slideshow.
Your SlideShare is downloading. ×

Docker la rivoluzione nel deployment

Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad

Check these out next

1 of 21 Ad

Docker la rivoluzione nel deployment

Download to read offline

Annunciato per la prima volta nel 2013 a Santa Clara durante l’annuale conferenza per sviluppatori Python, Docker è diventato uno strumento maturo utilizzato da molti webmaster e sviluppatori per creare, testare e distribuire applicazioni più rapidamente.
I più famosi CMS come WordPress, Drupal e Joomla possono essere installati su Docker funzionante sul vostro PC, permettendovi di risparmiare tempo nello sviluppo e nelle fasi di prova ed evitando tutti gli inconvenienti che possono nascere invece con le virtualizzazioni.

Distribuzione più rapida del software, risparmio economico e trasferimenti ottimizzati sui siti di produzione sono solo alcuni dei vantaggi più evidenti dell'uso di Docker.

Ne parliamo con Mauro Cicolella, consulente IT, sviluppatore dall'esperienza decennale, che cura il canale Youtube EmmeCiLab dedicato all'Informatica e alla Matematica.

Annunciato per la prima volta nel 2013 a Santa Clara durante l’annuale conferenza per sviluppatori Python, Docker è diventato uno strumento maturo utilizzato da molti webmaster e sviluppatori per creare, testare e distribuire applicazioni più rapidamente.
I più famosi CMS come WordPress, Drupal e Joomla possono essere installati su Docker funzionante sul vostro PC, permettendovi di risparmiare tempo nello sviluppo e nelle fasi di prova ed evitando tutti gli inconvenienti che possono nascere invece con le virtualizzazioni.

Distribuzione più rapida del software, risparmio economico e trasferimenti ottimizzati sui siti di produzione sono solo alcuni dei vantaggi più evidenti dell'uso di Docker.

Ne parliamo con Mauro Cicolella, consulente IT, sviluppatore dall'esperienza decennale, che cura il canale Youtube EmmeCiLab dedicato all'Informatica e alla Matematica.

Advertisement
Advertisement

More Related Content

Slideshows for you (20)

Similar to Docker la rivoluzione nel deployment (20)

Advertisement

Recently uploaded (20)

Docker la rivoluzione nel deployment

  1. 1. Docker la rivoluzione nel deployment Come e quando utilizzarlo Mauro Cicolella Arti Grafiche, Stampa e Web
  2. 2. Chi sono Consulente ICT Sviluppatore freelance Full remote Sostenitore Open Source www.emmecilab.net Mauro Cicolella
  3. 3. In principio era il "ferro" www.emmecilab.net dimensionate con una stima a priori costi elevati difficoltà a scalare (verticalmente) difficoltà a replicare le configurazioni tempi di ripristino lunghi in caso di guasti spreco di risorse (spesso utilizzate in minima percentuale) assenza di isolamento tra le applicazioni aka "bare metal" Tutti i servizi e le applicazioni giravano su macchine fisiche
  4. 4. Un sistema operativo (guest) in esecuzione all'interno di un altro sistema operativo (host) L'hardware fisico è accessibile al guest OS della VM tramite uno strato software detto hypervisor Ciascuna VM vede l'hardware come se fosse a sua completa disposizione (in realtà è condiviso) Le VM possono comunicare tra loro e con l'host solo se esplicitamente stabilito creando delle apposite network Consente il consolidamento dei server fisici Virtualizzazione www.emmecilab.net Tanti "computer" su un solo hardware https://www.researchgate.net/figure/illustration-of-the-concept-of-Virtualization-7_fig1_269636339
  5. 5. Modalità di virtualizzazione www.emmecilab.net Hosted Virtualization vs Bare-metal Virtualization
  6. 6. Virtualizzazione sul PC www.emmecilab.net
  7. 7. Vantaggi e svantaggi della virtualizzazione Esecuzione SO differenti Ogni macchina virtuale può eseguire un sistema operativo diverso (anche da quello dell'host) Isolamento VM Ciascuna macchina virtuale vive in un proprio spazio e dispone di un proprio sistema operativo Emulazione varie CPU L'emulazione può riguardare anche diverse architetture hardware www.emmecilab.net Risorse ingenti Per ogni applicazione isolata occorre virtualizzare hardware e sistema operativo Numero esiguo di VM Le macchine virtuali occupano molto spazio per cui possono essere ospitate in un numero ridotto per disco Prestazioni non al top L'esecuzione di più sistemi operativi in contemporanea limita le performance rispetto ad un sistema tradizionale (unico sistema operativo)
  8. 8. Docker www.emmecilab.net nasce principalmente per venire incontro agli sviluppatori con la diffusione del modello a microservizi incapsula le applicazioni all'interno di contenitori isolati detti "container" i container possono convivere su una stessa macchina (fisica o virtuale) sfrutta le funzionalità di isolamento del kernel Linux i container sono isolati ma condividono lo stesso kernel diversamente dalle macchine virtuali
  9. 9. Docker vs Virtualizzazione www.emmecilab.net
  10. 10. Impiego limitato di risorse Non dovendo virtualizzare il SO sono richieste minori risorse in termini di RAM e CPU Rapido avvio Non è richiesto il boot di un nuovo sistema operativo rispetto a quello host Portabilità Le immagini Docker includono sia l'applicazione che la relativa configurazione semplificando la portabilità su hardware differenti Vantaggi di Docker www.emmecilab.net Leggerezza Le immagini hanno dimensioni ridotte perchè non si portano dietro il fardello del sistema operativo Scalabilità E' possibile creare più container e distribuirli su più nodi per garantire affidabilità e bilanciamento del carico Cross platform Può girare su Windows, Linux e macOS, ma anche su architetture ARM (Raspberry &C)
  11. 11. Minore grado di isolamento L'isolamento è minore rispetto alla virtualizzazione per cui in certi ambiti occorre utilizzare le VM Dipendenza dal SO host Data la condivisione i container dipendono dal sistema operativo installato sulla macchina Rispetto architettura CPU Occorre realizzare immagini diverse per architetture differenti (AMD, ARM ecc.) C'è qualche svantaggio www.emmecilab.net Ma in genere il gioco vale la candela
  12. 12. Immagine www.emmecilab.net Pacchetto contenente codice dell'applicazione ambiente di esecuzione (Java, Php, Node.js, ecc.) librerie e dipendenze necessarie comandi per l'avvio e l'esecuzione Strutturata come una pila di layer Sviluppo incrementale
  13. 13. Container www.emmecilab.net Ciò che effettivamente "gira" sul computer istanza di un'immagine copia identica dell'immagine (alla creazione) dispone di un layer "scrivibile" (stato) analogia con i concetti di classi e oggetti nella OOP il filesystem è "effimero" ovvero segue il ciclo di vita del container (necessità di volumi) può essere isolato o interagire in modo controllato con altri container e con l'host
  14. 14. bind mounts (cartelle condivise sull'host) si usano soprattutto in fase di sviluppo modificabili da chiunque Persistenza dei dati www.emmecilab.net I dati "importanti" non vanno mai memorizzati nel container (database, documenti, media ecc.) Salvataggio sull'host o filesystem di rete volumi (gestiti direttamente da Docker in un'area specifica del fs) il loro ciclo di vita è indipendente da quello dei container (vanno rimossi esplicitamente) i volumi vanno dichiarati nel Dockerfile e possono essere condivisi tra i container
  15. 15. Networking www.emmecilab.net i container sono isolati di default non possono comunicare è possibile esporre delle porte di rete per un accesso controllato dall'esterno (saranno accessibili solo tramite tali porte) si possono definire delle network separate tra di loro (la comunicazione è consentita solo tra i container della network di appartenenza) se necessario possono accedere a più network
  16. 16. Dockerfile www.emmecilab.net "Programma" per la costruzione di immagini Definisce la struttura dell'immagine e i passi per realizzarla FROM ubuntu:latest RUN apt-get update && apt-get upgrade -y RUN apt-get install nginx -y EXPOSE 80 CMD ["nginx", "-g", "daemon off;"] Semplice file di testo che utilizza un'opportuna sintassi
  17. 17. docker-compose.yml docker-compose up docker-compose build docker-compose down docker-compose start/stop Docker Compose www.emmecilab.net Gestire un'infrastruttura Docker con un file e qualche comando Tool per definire una serie di container che devono essere avviati contemporaneamente, presentano delle dipendenze e necessitano o meno di network e volumi
  18. 18. file di testo in formato YAML contiene delle proprietà definisce i services (container) definisce le network espone le porte definisce i volumi definisce le variabili d'ambiente stabilisce le dipendenze (ordine di avvio) imposta la politica di riavvio docker-compose.yml www.emmecilab.net leggibilità portabilità dimensioni contenute
  19. 19. Un esempio vale più di mille parole www.emmecilab.net Installiamo WordPress
  20. 20. Sviluppare e rilasciare software tramite container di Serena Sensini Risorse utili www.emmecilab.net Canale YouTube EmmeCiLab https://www.youtube.com/c/EmmeCiLab Documentazione ufficiale https://docs.docker.com/
  21. 21. www.emmecilab.net Grazie per l'attenzione

×