how docker simplifies ci/cd
TRANSCRIPT
![Page 1: How Docker simplifies CI/CD](https://reader035.vdocuments.mx/reader035/viewer/2022062503/587a60911a28ab520b8b777f/html5/thumbnails/1.jpg)
How Docker simplifies
CI/CD
![Page 2: How Docker simplifies CI/CD](https://reader035.vdocuments.mx/reader035/viewer/2022062503/587a60911a28ab520b8b777f/html5/thumbnails/2.jpg)
Gabriel N. SchenkerDistinguished Software ArchitectPhD in Astrophysics
@gnschenker
www.lostechies.com/gabrielschenker
www.linkedin.com/in/gabrielschenker
https://github.com/gnschenker
![Page 3: How Docker simplifies CI/CD](https://reader035.vdocuments.mx/reader035/viewer/2022062503/587a60911a28ab520b8b777f/html5/thumbnails/3.jpg)
Professional Scrum Foundations Training, Monday May 16 – Tuesday May 17
Held at Clear Measure Office
More Info/Register: http://www.scrum.org
![Page 4: How Docker simplifies CI/CD](https://reader035.vdocuments.mx/reader035/viewer/2022062503/587a60911a28ab520b8b777f/html5/thumbnails/4.jpg)
•CI/CD – What and Why•Classical CI/CD pipeline•Containers – Quick Intro•CI using Docker•Defining a Service Stack•Blue-Green Deployment
By Dreamstime
![Page 5: How Docker simplifies CI/CD](https://reader035.vdocuments.mx/reader035/viewer/2022062503/587a60911a28ab520b8b777f/html5/thumbnails/5.jpg)
CI/CD – What and Why• CI = Continuous Integration• Why do we need CI?
• CD = Continuous Delivery or Continuous Deployment• Why do we need CD?
![Page 6: How Docker simplifies CI/CD](https://reader035.vdocuments.mx/reader035/viewer/2022062503/587a60911a28ab520b8b777f/html5/thumbnails/6.jpg)
Classical CI/CD pipelineYou need:• Source repository• CI Server• Multiple Environments (INT, UAT, Staging, PROD, etc.)• Infrastructure as Code• Service Discovery• Health Monitoring, Auto-Healing• Routing, Load Balancing• Blue-Green Deployment• Canary Releases• Centralized Logging & Monitoring• SLAs; Numbers and Metrics indicating Health
![Page 7: How Docker simplifies CI/CD](https://reader035.vdocuments.mx/reader035/viewer/2022062503/587a60911a28ab520b8b777f/html5/thumbnails/7.jpg)
implement
SCMS
Push often(feature toggle OFF) Peer review
Developer 1
Developer 2Turn FeatureToggle ON Artifacts
Buildartifacts
BacklogPull story
1
3
2
8
Pull code4
5
7 Run unit-, integration-and end-2-end tests
6
Configure environment
CI-Server
when complete
QA/PO
Sign o
ff
9
10
CI
![Page 8: How Docker simplifies CI/CD](https://reader035.vdocuments.mx/reader035/viewer/2022062503/587a60911a28ab520b8b777f/html5/thumbnails/8.jpg)
CodeRepo
Developer
Pushfeature
CI Server Integration Staging
promote
Build ArtifactsRun Unit andIntegration Tests
Infrastructure &Public Pool Tests
promote
Infrastructure andSmoke TestsA/B Testing
QAEnvironment
Full CI/CD pipeline
approve
promote
Continuous Delivery
Continuous Deployment
pull
![Page 9: How Docker simplifies CI/CD](https://reader035.vdocuments.mx/reader035/viewer/2022062503/587a60911a28ab520b8b777f/html5/thumbnails/9.jpg)
Containers
![Page 10: How Docker simplifies CI/CD](https://reader035.vdocuments.mx/reader035/viewer/2022062503/587a60911a28ab520b8b777f/html5/thumbnails/10.jpg)
VMs versus Containers
Operating System
Hypervisor
Guest OS
Bins/Libs
App 1
VM 1
Guest OS
Bins/Libs
App 2
VM 2
Guest OS
Bins/Libs
App 3
VM 3
Infrastructure
Operating System
Docker Host
Infrastructure
Bins/Libs
App 1
Container 1
Bins/Libs
App 2
Container 2
Bins/Libs
App 3
Container 3
![Page 11: How Docker simplifies CI/CD](https://reader035.vdocuments.mx/reader035/viewer/2022062503/587a60911a28ab520b8b777f/html5/thumbnails/11.jpg)
A Sample Application
• APS.NET Core 1.0 RC1• Sample Template• Running on CLR-CORE
![Page 12: How Docker simplifies CI/CD](https://reader035.vdocuments.mx/reader035/viewer/2022062503/587a60911a28ab520b8b777f/html5/thumbnails/12.jpg)
Containerizing my Application
![Page 13: How Docker simplifies CI/CD](https://reader035.vdocuments.mx/reader035/viewer/2022062503/587a60911a28ab520b8b777f/html5/thumbnails/13.jpg)
Containerizing my Build Server
![Page 14: How Docker simplifies CI/CD](https://reader035.vdocuments.mx/reader035/viewer/2022062503/587a60911a28ab520b8b777f/html5/thumbnails/14.jpg)
Publishing Container Images• Docker Hub• Trusted Registry
![Page 15: How Docker simplifies CI/CD](https://reader035.vdocuments.mx/reader035/viewer/2022062503/587a60911a28ab520b8b777f/html5/thumbnails/15.jpg)
Deploying my Application
![Page 16: How Docker simplifies CI/CD](https://reader035.vdocuments.mx/reader035/viewer/2022062503/587a60911a28ab520b8b777f/html5/thumbnails/16.jpg)
Scaling and High Availability
![Page 17: How Docker simplifies CI/CD](https://reader035.vdocuments.mx/reader035/viewer/2022062503/587a60911a28ab520b8b777f/html5/thumbnails/17.jpg)
Blue-Green Deployment
ReverseProxy
Service Av1
Service Av2
request
ReverseProxy
Green
Blue
A/B testing
10%
90%
Centralized loggingand stats monitor
decision
collect
0% 100%
Canary ReleaseAlso called: A/B Testing
![Page 18: How Docker simplifies CI/CD](https://reader035.vdocuments.mx/reader035/viewer/2022062503/587a60911a28ab520b8b777f/html5/thumbnails/18.jpg)
![Page 19: How Docker simplifies CI/CD](https://reader035.vdocuments.mx/reader035/viewer/2022062503/587a60911a28ab520b8b777f/html5/thumbnails/19.jpg)