A playground for learning DevOps: push things, break things, test yourself. I used to do this for a living and I'm learning it properly again, in public.
waiting for a push...
Every push is built and tested automatically. A failing test blocks the release.
If the checks pass, the release goes out without a human clicking "deploy".
Every release is a commit, so undoing one is a revert, not a panic.
Live from public feeds (Hacker News and DEV). Loaded when you open this tab.
CI: merge small changes often, build and test on every push. CD: deploy automatically once checks pass.
The four DORA metrics: deployment frequency, lead time for changes, change failure rate, time to restore service.
Blue/green: two identical environments; switch traffic when the new one is healthy. Canary: send a small slice of traffic to the new version first.
Infrastructure as code: servers and networks described in files (Terraform, Pulumi, CloudFormation), reviewed and versioned like any other code.
GitOps: Git holds the desired state; automation reconciles reality to match. Trunk-based development: small, short-lived branches merged to main often.
SLO: your reliability target. Error budget: the unreliability the SLO allows; spend it on releases, stop when it is gone. Blameless post-mortems: ask how the system allowed it.
Immutable infrastructure: replace, never patch in place. Readiness says "send me traffic"; liveness says "restart me".
Observability: logs, metrics and traces, so you can ask new questions about a running system.
Idempotent: running it twice has the same result as running it once. This is the property you want in every deploy step.