DevOps
Concept · Chapter 13
DevOps
Section titled “DevOps”DevOps combines culture, practices, and tools so development and operations work together across the entire software life cycle. The goal: deliver changes fast, frequently, and with high quality, so the organization can respond to market shifts and gather customer feedback quickly.
Core idea: “shift left”
Section titled “Core idea: “shift left””- Move tasks earlier in the life cycle (leftward on the timeline).
- Originated with testing (test earlier via automation), then generalized.
- Operations should engage the development team from the start, not only at deployment time.
- Continuous integration shifts integration/build left; continuous delivery shifts deployment left.
CALMS — the core values
Section titled “CALMS — the core values”Acronym for DevOps values (originally CAMS; the L was added later):
| Value | Meaning |
|---|---|
| Culture | Collaboration and philosophy come first; break down team silos. |
| Automation | Make repeatable processes run automatically. |
| Lean | Optimize flow and eliminate waste. |
| Measurement | Decide with data, not gut feeling. |
| Sharing | Spread information, tools, and lessons learned. |
Culture
Section titled “Culture”- DevOps is fundamentally a culture: cross-functional teams, collaboration even between historically separated groups.
- Teamwork: dev, ops, and QA communicate and integrate tightly.
- Continuous improvement: learn from faults so they aren’t repeated.
- Accountability: own mistakes, fix issues instead of blaming.
- Quality is everyone’s job: dev shouldn’t outsource defect-finding to QA — especially as release cadence accelerates.
- Empowerment: anyone, any role, can flag issues or stop a mistake.
- Structural/organizational changes (team layout, processes) may be needed to enable the cultural shift.
Automation
Section titled “Automation”- Turn manual, error-prone steps into repeatable automated ones.
- First step: understand current processes, find bottlenecks and defect-prone points, then pick tools.
- Benefits: consistency, accuracy, frees people, runs off-peak, fast feedback on failure.
- Don’t automate blindly: improve a bad process before automating it; weigh ROI, start with highest-value processes.
- Applies well to unit testing, builds, and deployments.
Lean Software Development (LSD) adapts lean manufacturing to reduce waste (anything adding time/effort without business value). Seven principles:
- Eliminate waste (unneeded features, code, delays).
- Build quality in (write and automate tests early).
- Create knowledge (reviews, docs, pairing, training).
- Defer commitment (decide once enough information exists).
- Deliver fast (incremental, reliable, frequent — not reckless).
- Respect people (respectful communication and conflict handling).
- Optimize the whole (remove bottlenecks system-wide).
Measurement
Section titled “Measurement”- You cannot know whether improvements/automation worked if you cannot measure. Data should be transparent and shared with dev, ops, and decision makers.
Sharing
Section titled “Sharing”- Share information, tools, data, and lessons learned so the whole organization improves and depends less on tribal knowledge.
Why DevOps?
Section titled “Why DevOps?”- Deploy faster, more frequently, with fewer failures.
- Non-DevOps approaches don’t focus on continuous delivery, so value reaches customers slower; manual ops work wastes time and money.
- Customers have low tolerance for outages — need fast fault detection and easy fixes to minimize outage count and duration.
- Automating builds eliminates manual-process errors; greater dev/ops cooperation cuts deployment time and raises reliability.
Related
Section titled “Related”Citations
Section titled “Citations”- Software Architect’s Handbook (Packt, 2018), Ch.13 “DevOps”, pp. 995-1005.