WAF-PERF-060 – Load & Stress Testing in CI/CD Pipeline
Beschreibung
Alle produktionskritischen Services MÜSSEN Lasttests mit definierten Akzeptanzkriterien als Bestandteil der CI/CD-Pipeline haben. Deployment in Produktion MUSS durch bestandenen Lasttest freigegeben werden. Performance-Regressionen (> 10% P99-Verschlechterung gegenüber Baseline) MÜSSEN automatisch erkannt und als Deployment-Blocker behandelt werden. Stresstests MÜSSEN mindestens quartalsweise durchgeführt werden, um Kapazitätsgrenzen zu ermitteln.
Rationale
Performance-Probleme, die in der Produktion entdeckt werden, sind 10–100x teurer als in der Vorproduktionsphase. Jedes Deployment ohne Lasttest ist ein Experiment mit Nutzern als Probanden. Auto-Scaling, Connection Pools, Datenbankabfrage-Pläne und Caching-Konfigurationen müssen alle unter realistischer gleichzeitiger Last validiert werden.
Bedrohungskontext
| Risiko | Beschreibung |
|---|---|
Performance-Regression in Produktion |
Neues Feature verursacht 30% P99-Anstieg → entdeckt erst nach Nutzerbeschweren. |
Auto-Scaling-Versagen |
Scaling-Konfiguration greift zu spät oder gar nicht → entdeckt erst beim echten Traffic-Peak. |
Connection-Pool-Erschöpfung |
Concurrent-Load sättigt Connection Pool → entdeckt erst bei Production-Incident. |
Unbekannte Kapazitätsgrenzen |
Kein Stresstest → niemand weiß, bei welcher Last der Service versagt. |
Anforderung
-
Lasttests MÜSSEN automatisch als Deployment-Gate in der CI/CD-Pipeline ausgeführt werden
-
Akzeptanzkriterien MÜSSEN vor dem Test definiert sein: P95 < [SLO-Ziel], Fehlerrate < 0.1%
-
Performance-Regressionen (> 10% P99-Anstieg gegenüber Baseline) MÜSSEN Deployment blockieren
-
Stresstests MÜSSEN quartalsweise für alle kritischen Services durchgeführt werden
Implementierungsanleitung
-
Lasttest-Framework wählen: k6 (developer-friendly, JavaScript), Gatling (Scala, hoher Throughput), Locust (Python)
-
Test-Szenarien definieren: Haupt-User-Journeys testen, nicht nur einzelne Endpoints
-
Akzeptanzkriterien definieren: P95/P99 < SLO-Ziel, Error-Rate < 0.1%, Target-TPS erreicht
-
CI/CD-Integration: Lasttest-Stage nach Build/Unit-Tests, vor Produktion-Deployment
-
Baseline-Management: Testergebnisse als Artefakte speichern; Baseline nach jedem erfolgreichen Test aktualisieren
-
Regression-Check: Automatischer Vergleich gegen Baseline; > 10% P99-Anstieg = Deployment-Stopp
-
Stresstest-Kalender: Quartalsweise manuelle Stresstests mit 2x/5x Peak-Last
Reifegrad-Abstufung
| Level | Bezeichnung | Kriterien |
|---|---|---|
1 |
Keine Lasttests |
Performance unter Last völlig unbekannt; Probleme werden in Produktion entdeckt. |
2 |
Manuelle Lasttests |
Vor großen Releases manuell ausgeführt; keine CI-Integration; keine Akzeptanzkriterien. |
3 |
Automatisch im CI/CD-Gate |
Automatisch nach Build; Akzeptanzkriterien enforced; Deployment blockiert bei Failure. |
4 |
Regression-Detection |
Baseline-Vergleich automatisch; > 10% P99-Anstieg = Block; quartalsweise Stresstests. |
5 |
Continuous Performance Testing |
Permanente Last auf Staging; Chaos Engineering integriert; ML-Anomalie-Detection. |
Terraform Checks
waf-perf-060.tf.aws.codepipeline-performance-stage
Prüft: AWS CodePipeline sollte eine Performance-Test-Stage vor dem Produktions-Deployment haben.
| Compliant | Non-Compliant |
|---|---|
|
|
Remediation: Performance-Test-Stage zwischen Build und Prod-Deployment hinzufügen. CodeBuild-Projekt für k6/Gatling-Ausführung konfigurieren. Pipeline blockiert Prod-Deployment bei Akzeptanzkriterien-Failure.
Evidenz
| Typ | Pflicht | Beschreibung |
|---|---|---|
IaC / Code |
✅ Pflicht |
Lasttest-Skripte mit Akzeptanzkriterien in Versionskontrolle. |
Process |
✅ Pflicht |
CI/CD-Pipeline-Konfiguration mit Lasttest als Deployment-Gate. |
Config |
Optional |
Historische Lasttest-Ergebnisse als Regression-Baseline. |
Governance |
Optional |
Performance-Test-Strategie-Dokument mit Szenarien und Kadenz. |
Regulatorisches Mapping
| Framework | Controls |
|---|---|
ISO/IEC 25010:2011 |
8.3.2 – Performance efficiency; 8.3.2.1 – Time behaviour; 8.3.2.2 – Resource utilisation; 8.3.2.3 – Capacity |
AWS Well-Architected Framework |
Performance Efficiency Pillar – Select the right resource types and sizes |
Azure Well-Architected Framework |
Performance Efficiency – Choose the right resources |
Google Cloud Architecture Framework |
Performance optimization – Right-size your instances |
TOGAF 10 |
ADM Phase B – Business architecture; ADM Phase C – Application architecture |
DORA |
DORA 2024 – Technical practices; DORA 2024 – Performance monitoring |
ISO/IEC 29119 |
4.4.3 – Test design techniques; 4.5.3 – Test execution |
ISO/IEC 12207 |
8.2.2.3 – Design and development of software |
ITIL 4 |
SVS – Service value system; DP – Design principle |
BSI C5:2020 |
OPS-01 – Operational monitoring; OPS-02 – Operational control |
CIS Controls v8 |
CIS 8 – Continuous Vulnerability Management |
NIST SP 800-53 |
RA-1 – Security assessment policy; RA-2 – Security assessment controls |
NIST CSF 2.0 |
DE.CM – Continuous monitoring; DE.AE – Anomaly detection |
FedRAMP |
RA-2, RA-5 (Moderate/High baseline) |
SOC 2 Type II |
CC6.1 – Logical access security software; CC7.1 – Infrastructure and software monitoring |
TISAX |
Information security – Performance monitoring |
ANSSI SecNumCloud |
Domain – Performance monitoring |
BIO |
BIO – Prestatiedoelstellingen |
ENS High |
op.exp.2 – Configuración de seguridad |
UK NCSC CAF |
B4 – System security; B5 – System performance |
CMMC 2.0 |
RA.L2-3.8.1 – Automated monitoring |
IRAP |
ISM – Performance monitoring |
CCCS PBMM |
RA-2 – Security assessment controls; RA-5 – Security assessments |
MAS TRM |
Ch.5 – Technology risk governance |
ISMAP |
Performance monitoring and validation |
FISC |
Technical measures – Performance monitoring |