Zum Inhalt springen

Non-Functional Requirements

Anforderung: Statisch generierte Seiten muessen extrem schnell laden. Metrik: Lighthouse Performance Score Zielwert: > 95 Testmethode: Lighthouse Audit im Chrome DevTools Prioritaet: Must Umsetzung: Astro SSG + Cloudflare Pages CDN + Bildoptimierung zur Buildzeit

Anforderung: CMS muss responsiv sein, auch auf dem Handy. Metrik: Time to Interactive Zielwert: < 3 Sekunden Testmethode: Lighthouse Audit auf CMS-Seiten Prioritaet: Should

Anforderung: Ein Astro-Build pro Kundenwebseite darf nicht zu lange dauern. Metrik: Build-Dauer auf Cloudflare Pages Zielwert: < 2 Minuten fuer eine typische 5-10 Seiten Website Testmethode: Cloudflare Pages Build-Logs Prioritaet: Should


Anforderung: Alle Kundenwebseiten muessen DSGVO-konform sein, ohne Cookie-Consent-Banner. Metrik: Keine personenbezogenen Daten ohne Einwilligung Zielwert: 0 Verstoesse Testmethode: Datenschutz-Audit — keine Third-Party-Requests ohne Opt-in, nur technische Cookies, Self-hosted Fonts, Embeds mit Opt-in-Wall Prioritaet: Must

Anforderung: CMS-Zugang muss sicher authentifiziert sein. Metrik: Authentifizierungsmethode Zielwert: Session-Cookie Auth mit Brute-Force-Schutz (Rate-Limiting), Passwort-Reset via SES Testmethode: Security Review, Penetrationstest Prioritaet: Must

Anforderung: Kundenwebseiten duerfen keine Angriffsflaeche bieten. Metrik: Angriffsvektoren Zielwert: 0 — statische HTML-Dateien, kein serverseitiger Code, kein Login auf der Webseite Testmethode: Architektur-Review Prioritaet: Must

Anforderung: CMS-Server darf nicht direkt aus dem Internet erreichbar sein. Metrik: Offene Ports auf Hetzner VPS Zielwert: 0 offene Ports, Zugang ausschliesslich ueber Cloudflare Tunnel Testmethode: Port-Scan Prioritaet: Must

Anforderung: Kein Kunde darf Daten eines anderen Kunden sehen oder veraendern. Metrik: Tenant-Isolation Zielwert: 0 Cross-Tenant-Zugriffe Testmethode: Automatisierte Tests, Middleware prueft Tenant-ID auf jedem Request Prioritaet: Must


Anforderung: Kundenwebseiten muessen hochverfuegbar sein. Metrik: Uptime Zielwert: 99.9% (Cloudflare Pages/CDN — unabhaengig vom CMS) Testmethode: Uptime-Monitoring im CMS Prioritaet: Must

Anforderung: CMS soll verfuegbar sein, Ausfall darf Kundenwebseiten nicht beeintraechtigen. Metrik: Uptime Hetzner VPS Zielwert: 99.5% (Hetzner SLA) Testmethode: Monitoring Prioritaet: Should Hinweis: CMS-Downtime ist unkritisch — Kundenwebseiten sind statisch und laufen weiter. Kontaktformular-Events und Analytics werden in SQS gepuffert.


Anforderung: Das technische Anlegen einer neuen Kundenwebseite (ohne Design) darf nicht zu lange dauern. Metrik: Zeit bis lauffaehiges Projekt Zielwert: < 4 Stunden Testmethode: Zeitmessung bei Onboarding Prioritaet: Should

Anforderung: Das System muss mit steigender Kundenzahl funktionieren ohne proportional mehr Aufwand. Metrik: Betriebsaufwand pro Kunde nach Onboarding Zielwert: < 1h/Monat pro Kunde Testmethode: Aufwandstracking Prioritaet: Should

Anforderung: Kundendaten muessen regelmaessig gesichert und wiederherstellbar sein. Metrik: Recovery Point Objective (RPO) / Recovery Time Objective (RTO) Zielwert: RPO < 1h (PostgreSQL via WAL-G), RTO < 4h. Medien: R2 + S3-IA Dual-Write (RPO nahe 0) Testmethode: Regelmaessiger Recovery-Test Prioritaet: Must


Anforderung: Kundenwebseiten sollten grundlegende Barrierefreiheit gewaehrleisten. Metrik: WCAG 2.1 Level AA Zielwert: Keine kritischen Violations Testmethode: axe DevTools Audit Prioritaet: Should Hinweis: BFSG/EAA (EU-Richtlinie) betrifft zunehmend auch kleine Webseiten ab 2025


Anforderung: Infrastrukturkosten pro Kunde muessen niedrig bleiben. Metrik: EUR pro Kunde pro Monat Zielwert: < EUR 2/Mo bei 50+ Kunden Testmethode: Monatliche Kostenaufstellung Prioritaet: Must Umsetzung: Cloudflare Free Tier (Pages, DNS, SSL, CDN), PostgreSQL auf VPS ($0), R2 ~$0.15/10GB, SES ~$0.01

Anforderung: Keine Dienste mit unkontrollierbaren Kosten bei Traffic-Spikes. Metrik: Maximale Monatskosten bei 10x Traffic Zielwert: Kosten steigen maximal 2x bei 10x Traffic (dank Cloudflare $0 Egress, SQS-Pufferung) Testmethode: Kostenmodell-Simulation Prioritaet: Should