DevOps i 7 lag: tjekliste til din CLAUDE.md
Claude kan bygge en app på en eftermiddag. De 7 lag her afgør, om den overlever første uge. Guiden har to dele: en tjekliste, du kopierer ind i din CLAUDE.md, og en hook, der tvinger Claude til at køre testene, før den siger, at den er færdig.
De 7 lag på én side
Hvert lag løser et problem, som det forrige ikke kan:
| Lag | Hvad det løser |
|---|---|
| 1. Git (versionsstyring) | Hver ændring er et checkpoint, du kan spole tilbage til. |
| 2. CI/CD (automatiske tests) | Testene kører af sig selv, og fejler de, kommer koden ikke ud. |
| 3. Docker (containere) | Appen pakkes med alt, den skal bruge, så den kører ens overalt. |
| 4. Terraform (infrastruktur som kode) | Serverne står i en fil, ikke i dine klik. |
| 5. Kubernetes (orkestrering) | "Hold 3 kopier kørende", og crasher én, starter en ny. |
| 6. Metrics (overvågning) | Du ser først problemer, når du kender det normale. |
| 7. Error budget (fejlbudget) | 99,9 % oppetid giver ca. 43 minutters nedetid om måneden. Er budgettet brugt, retter du fejl før nye features. |
Trin 1: Kopiér tjeklisten ind i CLAUDE.md
Læg blokken i CLAUDE.md i roden af dit projekt. Claude Code læser filen i starten af hver session.
## DevOps-regler (følg dem i denne rækkefølge)
1. **Git:** Commit efter hver afsluttet ændring med en kort besked om, hvad og hvorfor. Lav aldrig store commits med mange ting i én.
2. **CI/CD:** Kør testene, før du siger, at noget er færdigt. Skriv en test, når du retter en fejl. Rør aldrig en test, bare for at få den til at bestå.
3. **Docker:** Appen skal kunne køre i en container. Hold `Dockerfile` opdateret, når du tilføjer afhængigheder, og lås versionerne.
4. **Terraform / infrastruktur som kode:** Ingen klik i cloud-konsollen. Servere, databaser og netværk beskrives i filer (fx Terraform), som ligger i repoet.
5. **Kubernetes / orkestrering:** Produktion kører med mindst 3 kopier og health checks, så en kopi, der crasher, bliver erstattet af sig selv.
6. **Metrics:** Nye endpoints og jobs skal sende metrics (fejlrate, svartid, CPU). Skriv, hvad "normalt" er, så afvigelser kan ses.
7. **Error budget:** Vores mål er 99,9 % oppetid (= ca. 43 min nedetid om måneden). Er fejlbudgettet brugt, retter vi fejl, før vi sender nye features ud.
Tip: Har dit projekt ikke brug for alle 7 lag endnu (fx Kubernetes til en lille app), så slet dem, der ikke passer. Regler, Claude ikke kan følge, gør kun filen længere.
Trin 2: Lad en hook håndhæve test-reglen
En regel i CLAUDE.md er en instruktion, ikke en garanti. En hook kører altid. Læg dette i .claude/settings.json i dit projekt, så Claude skal have testene igennem, før den må stoppe. Eksemplet er fra Claude Codes hooks-guide:
{
"hooks": {
"Stop": [
{
"hooks": [
{
"type": "agent",
"prompt": "Verify that all unit tests pass. Run the test suite and check the results. $ARGUMENTS",
"timeout": 120
}
]
}
]
}
}
Trin 3: Tjek, at det virker
- Start en ny session i projektet, så Claude læser den nye
CLAUDE.md. - Skriv
/hooksi Claude Code og se, at din Stop-hook er med. - Bed Claude om en lille ændring. Den skal køre testene, før den siger, at den er færdig.
Kilder: Claude Code-docs (memory, hooks-guide), Google SRE-bogen ("Embracing Risk"), Kubernetes-, Docker- og Terraform-docs.