We use analytics cookies.We use cookies to analyze site traffic and improve your experience.
Loading...
System Design Masterclass · Devops Cicd
Free preview: the first 2 parts of this 6-part lesson.
Already bought the course? Sign in to read the whole lesson.
this lesson is part of
System Design Masterclass
Unlock this lesson and the 751 other paid lessons
$25 once, by PayPal
See the System Design courseread the rest of this lesson in
System Design Masterclass
Unlock this lesson and the 751 other paid lessons
$25 once, by PayPal
See the System Design coursein Devops Cicd
This lesson is part of the full System Design Masterclass. Unlock it along with 769 other lessons for a one-time payment.
One-time payment by card or PayPal
Get Lifetime AccessOne-time payment: UPI, card or netbanking
Get Lifetime Access18 Foundation lessons are free, no payment needed. Try them now
It is easy and good
“It is really nice and good Please join the course”
Every Monday, a team attempted to integrate a week's worth of work from five developers into the main branch. Merge conflicts, broken tests, incompatible changes. The first half of every Monday was wasted resolving integration issues. Some Mondays, the team could not produce a working build until Wednesday.
Continuous Integration (CI) eliminates integration day. Every developer integrates their work at least daily, ideally multiple times per day. Each integration triggers an automated build and test run. Problems surface within minutes, when the change is small and the context is fresh. A developer who broke the build 10 minutes ago knows exactly which change caused it. A developer who broke the build 5 days ago is debugging a haystack.
Martin Fowler coined "Continuous Integration" in 2000. The DORA State of DevOps reports (2018-2023) consistently find that teams practicing CI deploy 208x more frequently, recover from failures 2,604x faster, and have 7x lower change failure rate than teams that don't.
CI pipeline stages:
| Stage | What Happens | Duration |
|---|---|---|
| Trigger | Push/PR event starts the pipeline | Instant |
| Checkout | Clone repo, restore caches | 5-30 seconds |
| Install | Install dependencies from lock file | 10-60 seconds |
| Lint | Code style, formatting checks | 5-20 seconds |
| Build | Compile, transpile, bundle | 10-120 seconds |
| Unit test | Run fast, isolated tests | 10-60 seconds |
| Integration test | Test component interactions | 30-180 seconds |
| Security scan | Dependency audit, SAST | 15-60 seconds |
| Report | Status check on PR, notifications | Instant |
Target: green in under 10 minutes. If CI takes longer, developers context-switch and lose the feedback loop. Shopify keeps their CI under 5 minutes for 300,000+ tests. Uber runs 60,000+ tests per PR in under 8 minutes through aggressive parallelization.
CI best practices:
When CI is insufficient. CI validates the build and tests. It does not validate that the application works correctly in a production-like environment. That is what continuous delivery adds.