A Tail of Two Containers: How docker made ci great again
-
Upload
kyle-rames -
Category
Technology
-
view
264 -
download
0
Transcript of A Tail of Two Containers: How docker made ci great again
A Tale of Two Containers
How Docker made CI Great Again
Agenda
● History of Codeship Platform● Checkbot (LXC)● Jet (Docker)● Future of CI/CD
History of Codeship Platform
Checkbot
Checkbot
39K Builds Per Day7.8M Builds Per Year
Jet
Jet
1.5K Builds Per Day115K Builds total
Checkbot
Powered by LXC
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
How we use LXC
• Universal build image• Pre-installed languages, services, libraries
Screenshot of test commands and setup
Checkbot (LXC)
How we use LXC
• Build server scaling group• Assign user to build server
Issues for Developers
• Shared system requirements for every user.• Maintaining parity with development & production
Issues for Codeship
• Many parallel services leave a large footprint• Lack of tooling around LXC
It works!
Jet
Powered by Docker
Benefits of Docker
• Standardization• Strong tooling and automation support• Parity between dev, test, and prod• BYO Container and OS• Empowered Users
How we use docker
• Provision Docker resources• Repo-controlled build - zero config• Layer on Codeship features• Docker-centric support and integrations
How users run builds
• Describe services• Write custom images where needed• Committed to SCM
How users run builds
How users run builds
• Define pipeline• References service• Tests, compilation, deployments, notifications• Control parallelism• Control flow• Committed to SCM
How users run builds
How users run buids
How users run builds
Parity through Docker
Maintain Parity
● Credential & Dockercfg support● Share Image build cache● Tooling● Development environments
Issues for Developers
• High Barrier to entry• Requires Docker understanding• Requires careful configuration
• More isolation <-> Less visibility
Issues for Codeship
• Heavily tied to Docker• Upstream changes break our features• Docker bugs are our bugs
Demo
The future of CI/CD
Powered by Codeship
Containers
● Isolation● Portability● Resource control
Docker
● Phase 1: Docker● Phase 2: ???● Phase 3: Profit
Docker
● Control○ Automation○ Configurability
● Parity● Lowest common denominator
CI/CD
● Configuration● Execution● Notification
CI/CD
● Native● Personal● Instantly available● Intelligent
Q&A