Culture and set of practices that unify development (Dev) and operations (Ops) to deliver software with greater speed, quality, and reliability. It's not a role — it's a way of working.
DevOps is a cultural and technical movement that eliminates silos between development and operations. It was born from frustration with the traditional model where Dev "throws code over the wall" and Ops "keeps it alive" — with no shared responsibility.
In the traditional model:
DevOps aligns incentives: the team that builds the software is responsible for operating it.
Fundamental principles from The Phoenix Project:
Optimize the flow of work from development to production:
Create fast feedback loops:
Culture of experimentation and improvement:
Model for evaluating DevOps adoption:
| Pillar | Meaning | Example |
|---|---|---|
| Culture | Collaboration over silos | Cross-functional teams |
| Automation | Eliminate manual work | CI/CD, IaC, auto-scaling |
| Lean | Eliminate waste | Limit WIP, reduce batch size |
| Measurement | Measure everything | DORA metrics, SLOs, error budgets |
| Sharing | Share knowledge | Post-mortems, runbooks, tech talks |
Define infrastructure in versioned files:
# Terraform
resource "aws_lambda_function" "api" {
function_name = "api-handler"
runtime = "nodejs20.x"
handler = "index.handler"
filename = "lambda.zip"
}Benefits: reproducibility, auditing, rollback, review in PRs.
The three pillars:
If the error budget is exhausted, freeze features and prioritize stability.
After every incident:
Cardinal rule: blame the system, not the people.
Deliberately inject failures to discover weaknesses:
| Aspect | DevOps | SRE |
|---|---|---|
| Origin | Community (2009) | Google (2003) |
| Focus | Culture + practices | Reliability engineering |
| Definition | Movement | Role/discipline |
| Relationship | Philosophy | DevOps implementation with engineering |
As Ben Treynor (SRE creator at Google) said: "SRE is what happens when you ask a software engineer to design an operations team."
The natural evolution of DevOps in large organizations:
The platform abstracts complexity: the developer does git push and the platform handles build, test, deploy, monitoring.
DevOps is not a role or a tool — it is a cultural shift that removes the barrier between those who write code and those who operate it. Organizations that adopt it effectively deliver software faster, with fewer failures, and with more agile recovery. Those that treat it as a job title miss the point.
Continuous Integration and Continuous Delivery/Deployment — practices that automate code integration, testing, and delivery to production. Foundation of modern software engineering.
GitHub's native CI/CD platform. Declarative YAML workflows that automate build, test, deploy, and any development lifecycle task — directly from the repository.
Practice of defining and managing infrastructure through versioned configuration files instead of manual processes. Foundation of modern operations automation.
Discipline applying software engineering principles to infrastructure operations, focusing on creating scalable and highly reliable systems.
Discipline designing and building internal self-service platforms so development teams can deploy and operate applications autonomously.
Structured frameworks for progressively assessing and improving organizational capabilities, from CMMI to modern approaches like DORA and simplified models.
Integration of security practices throughout the software development lifecycle, automating security controls in the CI/CD pipeline.
Set of technical and cultural practices that implement DevOps principles — from Infrastructure as Code to blameless post-mortems. The "how" behind the philosophy.
Development approach leveraging cloud advantages: containers, microservices, immutable infrastructure, and declarative automation for scalable and resilient systems.