La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Docker: distribuiamo applicazioni

Presentazioni simili


Presentazione sul tema: "Docker: distribuiamo applicazioni"— Transcript della presentazione:

1 Docker: distribuiamo applicazioni
di Elia Bellussi – Linux Day Torino

2 Phisical vs Hipervisors Containers vs Hypervisors
Chi sono Alcune definizioni Cosa è Docker Un po’ di storia Come funziona Phisical vs Hipervisors Containers vs Hypervisors Linux Day Torino

3 Come funziona Registrator Docker per gli sviluppatori
Cos’è Swarm Come funzione Swarm Cos’è Consul Come funziona Consul Cos’è Registrator Come funziona Registrator Docker per gli sviluppatori Docker per i sistemisti Linux Day Torino

4 Le alternative Riferimenti Linux Day Torino

5 Chi sono System Engineer per Consoft Sistemi S.p.A.
Nel 2011 ho fondato l’associazione culturale Museo Piemontese dell’Informatica che dal prossimo anno diventerà Museo Internazionale dell’Informatica. Sono membro di NordEst Digitale, Torino Digitale, Stati Generali dell’Innovazione, IEEE. Linux Day Torino

6 Chi sono Linux Day Torino

7 Alcune definizioni in ordine alfabetico
Container: come dice la parola stessa esso è un apparato software, che contiene del codice. Control Groups: è una funzionalità del Kernel Linux che limita, conta ed isola l’uso delle risorse di un insieme di processi. Cluster: è un insieme di computer connessi tra loro tramite una rete telematica per distribuire il carico di lavoro. Linux Day Torino

8 Alcune definizioni Daemon: programma eseguito in background che, tipicamente, fornisce un servizio all’utente. File System: insieme di tipi di dati astratti necessari per la memorizzazione, l’organizzazione gerarchica, la manipolazione, la navigazione, l’accesso e la lettura dei dati. Immagine: file che contiene dati, nella loro struttura tipica, di un dispositivo o di un supporto di memorizzazione. Linux Day Torino

9 Alcune definizioni Inter Process Communication: tutte quelle tecnologie software il cui scopo è consentire a diversi processi di comunicare tra loro scambiandosi dati e informazioni. Kernel Linux: fornisce tutte le funzioni essenziali per il sistema; in particolare la gestione della memoria primaria, delle risorse hardware del sistema e delle periferiche, assegnandole di volta in volta ai processi in esecuzione. Linux Day Torino

10 Alcune definizioni LXC: o Linux Container è un ambiente di virtualizzazione a container che opera a livello di sistema operativo. Namespace: è una collezione di simboli usati per organizzare oggettidi vario tipo in modo che questi possano essere ricollegati ad un nome. Orchestration: è l’automazione, coordinazione e gestione di sistemi informatici e servizi. Linux Day Torino

11 Alcune definizioni Overhead: definisce le risorse accessorie richieste rispetto a quelle strettamente necessarie per un determinato scopo. Repository: ambiente in cui vengono gestiti i metadati. REST: REpresentational State Transfer (REST) è un tipo di architettura software per i sistemi di ipertesto distribuiti come il World Wide Web. Un insieme di interfacce uniformi separa i client dai server. Linux Day Torino

12 Alcune definizioni Virtual machine: un software che crea un ambiente virtuale che emula tipicamente il comportamento di una macchina fisica grazie all'assegnazione di risorse hardware. Linux Day Torino

13 Che cos’è Docker Docker è un progetto open-source che automatizza la distribuzione di applicazioni all'interno di container software, fornendo un'astrazione addizionale grazie alla virtualizzazione a livello di sistema operativo di Linux. Linux Day Torino

14 Un po’ di storia Solomon Hykes ha creato Docker come un progetto interno di dotCloud, un'azienda platform as a service, grazie al lavoro di altri ingegneri di dotCloud tra cui Andrea Luzzardi e Francois-Xavier Bourlet. Linux Day Torino

15 Un po’ di storia Jeff Lindsay è stato coinvolto nel progetto come collaboratore esterno. Docker rappresenta l'evoluzione della tecnologia proprietaria di dotCloud, a sua volta realizzato grazie a precedenti software open-source come Cloudlets. Linux Day Torino

16 Un po’ di storia Docker è stato pubblicato come open source nel marzo Il 13 marzo 2014, con il rilascio della versione 0.9, Docker non utilizza più LXC come ambiente di esecuzione di default, sostituito dalla propria libreria libcontainer scritta nel linguaggio di programmazione Go. Linux Day Torino

17 Un po’ di storia Il 13 aprile 2015 il progetto aveva oltre stelle su GitHub (rendendolo il ventesimo progetto più seguito di GitHub), più di 4700 fork e quasi 900 contributori. Linux Day Torino

18 Come funziona Docker utilizza le funzionalità di isolamento delle risorse del kernel Linux come ad esempio cgroups e namespaces per consentire a "container" indipendenti di coesistere sulla stessa istanza di Linux, evitando l'installazione e la manutenzione di una macchina virtuale. Linux Day Torino

