Scaricare la presentazione
La presentazione è in caricamento. Aspetta per favore
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
Presentazioni simili
© 2024 SlidePlayer.it Inc.
All rights reserved.