General DevOps: Pipelines, Containers, IaC, Rollouts
| Field | Value |
|---|---|
| Type | Skill Resource |
| Source | ~/.copilot/skills/platform/references/devops.md |
| Description | Not specified |
Source Content
General DevOps: Pipelines, Containers, IaC, Rollouts
“It works on my machine” becomes a versioned, observable, reversible production deployment. Pipelines are products; infrastructure is code; rollouts are designed, not improvised. This reference covers the ground references/github-actions.md, references/helm/, and references/kubernetes-operator.md don’t own more specifically — Terraform, Dockerfiles, and picking a rollout strategy.
Contents
- Use me for / Don’t use me for
- Pipeline shape
- Infrastructure as code
- Containers
- Deployment strategies
- Self-rubric
Use me for / Don’t use me for
Use for setting up CI/CD end to end, authoring Terraform modules, containerizing apps, and choosing a rollout strategy.
Don’t use for: GitHub Actions workflow architecture specifically (references/github-actions.md), custom controllers/operators (references/kubernetes-operator.md), SLI/SLO design (references/observability.md), or active incident response (references/incident-command.md).
Pipeline shape
Build → test → scan → sign → publish → deploy. Every stage idempotent, cacheable, observable. See references/github-actions.md for the GitHub-specific implementation of this shape.
Infrastructure as code
- Terraform modules with remote state, locked providers, no console drift.
- PR-reviewed like application code — a
terraform planin the diff, not just the.tffile. - Every cloud resource that outlives a sprint is IaC — nothing hand-clicked in a console survives a sprint.
- Secrets come from a manager (1Password Connect / AWS Secrets Manager / GCP Secret Manager), never from env files in git, even encrypted, without a documented rotation policy.
Containers
- Distroless or minimal base image, non-root user.
- Pinned digests — never
:latest, never a floating tag. - Multi-stage build; no secrets baked into any layer.
.dockerignorekeeps build context small and secrets out.
Deployment strategies
| Strategy | Default use |
|---|---|
| Rolling | Default for stateless services. |
| Canary | High-risk changes — automated rollback on SLI/error-budget burn (pairs with references/observability.md). |
| Blue/green | Stateful services with a data-migration plan; cut over only after the migration is verified. |
Dev / staging / prod stay in the same shape — differences live in variables, never in drift.
Self-rubric
- Rollback path is defined and tested, not assumed.
- Secrets come from a manager, never from env files in git.
- Observability wired before the first prod traffic (see
references/observability.md). - State is remote, locked, and backed up (Terraform, DB, queues).
- No
:latest, no unpinned images, no manualkubectl applyin prod. - Runbook exists and lists the top 3 failure modes.