continuous delivery of docker images

43
CONTINUOUS DELIVERY OF DOCKER IMAGES A Customer case: ZorgDomein powered by Xebia Armin Čoralić [email protected]

Upload: armincoralic

Post on 12-Aug-2015

265 views

Category:

Technology


4 download

TRANSCRIPT

Page 1: Continuous Delivery of Docker images

CONTINUOUS DELIVERY OF DOCKER IMAGESA Customer case: ZorgDomein

powered by Xebia

Armin Čoralić [email protected]

Page 2: Continuous Delivery of Docker images

DELIVER SOFTWARE WITH THE SPEED OF THOUGHT

Page 3: Continuous Delivery of Docker images

WE AS

Page 4: Continuous Delivery of Docker images

DOCKER + CONTINUOUS DELIVERY

+

Page 5: Continuous Delivery of Docker images

CONTINUOUS DELIVERY OF DOCKER IMAGES

Page 6: Continuous Delivery of Docker images

CONTINUOUS DELIVERY OF DOCKER IMAGES

Platform to deploy your docker images to

Security

Set up the logging, monitoring and alerting

Application versioning

Zero downtime deployment

Page 7: Continuous Delivery of Docker images

HIGH AVAILABLE PLATFORM

Page 8: Continuous Delivery of Docker images

HIGH AVAILABLE PLATFORM

Page 9: Continuous Delivery of Docker images

LOADBALANCERfrontend main bind *:80 mode http maxconn 1000 default_backend appbackend app mode http balance roundrobin option httpchk /health server intapp01 intapp01.zorgdomein.local:80 check port 8080 server intapp02 intapp02.zorgdomein.local:80 check port 8080 server intapp03 intapp03.zorgdomein.local:80 check port 8080

Page 10: Continuous Delivery of Docker images

LOADBALANCER

frontend main_ssl bind *:443 ssl crt /etc/pki/tls/private/dockerintegration.pem no-sslv3 mode http maxconn 1000 default_backend app

Page 11: Continuous Delivery of Docker images

DOCKERHOST

UbuntuUbuntu

OLD

VS

NEW

SSH

Other services

Application

Syslog

SSH

Syslog

Application

Other services

Page 12: Continuous Delivery of Docker images

DATABASE AS SERVICE

+ ○#

Page 13: Continuous Delivery of Docker images

LOGGING, MONITORING AND ALERTING

Page 14: Continuous Delivery of Docker images

LOGGING, MONITORING AND ALERTING

StatsD

#

Page 15: Continuous Delivery of Docker images

LOGGING

Dockerhost

Syslog

Application

Page 16: Continuous Delivery of Docker images

MONITORING

Dockerhost

Syslog

StatsDApplication

Page 17: Continuous Delivery of Docker images

ALERTING

Dockerhost

Syslog

StatsD

Events

Application

Page 18: Continuous Delivery of Docker images

APPLICATION VERSIONING

Page 19: Continuous Delivery of Docker images

APPLICATION VERSIONING

commit

push

commit

push

OLD

NEW

Page 20: Continuous Delivery of Docker images

IMAGE VERSIONING

zorgdomein/syslog:8.9-2

zorgdomein/ta:20150520_1830

zorgdomein/te:20150520_1736

Page 21: Continuous Delivery of Docker images

APPLICATION VERSIONING

ZorgDomein Application C_20150520_1830

zorgdomein/syslog:8.9-2

zorgdomein/ta:20150520_1830

zorgdomein/te:20150520_1736

Page 22: Continuous Delivery of Docker images

ENVIRONMENT VERSIONING

ZorgDomein Application C_20150520_1830

zorgdomein/syslog:8.9-2

zorgdomein/ta:20150520_1830

zorgdomein/te:20150520_1736config.yml

librato_flush_interval: 60 librato_token: "3847hwd" librato_user: “…” tc_db_user: “…” tc_db_host: “…zorgdomein.nl”

Page 23: Continuous Delivery of Docker images

ZERO DOWNTIME DEPLOYMENT

Page 24: Continuous Delivery of Docker images

ZERO DOWNTIME DEPLOYMENT

Page 25: Continuous Delivery of Docker images

ZERO DOWNTIME DEPLOYMENT WITH ANSIBLE

---- include: util/docker_update.yml vars: name: 'docker-stats' image: 'zorgdomein/docker-stats' image_version: "{{ version }}" container_state: "{{ state | default('present') }}" args: -v /var/run/docker.sock:/var/run/docker.sock -e 'STATSD_HOST={{ statsd_hostname }}' -e 'INTERVAL={{ stats_interval }}'

Page 26: Continuous Delivery of Docker images

ZERO DOWNTIME DEPLOYMENT

syslog:8.9-2

health:4

syslog:8.9-2

health:4

syslog:8.9-2

health:4

Page 27: Continuous Delivery of Docker images

ZERO DOWNTIME DEPLOYMENT

syslog:8.9-2

health:4

syslog:8.9-2

health:4

syslog:8.9-2

health:4

Page 28: Continuous Delivery of Docker images

ZERO DOWNTIME DEPLOYMENT

syslog:8.9-2

health:4

syslog:8.9-2

health:4

syslog:8.9-2

health:4

Page 29: Continuous Delivery of Docker images

ZERO DOWNTIME DEPLOYMENT

syslog:8.9-3

health:4

syslog:8.9-2

health:4

syslog:8.9-2

health:4

Page 30: Continuous Delivery of Docker images

ZERO DOWNTIME DEPLOYMENT

syslog:8.9-3

health:4

syslog:8.9-2

health:4

syslog:8.9-2

health:4

Page 31: Continuous Delivery of Docker images

ZERO DOWNTIME DEPLOYMENT

syslog:8.9-3

health:4

syslog:8.9-3

health:4

syslog:8.9-3

health:4

Page 32: Continuous Delivery of Docker images

ZERO DOWNTIME DEPLOYMENT

syslog:8.9-3

health:4

syslog:8.9-3

health:4

syslog:8.9-3

health:4

Page 33: Continuous Delivery of Docker images

SECURITY

Page 34: Continuous Delivery of Docker images

SECURITY

%

Page 35: Continuous Delivery of Docker images

DOCKER API

Allow run stop stats

events

Filter inspect

&

Page 36: Continuous Delivery of Docker images

DOCKER API - FILTER EXAMPLE

"Config": { "Cmd": [ "./run_te.sh" ], "Env": [ ….., "ZDDB_USERNAME=dbintuser", “ZDDB_PASSWORD=*********”

Page 37: Continuous Delivery of Docker images

DOCKER IMAGE MANAGEMENT

Image Size MB

Debian + Java

450

BusyBox + Java

300

Go 6

Page 38: Continuous Delivery of Docker images

DOCKER + CONTINUOUS DELIVERY

+

Page 39: Continuous Delivery of Docker images

CONTINUOUS DELIVERY OF DOCKER IMAGES

Page 40: Continuous Delivery of Docker images

CONTINUOUS DELIVERY OF DOCKER IMAGES

Platform to deploy your docker images to

Security

Set up the logging, monitoring and alerting

Application versioning

Zero downtime deployment

Page 41: Continuous Delivery of Docker images

THE DATA CENTER AUTOMATION EXPERTS

Page 42: Continuous Delivery of Docker images

WHAT WE DO

Automate, automate, automate!

Code the infrastructure!

Containerize all the things!

Page 43: Continuous Delivery of Docker images

powered by Xebia

Armin Čoralić [email protected]

THANKS!