Implementing CI with Docker are the baby steps. The tricky one is CD through several environments. Architecture, demo and lessons learned. Target audience: 80% technical, 20% PM/architects/leaders
2024: Domino Containers - The Next Step. News from the Domino Container commu...
Â
Docker adventures in Continuous Delivery - Alex Vranceanu
1. @ITCAMPRO #ITCAMP17Community Conference for IT Professionals
Docker Adventures in Continuous
Delivery
Alex Vranceanu
DevOps Lead @ Accesa
RedHat Certified Engineer, Docker Mentor
LinkedIn/Twitter: @vralex
4. @ITCAMPRO #ITCAMP17Community Conference for IT Professionals
What is Docker?
Developers: use Docker to eliminate âworks on my machineâ
problems when collaborating on code with co-
workers.
Operators: use Docker to run and manage apps side-by-side in
isolated containers to get better compute density.
Enterprises: use Docker to build agile software delivery pipelines
to ship new features faster, more securely and with
confidence for both Linux and Windows Server
apps.
Worldâs leading container
platform
5. @ITCAMPRO #ITCAMP17Community Conference for IT Professionals
âą âPackâ with software binaries and
dependencies
âą Isolates software from each other
âą Shares the OS Kernel
âą Easily portable across environments
âą Containers are now native in Windows
Server 2016
âą Works on all major Linux distributions
What is a container?
8. @ITCAMPRO #ITCAMP17Community Conference for IT Professionals
Docker clusters - Swarm
âą Multiple Docker nodes
connected together
âą Form a single Docker
âvirtualâ endpoint
âą Will run Swarm Services
9. @ITCAMPRO #ITCAMP17Community Conference for IT Professionals
âą ContainerA ï created from an ï Image
âą Service ï runs replicas of ï ContainerA
Swarm Service
10. @ITCAMPRO #ITCAMP17Community Conference for IT Professionals
âą Code push to GIT ï CI system (Jenkins) starts ï Unit
tests ï Build binary artifact ï Build, tag and push
Docker Image ï Deploy to Dev Environment ï Run Tests
ï Done
Continuous Integration
âą Example tags:
â myapp:develop-1.0.5-59 (from develop branch)
â myapp:feature-1.0.5-59 (from feature branch)
â myapp:1.0.5 ï corresponds to ï myapp:latest
11. @ITCAMPRO #ITCAMP17Community Conference for IT Professionals
âą âŠand a few more:
âConnectivity with software
dependencies
âLoad balancers for
containers
âLogging & Monitoring
âHardware scaling
Continuous Delivery with Docker
âą A few considerations:
âEnvironment separation
âSequential updates
âHigh availability
âSoftware scaling
âSecurity
âData persistence
12. @ITCAMPRO #ITCAMP17Community Conference for IT Professionals
âą CI system triggers CD pipeline
âą New Docker Image deployed to pre-production
âą Pre-production tests
âą Image deployed to production
âą Production tests
Continuous Delivery general workflow
14. @ITCAMPRO #ITCAMP17Community Conference for IT Professionals
âą Monitor Swarm Cluster health
â Be careful with Swarm qvorum
âą Logically divide Swarm nodes with labels
âą Minimum 2 replicas per service
âą Use network volumes when persistence is necessary
âą Build stateless apps (or use a DB service)
âą Add healthchecks to containers
âą Plan autoscaling parameters for Infrastructure
âą Plan autoscaling parameters for Swarm Services
Lessons learned