DevOps

🔄 CI/CD Pipelines & Automation

Continuous Integration (CI) and Continuous Delivery/Deployment (CD) are engineering practices that enable teams to deliver software faster, with greater confidence and repeatability. At Maxi's Computers, every production deployment is automated through pipelines.

CI/CD Principles

  • Build once, deploy everywhere — A single artifact (Docker image, binary) is promoted across environments. Never rebuild from source for staging or prod.
  • Fast feedback — The CI pipeline must complete in under 10 minutes. Developers should know if their change breaks the build immediately.
  • Everything as code — Pipeline definitions, environment configs, and deployment manifests live in version control.
  • Immutable deployments — Never patch running instances. Replace them with new ones built from the artifact.
  • Automated quality gates — Tests, security scans, and linting must all pass before promotion is allowed.

Pipeline Stages

Our standard pipeline for a containerized service consists of 5 stages:

yaml

## Environment Promotion

Artifacts flow through environments using image tags. The same Docker image is deployed to each environment — only the configuration changes:

- **dev** — Auto-deploys on every PR merge. Debug logging enabled. Mocked external services.

- **staging** — Production-identical infrastructure at 20% scale. Integration tests run post-deploy.

- **production** — Requires manual approval in GitHub. Canary or blue-green deployment.

## Deployment Strategies

- **Rolling Update** — Default Kubernetes strategy. Gradually replaces old pods with new ones. Zero downtime. Risk: mixed versions temporarily serving traffic.

- **Blue-Green** — Two identical environments (blue=active, green=new). Traffic switches instantly via DNS or load balancer. Instant rollback capability.

- **Canary** — Route a small percentage of traffic (1–10%) to the new version. Monitor metrics. Gradually increase if stable. Best for risk mitigation on critical paths.

- **Feature Flags** — Deploy code without activating features. Enable for specific users or segments via LaunchDarkly or custom toggles.

## GitOps with ArgoCD

Rollback Strategies

Rollback SLO At Maxi's Computers, we target a maximum rollback time of 5 minutes for any production incident caused by a bad deployment.

```bash