Introduction to DevOps
DevOps blends software development (Dev) and IT operations (Ops) to shorten the systems development life cycle and deliver high‑quality software continuously.
- Culture and collaboration
- Automation fundamentals
- Key metrics: lead time, MTTR, deployment frequency
Continuous Integration (CI)
CI automates the testing of code changes, ensuring that new commits integrate smoothly.
# .github/workflows/ci.yml
name: CI
on: [push, pull_request]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Set up Node
uses: actions/setup-node@v3
with:
node-version: '20'
- run: npm ci
- run: npm test
Continuous Delivery & Deployment (CD)
CD pushes validated code to staging or production automatically.
# deploy.yml
name: Deploy
on:
push:
branches: [main]
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Deploy to Kubernetes
uses: Azure/k8s-deploy@v4
with:
manifests: |
k8s/deployment.yaml
k8s/service.yaml
Infrastructure as Code (IaC)
Define and provision infrastructure using declarative code.
# terraform/main.tf
provider "aws" {
region = "us-east-1"
}
resource "aws_s3_bucket" "devops_bucket" {
bucket = "devops-tutorial-bucket"
acl = "private"
}
Monitoring & Observability
Collect metrics, logs, and traces to maintain system reliability.
- Prometheus & Grafana for metrics
- ELK stack for logs
- Jaeger for distributed tracing