docker containers - talk linux day 2015

22
An open platform for distributed applications for developers and sysadmins Una piattaforma open per sviluppatori e sysadmins per la distribuzione delle applicazioni 2015

Upload: fabio-ferrari

Post on 12-Apr-2017

93 views

Category:

Technology


1 download

TRANSCRIPT

An open platform for distributed applications for developers and sysadmins

Una piattaforma open per sviluppatori e sysadmins per la distribuzione delle applicazioni

2015

2015Cos’è un’applicazione?

OS Base

OS Custom

Binary

Library

Source

Application

Linux Debian, Ubuntu, CentOS, ecc.

Updates, Packages

Apache, JVM, Ruby, Perl, PHP, Python, cURL

Git, Subversion, Files

Running Application or Service

libjpeg, libxml, ImageMagick, libGeoIP, etc.

2015

JackSysAdmin

BobDeveloper

JoeDeveloper

OS Base

OS Custom

Binary

Library

Source

Application

MyApp 1.0

OS Base

OS Custom

Binary

Library

Source

Application

MyApp 1.1

OS Base

OS Custom

Binary

Library

Source

Application

DevOps

2015

JackSysAdmin

OS Base

OS Custom

Binary

Library

Source

Application

OS Base

OS Custom

Binary

Library

Source

Application

OS Base

OS Custom

Binary

Library

Source

Application

Infrastructures

2015

JackSysAdmin

BobDeveloper

JoeDeveloper

OS Base

OS Custom

Binary

Library

Source

Application

MyApp 1.2

OS Base

OS Custom

Source

Application

MyApp 1.2

OS Base

OS Custom

Binary

Library

Source

Application

Updates

Binary

LibraryX X

2015

From stack to image

OS Base

OS Custom

Binary

Library

Source

Application

OS Base

OS Custom

Binary

Library

Source

Application

2015

JackSysAdmin

BobDeveloper

JoeDeveloper

OS Base

OS Custom

Binary

Library

Source

Application

DevOps

OS Base

OS Custom

Binary

Library

Source

Application

OS Base

OS Custom

Binary

Library

Source

Application

2015JackSysAdmin

OS Base

OS Custom

Binary

Library

Source

Application

OS Base

OS Custom

Binary

Library

Source

Application

OS Base

OS Custom

Binary

Library

Source

Application

2015

JackSysAdmin

BobDeveloper

JoeDeveloper

OS Base

OS Custom

Binary

Library

Source

Application

Centralized

Public or Private Repository

2015

Container IS NOT

a Virtual Machine

2015

Docker ContainerVirtual Machine

Hos

t OS

Kern

el

system calls

Kern

el

Kern

el

Guest OS /usr /bin /var /etc

Guest OS /usr /bin /var /etc

system calls

Hyp

ervi

sor

Har

dwar

e

Host OS /usr /bin /var /etc

Kern

el

Guest OS /usr /bin /var /etc

Guest OS /usr /bin /var /etc

system calls

Har

dwar

e

Overhead

2015Performance

RAM

CPU

I/O

100%

100%

100%

RAM

CPU

I/O

80%

65%

50%

Docker ContainerVirtual Machine

2015

Image Size (OS Stack:): 1GB Application Size: 100MB

4 Running Applications: 1,4 GB

Image Size (OS Stack): 1GB Application Size: 100MB

4 Running Applications: 4,4 GB

Size

OS

APP

OS

APP

OS

APP

OS

APP

Virtual Machine

OS

APP APP APP APP

Docker Container

2015

OS Base

OS Custom

Binary

Library

AuFS

Source

Application

Read Only

Read / Write

Layered Filesystem

Container

2015

Layered FilesystemAuFS

Image 1.0

Container

Add GIT

Image 1.1

Image 1.0

Add Apache

Container

Image 1.0

Container

Image 1.1

Image 1.2

Add Source

2015Cos’è Docker?• Packaging System

Creazione e gestione delle immagini

• Container EngineAmbienti up & running logicamente separati

• Container Repository Push & Pull delle immagini e controllo di versione

2015Open Platform

• Linux Support only • Apache License / Free to use • Open Source / Github

2015Packaging System

Image Add Apache Image

Pull Image

Run Container

Modify Container

Commit

Push Image

2015Container Engine

Linux Server (host)192.168.1.1

Apache n1 172.0.0.16

MySQL Master 172.0.0.18

Apache n1 172.0.0.17 MySQL Slave

172.0.0.19

Memcached 172.0.0.20

2015Container Engine

Apache n1

Apache n2

Internet

MySQL Master

MySQL Slave

Memcached

2015Container Repository

hub.docker.com

2015

Thanks!

The End

www.particles.io