3. Modernizzazione delle Applicazioni
Problemi di Sviluppo:
• Piccole modifiche al codice richiedono il re-compile
e ri-test
• L’applicazione diventa single point of failure
• L’applicazione è difficile da scalare
Microservizi: Ridimensionare le applicazioni in
operazioni separate
12-Factor Apps: Rendere l’app scalabile in modo
indipendente e altamente disponibile in base alla
progettazione
4. www.figueroa.it
WEBINAR - Introduzione a Docker
La sfida tra i Developer e Ops
• Libertà di creare e fare deploy delle
applicazioni in modo veloce
• Definire e confezionare le esigenze
dell’applicazione
• Rispondere in modo rapido e flessibile
alle esigenze e ai cambiamenti
• Standardizzare, proteggere e gestire
6. www.figueroa.it
WEBINAR - Introduzione a Docker
…ma anche con le Diversità dentro l’organizzazione
• Libertà di creare e fare deploy delle
applicazioni in modo veloce
• Definire e confezionare le esigenze
dell’applicazione
• Rispondere in modo rapido e flessibile
alle esigenze e ai cambiamenti
• Standardizzare, proteggere e gestire
12. www.figueroa.it
WEBINAR - Introduzione a Docker
Un’app su un server fisico - Limitazioni
• Tempi di implementazione lenti
• Costi molto alti
• Spreco di risorse
• Difficile da scalare
• Difficile da migrare
• Vendor lock in
13. www.figueroa.it
WEBINAR - Introduzione a Docker
Una Lezione di Storia -Virtualizzazione
• Un server fisico può contenere più applicazioni
• Ogni applicazione viene eseguita in una macchina virtuale (VM)
14. www.figueroa.it
WEBINAR - Introduzione a Docker
Benefici delleVMs
• Migliore gestione delle risorse
o Una macchina fisica divisa in più macchine virtuali
• Più facile da scalare
• VMs nel cloud
• Elasticità rapida
• Modello Pay as you go
15. www.figueroa.it
WEBINAR - Introduzione a Docker
Limitazioni delleVMs
• OgniVM richiede comunque:
o CPU allocation
o Storage
o RAM
o Un intero sistema operativo guest
• Più macchine virtuali esegui, più risorse hai bisogno
• OS sulleVM significa + consumo di risorse
• Portabilità dell'applicazione non garantita
16. Cosa è un container in Docker?
• Standardizza il deployment del software
• Isolamento delle app
• Condivide lo stesso kernel del sistema operativo
• L’applicazione è difficile da scalare
• Funziona con tutti i principali Linux e Windows Server
17. Ma qual è la differenza con le macchine virtuali (VM)?
VM
Container
18. Perché i container sono leggeri?
Ogni app, ogni copia di un app, e ogni
minima modifica dell'app richiede un
nuovo server virtuale
App Originale
(Nessun OS che
occupa spazio.
Nessuna necessità di
riavvio)
Copia dell’App
(Nessun OS. /bin/libs
possono essere
condivisi)
Modifiche dell’App
La funzionalità copy on
write permette di
salvare solo le
differenze tra container
A e A’
19. www.figueroa.it
WEBINAR - Introduzione a Docker
Nozioni di base Docker
Immagine
La base di un container Docker. Contiene tutte le istruzioni che faranno nascere il container.
Container
L'immagine quando è in esecuzione. L'unità standard dei servizi
Engine
Il software che esegue i comandi per i container. Networking e volumi fanno parte dell’Engine.
Registry
Memorizza, distribuisce e gestisce le immagini Docker
20. www.figueroa.it
WEBINAR - Introduzione a Docker
Alcuni Comandi
#Creare un container ubuntu e entrare dentro
docker run -t -i ubuntu /bin/bash
#Entrare dentro un container con id d8b9691c5903
docker exec -it d8b9691c5903 bash
#Riavviare, iniziare, stoppare un container
docker start <id-container>
docker stop <id-container>
docker restart <id-container>
#Cercare immagini (il commando sotto mi mostra tutte le immagine con il nome "ubuntu" disponibili su DockerHub)
docker search ubuntu
#Analizzando container logs (-f act like tail -f)
docker logs -f <id-container>
22. Container eVM insieme
I container e le macchine virtuali insieme offrono un'enorme flessibilità per l’IT che
permette di distribuire e gestire in modo ottimale le app.