Definition: DevOps (a portmanteau of Development and Operations) is a set of practices, tools, and a cultural philosophy that automates and integrates the processes between software development and IT teams. It emphasizes team empowerment, cross-team communication, and technology automation.
The Main Goal: To shorten the systems development life cycle and provide continuous delivery with high software quality.
The Core Pillars (C.A.L.M.S.)
- Culture: Breaking down “silos.” Developers and Operations teams share responsibility for the product from concept to grave (You build it, you run it).
- Automation: Automating manual, repetitive tasks (testing, infrastructure provisioning, deployment) to increase speed and reduce human error.
- Lean: Applying Lean manufacturing principles (minimizing waste, visualizing work in progress, limiting batch sizes).
- Measurement: Using data to track performance (deployment frequency, lead time for changes, time to restore service).
- Sharing: Open feedback loops between teams to share knowledge and solutions.
The DevOps Lifecycle (The Infinity Loop)
DevOps is often represented as an infinite loop comprising these stages:
- Plan: Define capabilities and requirements.
- Code: Write code and conduct code reviews.
- Build: Compile code and package it.
- Test: Automated testing (Unit, Integration, UI).
- Release: Manage, coordinate, and schedule releases.
- Deploy: Release code into production.
- Operate: Manage and maintain the IT infrastructure.
- Monitor: Track performance and user experience (feedback loop back to Plan).
Key Technical Practices
- CI/CD (Continuous Integration/Continuous Deployment): Merging code changes frequently and automatically deploying them to production.
- IaC (Infrastructure as Code): Managing and provisioning infrastructure through code and configuration files rather than physical hardware configuration (e.g., Terraform, Ansible).
- Microservices: Building applications as a collection of small services rather than one monolithic block.
- Monitoring & Logging: Real-time visibility into the health of the application (e.g., Prometheus, Grafana).
Related
- devops-resources — Learning resources
- Python for DevOps — Automation scripting
- docker-overview — Container basics
- docker-to-cloud-run — Hands-on deployment lab
- gcp-learning-path — GCP learning roadmap
- ACE Certification Plan — Full study plan