a tail of two containers: how docker made ci great again
TRANSCRIPT
![Page 1: A Tail of Two Containers: How docker made ci great again](https://reader031.vdocuments.us/reader031/viewer/2022021814/58eef64d1a28ab23438b4573/html5/thumbnails/1.jpg)
A Tale of Two Containers
How Docker made CI Great Again
![Page 3: A Tail of Two Containers: How docker made ci great again](https://reader031.vdocuments.us/reader031/viewer/2022021814/58eef64d1a28ab23438b4573/html5/thumbnails/3.jpg)
![Page 4: A Tail of Two Containers: How docker made ci great again](https://reader031.vdocuments.us/reader031/viewer/2022021814/58eef64d1a28ab23438b4573/html5/thumbnails/4.jpg)
Agenda
● History of Codeship Platform● Checkbot (LXC)● Jet (Docker)● Future of CI/CD
![Page 5: A Tail of Two Containers: How docker made ci great again](https://reader031.vdocuments.us/reader031/viewer/2022021814/58eef64d1a28ab23438b4573/html5/thumbnails/5.jpg)
History of Codeship Platform
![Page 6: A Tail of Two Containers: How docker made ci great again](https://reader031.vdocuments.us/reader031/viewer/2022021814/58eef64d1a28ab23438b4573/html5/thumbnails/6.jpg)
Checkbot
![Page 7: A Tail of Two Containers: How docker made ci great again](https://reader031.vdocuments.us/reader031/viewer/2022021814/58eef64d1a28ab23438b4573/html5/thumbnails/7.jpg)
Checkbot
39K Builds Per Day7.8M Builds Per Year
![Page 8: A Tail of Two Containers: How docker made ci great again](https://reader031.vdocuments.us/reader031/viewer/2022021814/58eef64d1a28ab23438b4573/html5/thumbnails/8.jpg)
Jet
![Page 9: A Tail of Two Containers: How docker made ci great again](https://reader031.vdocuments.us/reader031/viewer/2022021814/58eef64d1a28ab23438b4573/html5/thumbnails/9.jpg)
Jet
1.5K Builds Per Day115K Builds total
![Page 10: A Tail of Two Containers: How docker made ci great again](https://reader031.vdocuments.us/reader031/viewer/2022021814/58eef64d1a28ab23438b4573/html5/thumbnails/10.jpg)
Checkbot
Powered by LXC
![Page 11: A Tail of Two Containers: How docker made ci great again](https://reader031.vdocuments.us/reader031/viewer/2022021814/58eef64d1a28ab23438b4573/html5/thumbnails/11.jpg)
Benefits of LXC
• Impose resource limits• Containers are isolated• Separation of build environment and Codeship
infrastructure• Customer code is secure• Consistent build environment and experience• Automatable
![Page 12: A Tail of Two Containers: How docker made ci great again](https://reader031.vdocuments.us/reader031/viewer/2022021814/58eef64d1a28ab23438b4573/html5/thumbnails/12.jpg)
How we use LXC
• Universal build image• Pre-installed languages, services, libraries
![Page 13: A Tail of Two Containers: How docker made ci great again](https://reader031.vdocuments.us/reader031/viewer/2022021814/58eef64d1a28ab23438b4573/html5/thumbnails/13.jpg)
Screenshot of test commands and setup
![Page 14: A Tail of Two Containers: How docker made ci great again](https://reader031.vdocuments.us/reader031/viewer/2022021814/58eef64d1a28ab23438b4573/html5/thumbnails/14.jpg)
![Page 15: A Tail of Two Containers: How docker made ci great again](https://reader031.vdocuments.us/reader031/viewer/2022021814/58eef64d1a28ab23438b4573/html5/thumbnails/15.jpg)
Checkbot (LXC)
![Page 16: A Tail of Two Containers: How docker made ci great again](https://reader031.vdocuments.us/reader031/viewer/2022021814/58eef64d1a28ab23438b4573/html5/thumbnails/16.jpg)
How we use LXC
• Build server scaling group• Assign user to build server
![Page 17: A Tail of Two Containers: How docker made ci great again](https://reader031.vdocuments.us/reader031/viewer/2022021814/58eef64d1a28ab23438b4573/html5/thumbnails/17.jpg)
Issues for Developers
• Shared system requirements for every user.• Maintaining parity with development & production
![Page 18: A Tail of Two Containers: How docker made ci great again](https://reader031.vdocuments.us/reader031/viewer/2022021814/58eef64d1a28ab23438b4573/html5/thumbnails/18.jpg)
Issues for Codeship
• Many parallel services leave a large footprint• Lack of tooling around LXC
![Page 19: A Tail of Two Containers: How docker made ci great again](https://reader031.vdocuments.us/reader031/viewer/2022021814/58eef64d1a28ab23438b4573/html5/thumbnails/19.jpg)
It works!
![Page 20: A Tail of Two Containers: How docker made ci great again](https://reader031.vdocuments.us/reader031/viewer/2022021814/58eef64d1a28ab23438b4573/html5/thumbnails/20.jpg)
Jet
Powered by Docker
![Page 21: A Tail of Two Containers: How docker made ci great again](https://reader031.vdocuments.us/reader031/viewer/2022021814/58eef64d1a28ab23438b4573/html5/thumbnails/21.jpg)
Benefits of Docker
• Standardization• Strong tooling and automation support• Parity between dev, test, and prod• BYO Container and OS• Empowered Users
![Page 22: A Tail of Two Containers: How docker made ci great again](https://reader031.vdocuments.us/reader031/viewer/2022021814/58eef64d1a28ab23438b4573/html5/thumbnails/22.jpg)
How we use docker
• Provision Docker resources• Repo-controlled build - zero config• Layer on Codeship features• Docker-centric support and integrations
![Page 23: A Tail of Two Containers: How docker made ci great again](https://reader031.vdocuments.us/reader031/viewer/2022021814/58eef64d1a28ab23438b4573/html5/thumbnails/23.jpg)
How users run builds
• Describe services• Write custom images where needed• Committed to SCM
![Page 24: A Tail of Two Containers: How docker made ci great again](https://reader031.vdocuments.us/reader031/viewer/2022021814/58eef64d1a28ab23438b4573/html5/thumbnails/24.jpg)
How users run builds
![Page 25: A Tail of Two Containers: How docker made ci great again](https://reader031.vdocuments.us/reader031/viewer/2022021814/58eef64d1a28ab23438b4573/html5/thumbnails/25.jpg)
How users run builds
• Define pipeline• References service• Tests, compilation, deployments, notifications• Control parallelism• Control flow• Committed to SCM
![Page 26: A Tail of Two Containers: How docker made ci great again](https://reader031.vdocuments.us/reader031/viewer/2022021814/58eef64d1a28ab23438b4573/html5/thumbnails/26.jpg)
How users run builds
![Page 27: A Tail of Two Containers: How docker made ci great again](https://reader031.vdocuments.us/reader031/viewer/2022021814/58eef64d1a28ab23438b4573/html5/thumbnails/27.jpg)
How users run buids
![Page 28: A Tail of Two Containers: How docker made ci great again](https://reader031.vdocuments.us/reader031/viewer/2022021814/58eef64d1a28ab23438b4573/html5/thumbnails/28.jpg)
How users run builds
Parity through Docker
![Page 29: A Tail of Two Containers: How docker made ci great again](https://reader031.vdocuments.us/reader031/viewer/2022021814/58eef64d1a28ab23438b4573/html5/thumbnails/29.jpg)
Maintain Parity
● Credential & Dockercfg support● Share Image build cache● Tooling● Development environments
![Page 30: A Tail of Two Containers: How docker made ci great again](https://reader031.vdocuments.us/reader031/viewer/2022021814/58eef64d1a28ab23438b4573/html5/thumbnails/30.jpg)
Issues for Developers
• High Barrier to entry• Requires Docker understanding• Requires careful configuration
• More isolation <-> Less visibility
![Page 31: A Tail of Two Containers: How docker made ci great again](https://reader031.vdocuments.us/reader031/viewer/2022021814/58eef64d1a28ab23438b4573/html5/thumbnails/31.jpg)
Issues for Codeship
• Heavily tied to Docker• Upstream changes break our features• Docker bugs are our bugs
![Page 32: A Tail of Two Containers: How docker made ci great again](https://reader031.vdocuments.us/reader031/viewer/2022021814/58eef64d1a28ab23438b4573/html5/thumbnails/32.jpg)
Demo
![Page 33: A Tail of Two Containers: How docker made ci great again](https://reader031.vdocuments.us/reader031/viewer/2022021814/58eef64d1a28ab23438b4573/html5/thumbnails/33.jpg)
The future of CI/CD
Powered by Codeship
![Page 34: A Tail of Two Containers: How docker made ci great again](https://reader031.vdocuments.us/reader031/viewer/2022021814/58eef64d1a28ab23438b4573/html5/thumbnails/34.jpg)
Containers
● Isolation● Portability● Resource control
![Page 35: A Tail of Two Containers: How docker made ci great again](https://reader031.vdocuments.us/reader031/viewer/2022021814/58eef64d1a28ab23438b4573/html5/thumbnails/35.jpg)
Docker
● Phase 1: Docker● Phase 2: ???● Phase 3: Profit
![Page 36: A Tail of Two Containers: How docker made ci great again](https://reader031.vdocuments.us/reader031/viewer/2022021814/58eef64d1a28ab23438b4573/html5/thumbnails/36.jpg)
Docker
● Control○ Automation○ Configurability
● Parity● Lowest common denominator
![Page 37: A Tail of Two Containers: How docker made ci great again](https://reader031.vdocuments.us/reader031/viewer/2022021814/58eef64d1a28ab23438b4573/html5/thumbnails/37.jpg)
CI/CD
● Configuration● Execution● Notification
![Page 38: A Tail of Two Containers: How docker made ci great again](https://reader031.vdocuments.us/reader031/viewer/2022021814/58eef64d1a28ab23438b4573/html5/thumbnails/38.jpg)
CI/CD
● Native● Personal● Instantly available● Intelligent
![Page 39: A Tail of Two Containers: How docker made ci great again](https://reader031.vdocuments.us/reader031/viewer/2022021814/58eef64d1a28ab23438b4573/html5/thumbnails/39.jpg)
Q&A