introduzione a docker

Post on 21-Jan-2018

152 Views

Category:

Technology

1 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Introduzione a Docker 30 nov2017

Sponsored by

Roberto Messora

Chi sono@robymes

robymes@gmail.com

roberto.messora@valuelab.it

robymes

Roberto Messora

L’esigenza

• Minimizzare fino ad eliminare il problema del deploymentin diversi ambienti di esecuzione

• Ottimizzare al massimo l'uso delle risorse hw (startup time e densità di allocazione)

1/19

Capitolo 1

2/19

3/19

La tecnologia

“A container image is a lightweight, stand-alone, executable package of a piece of software that includes everything needed to run it: code, runtime, system tools, system libraries, settings. Available for both Linux and Windows based apps, containerized software will always run the same, regardless of the environment. Containers isolate software from its surroundings, for example differences between development and staging environments and help reduce conflicts between teams running different software on the same infrastructure.”

4/19

Capitolo 2

Un po’ di storia

5/19• Sviluppato inizialmente come progetto interno in dotCloud,

una società che si occupava di servizi PaaS

• Pubblicato su github come progetto open source nel

Marzo 2013

• Nel Marzo 2014 viene rilasciata la sua principale libreria,

libcontainer, sviluppata in Go

• Fra i maggiori contributori del progetto ci sono: il team di

Docker, Cisco, Google, Huawei, IBM, Microsoft, Red Hat

Docker su Linux

6/19• Docker è un progetto open-source che automatizza il

deployment di applicazioni all'interno di container software,

fornendo un'astrazione addizionale grazie alla

virtualizzazione a livello di sistema operativo di Linux

• Utilizza le funzionalità di isolamento delle risorse del kernel

Linux per consentire a container indipendenti di coesistere

sulla stessa istanza di Linux, evitando l'installazione e la

manutenzione di una macchina virtuale

• Le risorse possono essere isolate, i servizi limitati ed i

processi avviati in modo da avere una prospettiva

completamente privata del sistema operativo, col loro

proprio identificativo, file system ed interfaccia di rete

Docker su Linux

7/19• Namespace del kernel: isolano ciò che l'applicazione

può vedere dell'ambiente operativo (l'albero dei processi,

la rete, gli ID utente ed i file system montati)

• Cgroups del kernel: isolamento delle risorse (CPU,

memoria, I/O a blocchi, rete)

• Libreria libcontainer: uso delle funzionalità di

virtualizzazione del kernel

8/19

9/19

Docker su Windows

10/19• Con Windows Server 2016 Docker è disponibile

nativamente anche su Windows

• I principi di base sono gli stessi di Linux: accesso limitato

e controllato alle risorse del kernel

• Un container Linux NON può essere ospitato su un host

Windows e viceversa: i kernel sono differenti, le API

utilizzate dal container sono specifiche per i due sistemi

operativi (API Windows e API Linux)

• Un client Docker è in grado di supportare entrambe le API:

un solo prodotto per enrambi i sistemi operativi

Docker su Windows

11/19• I container Windows sono di due tipi

• Windows Container: i container condividono il kernel

con il sistema operativo host (Windows Server 2016),

altamente efficienti, ma adatti per ambienti trusted

• Hyper-V Container: ad ogni container è assegnato un

kernel virtualizzato e le relative risorse (CPU, memoria,

…), meno efficienti, ma isolamento totale

L’ecosistema

L’ecosistema Docker è composto da una serie di elementi

• Docker Engine

• Docker Machine

• Docker Compose

• Docker Swarm

• Docker Registry

12/19

Capitolo 3

13/19Docker Engine

Docker Machine

Sviluppare con Docker14/19

Capitolo 4

• Dockerfile

• Docker registry

• Docker-compose file

• Ottimizzare build-time e run-time

DemoDal Dockerfile al Docker Registry

Deploy con Docker15/19

Capitolo 5

• One engine to rule them all

• CI/CD Docker pattern

• Production ready: Houston we need a cluster

16/19

Docker in production: Swarm

17/19

Clusters Docker-ready

18/19• Docker Swarm

• Apache Mesos

• Mesosphere DC/OS

• Kubernetes

• Service Fabric

DemoReal world Docker Swarm

19/19

Grazie

Roberto Messora

top related