DevOps Overview

DevOps bridges development and operations — combining culture, practices, and tools to deliver software faster, more reliably, and at scale.

What is DevOps?

DevOps is a set of practices that combines software development (Dev) and IT operations (Ops) to shorten the systems development lifecycle and deliver high-quality software continuously. It emphasizes collaboration, automation, measurement, and sharing (CAMS framework).

At its core, DevOps breaks down the silos between development, QA, and operations teams — enabling organizations to build, test, and release software faster and more reliably.

The CAMS Framework

Culture

Shared responsibility, collaboration, and trust between Dev and Ops. Everyone owns the product — from code to production.

Automation

Automate repetitive tasks: builds, tests, deployments, infrastructure provisioning, and configuration management.

Measurement

Measure everything: deployment frequency, lead time, MTTR, change failure rate. Data drives decisions.

Sharing

Share knowledge, tools, processes, and post-mortems across teams. Build a learning culture.

DevOps Lifecycle

Plan

Define features, user stories, and sprint goals

Code

Write, review, and version-control source code

Build

Compile, package, and create artifacts

Test

Unit, integration, security, and performance tests

Release

Approve, package, and prepare for deployment

Deploy

Push to staging and production environments

Operate

Manage infrastructure, scaling, and incidents

Monitor

Observe metrics, logs, traces, and alerts

Key DevOps Metrics (DORA)

The DORA (DevOps Research and Assessment) metrics measure software delivery performance:

Deployment Frequency

How often do you deploy to production? Elite teams deploy multiple times per day. Aim for: on-demand.

Lead Time for Changes

Time from code commit to running in production. Elite teams achieve <1 hour. Aim for: hours, not weeks.

Mean Time to Restore (MTTR)

How long to recover from a production failure. Elite teams recover in <1 hour. Aim for: <1 hour.

Change Failure Rate

Percentage of deployments causing production failures. Elite teams see <5%. Aim for: 0–5%.

DevOps Toolchain

Version Control

  • Git — Distributed version control (industry standard)
  • GitHub / GitLab / Bitbucket — Hosted Git with CI/CD integration

CI/CD

  • GitHub Actions — Native CI/CD for GitHub repositories
  • GitLab CI — Built-in CI/CD with powerful pipeline features
  • Jenkins — Highly extensible open-source CI/CD server
  • ArgoCD — GitOps-based continuous delivery for Kubernetes
  • Tekton — Cloud-native Kubernetes-native CI/CD framework

Infrastructure as Code

  • Terraform — Declarative IaC for multi-cloud provisioning
  • Ansible — Agentless configuration management and automation
  • Pulumi — IaC using general-purpose programming languages

Containerization & Orchestration

  • Docker — Build and run containerized applications
  • Kubernetes — Container orchestration at scale
  • Helm — Kubernetes package manager

Monitoring & Observability

  • Prometheus — Metrics collection and alerting
  • Grafana — Metrics visualization and dashboards
  • ELK Stack — Elasticsearch, Logstash, Kibana for log management
  • Datadog / New Relic — Full-stack observability SaaS platforms
  • Jaeger / Zipkin — Distributed tracing

Security (DevSecOps)

  • Trivy / Snyk — Container and dependency vulnerability scanning
  • SOPS / Vault — Secrets management
  • OPA / Kyverno — Policy enforcement
  • SonarQube — Static code analysis and quality gates

GitOps

GitOps is a modern operational framework that takes DevOps best practices for application development and applies them to infrastructure automation. The core principle: Git is the single source of truth.

GitOps Principles

  • The entire system is described declaratively in Git
  • Git is the single source of truth for desired state
  • Approved changes are automatically applied to the system
  • Agents ensure correctness and alert on divergence
# GitOps workflow with ArgoCD

# 1. Developer pushes code
git commit -m "feat: add new endpoint"
git push origin main

# 2. CI pipeline builds and pushes image
# GitHub Actions / GitLab CI automatically:
#   - Runs tests
#   - Builds Docker image
#   - Pushes to container registry
#   - Updates image tag in Helm values / Kustomize overlay

# 3. ArgoCD detects drift and syncs
# ArgoCD watches the Git repo and applies changes to K8s

# Manual sync
argocd app sync myapp

# Check sync status
argocd app get myapp

Infrastructure as Code (IaC) Principles

  • Declarative — Define desired state, not step-by-step instructions
  • Idempotent — Running the same code multiple times yields the same result
  • Version-controlled — All infrastructure changes tracked in Git
  • Tested — Infrastructure code has automated tests (Terratest, Molecule)
  • Modular — Reusable modules and roles for common patterns
  • Self-documenting — Code and comments explain intent
💡 Golden Rule: If you did it manually, you did it wrong. Automate everything — from infrastructure provisioning to application deployment to runbook execution.

Next Steps