19 Come funziona I namespace del kernel Linux per lo più isolano ciò che l'applicazione può vedere dell'ambiente operativo, incluso l'albero dei processi, la rete, gli ID utente ed i file system montati, mentre i cgroups forniscono l'isolamento delle risorse, inclusa la CPU, la memoria, i dispositivi di I/O a blocchi e la rete. Linux Day Torino

20 Physical vs Hypervisors
Difficile da migrare Overhead minimo Facile da migrare Overhead massimo Physical Virtual Machine Linux Day Torino

21 Containers vs Hypervisors
Namespace Cgroups Chroots Linux Day Torino

22 Containers vs Hypervisors
Namespace Cgroups Chroots Docker client libcontainer Docker daemon Linux Day Torino

23 Containers vs Hypervisors
La virtualizzazione permette di essere più efficienti rispetto all’uso di hardware specifico per ogni applicazione. La tecnologia dei container permette di migliorare ancora lo sfruttamento delle risorse e di risparmiarle evitando di doverle suddividere con uno strato aggiuntivo relativo agli n sistemi operativi da installare. Linux Day Torino

24 Containers vs Hypervisors
L’uso di container permette, inoltre, di risparmiare tempo, (ore/uomo) perché evita di dover realizzare configurazioni specifiche di macchine virtuali per ogni applicazione. Viene configurata un’unica macchina anche virtuale in modo da clonarla e ridistribuirla. Dopo di che si provvede alla pubblicazione delle applicazioni tramite i container. Linux Day Torino

25 Cos’è Swarm Si tratta di un sistema di clustering navito per Docker. Esso serve a rendere un pool di host Docker come un’unico host virtuale. Usando API standard di Docker ogni tool che comunica con Docker può usare trasparentemente Swarm per scalare trasparentemente con host multipli. Linux Day Torino

26 Come funziona Swarm Una volta installato Swarm, un host farà da manager per orchestrare e schedulare i container nell’intero cluster. Esso gestirà una serie di agenti chiamati anche nodi. Gli agenti sono dedicati ad ospitare i container e sono daemon di Docker, pertanto vi si può comunicare tramite le API di quest’ultimo. Swarm, tra le alternative di clustering, può sfruttare Consul. Linux Day Torino

27 Come funziona Swarm Swarm permette di avere alta disponibilità per la gestione dei failover dell’istanza di gestione creando un manager primario e più repliche. Il primario è il single point of contact del cluster anche se si può comunicare direttamente con le repliche che fanno da proxy verso il primario. Linux Day Torino

28 Cos’è Consul Consul fornisce più funzionalità a Docker. Abbiamo:
Service Discovery Healt Checking Key/Value Store Multi Datacenter Linux Day Torino

29 Cos’è Consul Consul è un sistema distribuito ad alta disponibilità.
Ogni nodo ha un agente Consul anche se questo non è richiesto per scoprire altri servizi. L’agente è responsabile per il controllo dello stato di vita del servizio sul nodo e del nodo stesso. Linux Day Torino

30 Come funziona Consul Gli agenti comunicano con uno o più server Consul. I server Consul ospitano e replicano le informazioni ed eleggono tra loro un leader. Le componenti dell’infrastruttura che necessitano di conoscere altri servizi o nodi possono richiedere le informazioni ai server o ai nodi che girano la richiesta ai primi. Linux Day Torino

31 Cos’è Registrator Registrator tiene d’occhio nuovi container Docker e li analizza per determinare quali servizi mettono a disposizione. Inserisce automaticamente nell’elenco dei servizi, ad esempio in Consul, ogni servizio che trova in un container. Linux Day Torino

32 Come funziona Registrator
Un servizio è qualsiasi cosa che ascolta tramite una porta. Se un container ascolta su più porte, allora verranno elencati più servizi. Registrator, per ogni servizio che elenca, prende informazioni dal container relativo e tra esse abbiamo anche metadata definite dell’utente. Il servizio viene poi inserito nel registro apposito. Linux Day Torino

33 Docker per gli sviluppatori
Nuovo codice Immagine Docker Linux Day Torino

34 Docker per i sistemisti
Cluster Swarm Gestione Forward Forward Richieste alle API Linux Day Torino

35 Le alternative Kubernetes: è un sistema di distribuzione automatica, scalabilità e gestione di applicazioni in container. Apache Mesos: è un sistema di astrazione di CPU, memoria, hard drive e altre risorse sia fisiche sia virtuali. Marathon: è un software di orchestrazione dei container per Apache Mesos. Linux Day Torino

36 I riferimenti http://progrium.com/blog/
Linux Day Torino

37 I riferimenti https://www.youtube.com/watch?v=Q5POuMHxW-0
Linux Day Torino

38 I riferimenti http://kubernetes.io/ http://mesos.apache.org/
Linux Day Torino


Scaricare ppt "Docker: distribuiamo applicazioni"

Presentazioni simili


Annunci Google