Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Continuous Delivery of Docker images

825 views

Published on

Continuous Delivery of Docker images

Published in: Technology
  • Be the first to comment

  • Be the first to like this

Continuous Delivery of Docker images

  1. 1. CONTINUOUS DELIVERY OF DOCKER IMAGES A Customer case: ZorgDomein powered by Xebia Armin Čoralić armin@cargonauts.io
  2. 2. DELIVER SOFTWARE WITH THE SPEED OF THOUGHT
  3. 3. WE AS
  4. 4. DOCKER + CONTINUOUS DELIVERY +
  5. 5. CONTINUOUS DELIVERY OF DOCKER IMAGES
  6. 6. 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
  7. 7. HIGH AVAILABLE PLATFORM
  8. 8. HIGH AVAILABLE PLATFORM 
  9. 9. LOADBALANCER frontend main bind *:80 mode http maxconn 1000 default_backend app backend 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
  10. 10. LOADBALANCER frontend main_ssl bind *:443 ssl crt /etc/pki/tls/private/dockerintegration.pem no-sslv3 mode http maxconn 1000 default_backend app
  11. 11. DOCKERHOST UbuntuUbuntu OLD VS NEW SSH Other services Application Syslog SSH Syslog Application Other services
  12. 12. DATABASE AS SERVICE  + ○
  13. 13. LOGGING, MONITORING AND ALERTING
  14. 14. LOGGING, MONITORING AND ALERTING StatsD
  15. 15. LOGGING Dockerhost Syslog Application
  16. 16. MONITORING Dockerhost Syslog StatsDApplication
  17. 17. ALERTING Dockerhost Syslog StatsD Events Application
  18. 18. APPLICATION VERSIONING
  19. 19. APPLICATION VERSIONING commit  push commit  push OLD NEW
  20. 20. IMAGE VERSIONING zorgdomein/syslog:8.9-2 zorgdomein/ta:20150520_1830 zorgdomein/te:20150520_1736
  21. 21. APPLICATION VERSIONING ZorgDomein Application C_20150520_1830 zorgdomein/syslog:8.9-2 zorgdomein/ta:20150520_1830 zorgdomein/te:20150520_1736
  22. 22. ENVIRONMENT VERSIONING ZorgDomein Application C_20150520_1830 zorgdomein/syslog:8.9-2 zorgdomein/ta:20150520_1830 zorgdomein/te:20150520_1736 config.yml librato_flush_interval: 60 librato_token: "3847hwd" librato_user: “…” tc_db_user: “…” tc_db_host: “…zorgdomein.nl”
  23. 23. ZERO DOWNTIME DEPLOYMENT
  24. 24. ZERO DOWNTIME DEPLOYMENT 
  25. 25. 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 }}'
  26. 26. ZERO DOWNTIME DEPLOYMENT syslog:8.9-2 health:4 syslog:8.9-2 health:4 syslog:8.9-2 health:4
  27. 27. ZERO DOWNTIME DEPLOYMENT syslog:8.9-2 health:4 syslog:8.9-2 health:4 syslog:8.9-2 health:4
  28. 28. ZERO DOWNTIME DEPLOYMENT syslog:8.9-2 health:4 syslog:8.9-2 health:4 syslog:8.9-2 health:4
  29. 29. ZERO DOWNTIME DEPLOYMENT syslog:8.9-3 health:4 syslog:8.9-2 health:4 syslog:8.9-2 health:4
  30. 30. ZERO DOWNTIME DEPLOYMENT syslog:8.9-3 health:4 syslog:8.9-2 health:4 syslog:8.9-2 health:4
  31. 31. ZERO DOWNTIME DEPLOYMENT syslog:8.9-3 health:4 syslog:8.9-3 health:4 syslog:8.9-3 health:4
  32. 32. ZERO DOWNTIME DEPLOYMENT syslog:8.9-3 health:4 syslog:8.9-3 health:4 syslog:8.9-3 health:4
  33. 33. SECURITY
  34. 34. SECURITY
  35. 35. DOCKER API Allow run stop stats events Filter inspect
  36. 36. DOCKER API - FILTER EXAMPLE "Config": { "Cmd": [ "./run_te.sh" ], "Env": [ ….., "ZDDB_USERNAME=dbintuser", “ZDDB_PASSWORD=*********”
  37. 37. DOCKER IMAGE MANAGEMENT Image Size MB Debian + Java 450 BusyBox + Java 300 Go 6
  38. 38. DOCKER + CONTINUOUS DELIVERY +
  39. 39. CONTINUOUS DELIVERY OF DOCKER IMAGES
  40. 40. 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
  41. 41. THE DATA CENTER AUTOMATION EXPERTS
  42. 42. WHAT WE DO Automate, automate, automate! Code the infrastructure! Containerize all the things!
  43. 43. powered by Xebia Armin Čoralić armin@cargonauts.io THANKS!

×