docker bdxio

71
@ndeloof

Upload: nicolas-de-loof

Post on 20-Aug-2015

1.101 views

Category:

Engineering


0 download

TRANSCRIPT

Page 1: Docker bdxio

@ndeloof

Page 2: Docker bdxio

<me/>

Page 3: Docker bdxio

Docker  à  l’AgileTour  ?

Page 4: Docker bdxio

Who  are  you  ?!

!

✓ PO / MO

✓ Dev

✓ Integration/Test

✓ Acceptance / Qualif

✓ Sysdamin / Ops

✓ Management

Page 5: Docker bdxio
Page 6: Docker bdxio

Why ?

Page 7: Docker bdxio

As  a  Developer

Page 8: Docker bdxio

I  code  using  …

Page 9: Docker bdxio

I  run  tests  on  …

Page 10: Docker bdxio

I  deploy  app  to  …

Page 11: Docker bdxio

and  (sometime)  it  fails  :’(

Page 12: Docker bdxio
Page 13: Docker bdxio

Some  told  me  to  …

Page 14: Docker bdxio

 Demo  of  a  simple  VM

Page 15: Docker bdxio

OS kernel

File System (libs, …)

services Hypervisor

OS kernel

(virtual) File System

services application runtime (JDK)

application

data (memory / disk)

emulation

Page 16: Docker bdxio
Page 17: Docker bdxio

OS kernel

File System (libs, …)

services Hypervisor

OS kernel

(virtual) File System

services application runtime (JDK)

application

data (memory / disk)

emulation

hardware !virtualization

Page 18: Docker bdxio

 What’s  a  VM

Page 19: Docker bdxio

my App

rsyslogd

cron

/sbin/getty

/sbin/init

dhclient

sshd -D

Page 20: Docker bdxio

 Some3mes  worse

Page 21: Docker bdxio

 What  for?✓ Different  Operating  System  ✓ Different  CPU  Architecture  ✓Work  with  multiples  versions  in  //  ✓ Import/export  running  environment  ✓…

Page 22: Docker bdxio
Page 23: Docker bdxio
Page 24: Docker bdxio

Docker  contract  :

Page 25: Docker bdxio

 Demo  of  a  simple  container

Page 26: Docker bdxio

OS kernel

File System (libs, …)

services

(virtual) File System

services application runtime (JDK)

application

data (memory / disk)

Hypervisor

OS kernel

emulation

Page 27: Docker bdxio
Page 28: Docker bdxio

Who will use it ?

Page 29: Docker bdxio

Will  you  ?!

!

✓ Dev

✓ Test

✓ Perf

✓ Staging

✓ prod

Page 30: Docker bdxio

Developer

Page 31: Docker bdxio

Not  on  Linux  ?

Page 32: Docker bdxio

DEV

✓Quickly get third party tools up-and-running

!

➜ ~ docker run mongo

Page 33: Docker bdxio

DEV

✓Exact reproduction for target environment

!

!

!

!

Page 34: Docker bdxio

DEV

✓Share with the team

✓Bug reproduction scenario !

!

!

!

Page 35: Docker bdxio

Define  environment  …  as  code

Page 36: Docker bdxio

Tester

Page 37: Docker bdxio

Test  resources

✓ Define build / test infra in your SCM !

•Database

•Messaging Middleware

•… !

Page 38: Docker bdxio

Test

✓ Define build / test infra in your SCM

Page 39: Docker bdxio

✓ Quickly get low-cost iso-production environment

QA

Page 40: Docker bdxio

P.O.  /  Sales

Page 41: Docker bdxio

Run  a  demo

✓ Ready to run demo

✓ No setup stress

✓ No technical skills required

✓ Can share with partners

Page 42: Docker bdxio

Production

Page 43: Docker bdxio

Dev/Opsa WAR archive is NOT what a sysadmin expect as delivery !

!

+

Page 44: Docker bdxio

best  DevOps  tool  so  far  (imho)

Page 45: Docker bdxio
Page 46: Docker bdxio
Page 47: Docker bdxio

Separation  of  concernInside container /var/log/myapp

!

!

!

On host /mnt/backup/myapp/log

Page 48: Docker bdxio

Separation  of  concerns

VOLUMEInside container /var/log/myapp

!

!

!

On host /mnt/backup/myapp/log

Page 49: Docker bdxio

✓ Manage hardware / infrastructure

✓ Monitoring / backups

- Not apps « implementation details »

Ops

Page 50: Docker bdxio

✓ Develop simplest possible solution

✓ Configuration is a runtime constraint

- Not extra-extra-flexibile application !

!

new WebServer().start(8080);

Dev

Page 51: Docker bdxio

Continuous  Delivery

Page 52: Docker bdxio
Page 53: Docker bdxio

Continuous  Delivery

•100% Reproducible environments

« docker build . » to replace « mvn install »

Dockerfile build WAR from

sources

Dockerfile run acceptance

test suite

Dockerfile build deployable

container

docker run COPY

Page 54: Docker bdxio

Continuous  Delivery

Page 55: Docker bdxio

Pour  quoi  ?

!

✓ Cloud !

✓ devices !

✓ on-premises

more to come soon …

Page 56: Docker bdxio

New architectures

Page 57: Docker bdxio

 LightWeight  VM  ?

Page 58: Docker bdxio

1 process per container !

Page 59: Docker bdxio

OS kernel

File System (libs, …)

services (virtual) File System

services application runtime (JDK)

application

data (memory / disk)

Page 60: Docker bdxio

OS kernel

File System (libs, …)

services (virtual) File System

application runtime (JDK)

application

data (memory / disk)

vFS

runtime

service

data

Page 61: Docker bdxio

OS kernel

File System (libs, …)

services (virtual) File System

application runtime (JDK)

application

data (memory / disk)

vFS

runtime

service

data

Page 62: Docker bdxio

OS kernel

File System (libs, …)

services (virtual) File System

application runtime (JDK)

application

data

vFS

runtime

service

data

other application

data

Page 63: Docker bdxio

OS kernel

File System (libs, …)

(virtual) File System

application runtime (JDK)

application

data

vFS

runtime

service

data

application

data

vFS

runtime

service

data

Page 64: Docker bdxio

Diviser  pour  mieux  régnerStop the monolithes ! !

!

!

!

!

!

!

Page 65: Docker bdxio

Diviser  pour  mieux  régnerembrace Micro-services ‣ « the unix way »  ‣ domain focussed ‣ quick release cycles ‣ segregate resources !

!

http://yobriefca.se/blog/2013/04/29/micro-service-architecture/

!

Page 66: Docker bdxio

Micro-­‐service  avec  Docker

LINK

Page 67: Docker bdxio

host

sample  :  syslog

http://jpetazzo.github.io/2014/08/24/syslog-docker/

rsyslog

/dev/log

/tmp/syslogdev

logger "hello"

/dev/log

Page 68: Docker bdxio

durée  de  vieUn serveur ou une VM : des mois, voir plus !

Un (ou des) containeur(s) : parfois juste quelques minutes !

Page 69: Docker bdxio

Upgrades

!

Upgrade applicatif = build d’une nouvelle image

Page 70: Docker bdxio
Page 71: Docker bdxio

Q?