Nachschlagen. Zurück zur Übersicht.
Sammlung aller Anti-Pattern aus dieser Unterlage — als Nachschlagewerk, zur Prüfungsvorbereitung und als Gesprächsgrundlage im Team.
Wie man diese Seite benutzt
Nicht von oben nach unten lesen. Nimm dir eine Spalte vor und frage für jede Zeile: Trifft das bei uns zu? Drei ehrliche Treffer sind ein besseres Ergebnis als vierzig durchgelesene Zeilen.
Als Teamübung: Jeder markiert für sich die fünf zutreffendsten Punkte. Anschließend vergleichen. Die Punkte, die alle markiert haben, sind der Arbeitsvorrat. Die, bei denen die Einschätzungen auseinandergehen, sind das interessantere Gespräch.
| Anti-Pattern | Woran man es erkennt | Kapitel |
|---|---|---|
| Das DevOps-Team | Neue Abteilung, alte Übergaben — drei Silos statt zwei | 01 |
| Werkzeug zuerst | „Wir führen X ein, dann wird alles gut„ | 01 |
| Lokale Optimierung | Ein Team wird schneller, die Durchlaufzeit bleibt gleich | 01 |
| Kultur per Dekret | Werteplakate im Flur, unveränderte Zielvorgaben | 02 |
| Automatisierung ohne Kultur | Pipeline da, aber niemand traut sich auszuliefern | 02 |
| Architektur ohne Organisation | Microservices im Entwurf, zentrale Freigabe im Alltag | 02 |
| Kennzahlen als Druckmittel | Teams werden anhand ihrer Zahlen verglichen | 15 |
| Verbesserung ohne Zeitbudget | „wenn mal Luft ist“ — also nie | 16 |
| Anti-Pattern | Woran man es erkennt | Kapitel |
|---|---|---|
| Langlebige Feature-Branches | Zweige leben Wochen, Zusammenführung schmerzt | 03 |
| Sammelcommits | „Änderungen an 47 Dateien„ | 03 |
Direkt auf main pushen | Kein Branch-Schutz aktiv | 03 |
| Geheimnisse im Repository | Passwörter in der Historie | 03 |
| Build-Ergebnisse eingecheckt | Repository wird groß, ständige Konflikte | 03 |
| Riesige Pull Requests | 2.000 Zeilen, Prüfung wird zur Formalie | 03 |
–force auf gemeinsame Zweige | Fremde Arbeit verschwindet | 03 |
| Anti-Pattern | Woran man es erkennt | Kapitel |
|---|---|---|
| Eistüte statt Pyramide | Viele E2E-Tests, kaum Unit-Tests, 20 Minuten Laufzeit | 04 |
| Abdeckung als Zielvorgabe | Tests ohne Zusicherungen, nur zur Quotenerfüllung | 04 |
| Produktivdaten im Test | Datenbankabzug auf dem Testsystem | 04 |
| Sporadische Fehlschläge geduldet | „Einfach nochmal laufen lassen“ | 04 |
| Manuelle Regressionstests | Eine Liste, die jemand durchklickt | 04 |
| Nur der Gutfall wird getestet | Randfälle brechen erst in Produktion | 04 |
| Tests erst am Projektende | Befunde, wenn ihre Behebung am teuersten ist | 04 |
| Anti-Pattern | Woran man es erkennt | Kapitel |
|---|---|---|
| Nächtlicher Build | Rückmeldung nach 14 Stunden | 05 |
Roter main wird toleriert | Niemand weiß, was funktioniert | 05 |
| Pipeline dauert 45 Minuten | Niemand wartet die Rückmeldung ab | 05 |
| Pipeline zusammengeklickt | Nicht versioniert, nicht reproduzierbar | 07 |
| Pro Umgebung neu bauen | Getestet wurde nie das Produktivartefakt | 06 |
| Konfiguration im Artefakt | Ein Image je Umgebung | 06 |
| Migration ohne Rückwärtskompatibilität | Rollback unmöglich | 06 |
| Kein Rauchtest nach dem Ausrollen | Störung fällt Anwendern zuerst auf | 06 |
latest als Tag | Unklar, was läuft | 07 |
| Geheimnisse im Protokoll | set -x in Skripten mit Zugangsdaten | 07 |
| Fremde Actions auf beweglichen Tags | Lieferkettenrisiko | 07 |
| Dauerhafte Runner mit Rückständen | „Läuft mal, läuft mal nicht„ | 07 |
| Scan ohne Konsequenz | Bericht wird erzeugt und abgelegt | 07 |
| Ausrollen ohne Rückweg | Rollback wurde nie geübt | 08 |
| Canary ohne Messung | Man merkt nichts und schaltet trotzdem weiter | 08 |
| Feature Flags ohne Ablaufdatum | Codepfad-Wildwuchs nach zwei Jahren | 08 |
| Rollback erst nach der Ursachenanalyse | Ausfallzeit verlängert sich | 08 |
| Anti-Pattern | Woran man es erkennt | Kapitel |
|---|---|---|
| Shell-Skripte statt deklarativer Beschreibung | Zweiter Durchlauf richtet Schaden an | 09 |
| Nach dem Automatismus von Hand nachbessern | Drift kehrt sofort zurück | 09 |
| Einmal ausgeführt und nie wieder | Drift wächst unbemerkt | 09 |
| Schneeflockenumgebungen | „Auf der Abnahme läuft es aber“ | 06 |
| Terraform-Zustandsdatei im Git | Geheimnisse öffentlich | 09 |
| Mehrere Dienste in einem Container | Eine VM im Container-Gewand | 10 |
| SSH-Server im Container | Änderungen, die beim Neustart verschwinden | 10 |
| Container als Root | Läuft nicht unter OpenShift, unnötige Angriffsfläche | 10 |
SIGTERM ignoriert | Fehler bei jedem Rolling Update | 10 |
| Kubernetes für drei Container | Aufwand ohne Gegenwert | 10 |
| Änderungen von Hand am Zielsystem | Werden beim nächsten Abgleich überschrieben | 11 |
| Anwendungs- und Konfigurationsrepo vermischt | Keine saubere Freigabe möglich | 11 |
| Anti-Pattern | Woran man es erkennt | Kapitel |
|---|---|---|
| Alarm auf Ursachen statt Symptome | „CPU über 80 %„ weckt jemanden | 12 |
| Durchschnittslatenz | Ausreißer verschwinden im Mittelwert | 12 |
| Alarme ohne Handlungsanweisung | Ratlosigkeit um drei Uhr nachts | 12 |
| Zu viele Alarme | Echte Meldungen gehen unter | 12 |
| Personenbezogene Daten in Logs | Vertragsdaten in der zentralen Sammlung | 12 |
/health prüft auch die Datenbank | Neustartkaskade bei DB-Störung | 12 |
| Erst überwachen, wenn es brennt | Störung ohne Datenlage | 12 |
| Ursachensuche vor Wiederherstellung | Ausfallzeit verlängert sich | 13 |
| Incident Commander tippt mit | Niemand koordiniert | 13 |
| Postmortem endet beim Menschen | Dieselbe Störung kommt wieder | 13 |
| Maßnahmen ohne Termin und Verantwortliche | Werden nie umgesetzt | 13 |
| Runbooks veralten | Bereitschaft steht ohne Anleitung da | 13 |
| Bereitschaft ohne Ausgleich | Erschöpfung, Kündigungen | 13 |
| Anti-Pattern | Woran man es erkennt | Kapitel |
|---|---|---|
| Sicherheitsprüfung erst am Ende | Ausnahmegenehmigungen statt behobener Befunde | 14 |
| Scanner ohne Bearbeitungsverfahren | 1.400 Befunde, die niemand ansieht | 14 |
| Unbefristete Ausnahmen | „Temporär“ seit drei Jahren | 14 |
| Automatische Updates ohne Tests | Fremder Code ungeprüft in Produktion | 14 |
| Kein SBOM | „Sind wir betroffen?„ bleibt tagelang offen | 14 |
| Sicherheit mit Vetorecht ohne Beteiligung | Umgehung, Schattenprozesse | 14 |
| „Regulierung verbietet Automatisierung“ | Stillstand mit falscher Begründung | 17 |
| Freigabe als Formalie | Vier-Augen-Prinzip nur auf dem Papier | 17 |
| Notfalländerung als Regelweg | Ein Drittel aller Änderungen ist „dringend„ | 17 |
| Nachweise nachträglich erzeugen | Lückenhaft und angreifbar | 17 |
| Personenkonten mit Produktionszugriff | Funktionstrennung nicht belegbar | 17 |
| Papierprozess parallel zur Automatik | Doppelter Aufwand, widersprüchliche Stände | 17 |
Wenn nur sieben Punkte bearbeitet werden können, dann diese — sortiert nach Wirkung:
Welches Anti-Pattern auf dieser Seite kennst du aus eigener Erfahrung so gut, dass du es jemandem erklären könntest — und was war damals der Grund, warum es so gemacht wurde?
Der zweite Teil ist der wichtigere. Anti-Pattern entstehen fast nie aus Nachlässigkeit, sondern aus einer Entscheidung, die damals vernünftig war. Wer den ursprünglichen Grund kennt, argumentiert beim Ändern deutlich überzeugender.
Weiter mit Kapitel 19 — Glossar und Literatur