Files
michaelschiemer/docs/FRAMEWORK_IMPROVEMENTS_ROADMAP.md
Michael Schiemer fc3d7e6357 feat(Production): Complete production deployment infrastructure
- Add comprehensive health check system with multiple endpoints
- Add Prometheus metrics endpoint
- Add production logging configurations (5 strategies)
- Add complete deployment documentation suite:
  * QUICKSTART.md - 30-minute deployment guide
  * DEPLOYMENT_CHECKLIST.md - Printable verification checklist
  * DEPLOYMENT_WORKFLOW.md - Complete deployment lifecycle
  * PRODUCTION_DEPLOYMENT.md - Comprehensive technical reference
  * production-logging.md - Logging configuration guide
  * ANSIBLE_DEPLOYMENT.md - Infrastructure as Code automation
  * README.md - Navigation hub
  * DEPLOYMENT_SUMMARY.md - Executive summary
- Add deployment scripts and automation
- Add DEPLOYMENT_PLAN.md - Concrete plan for immediate deployment
- Update README with production-ready features

All production infrastructure is now complete and ready for deployment.
2025-10-25 19:18:37 +02:00

174 lines
7.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Framework-Verbesserungen: Feature-Vorschläge und Refactoring-Roadmap
Dieses Dokument sammelt konkrete, priorisierte Vorschläge für neue Features im Framework sowie Refactorings. Ziel ist es, Stabilität, Performance, Developer Experience (DX) und Sicherheit weiter zu erhöhen, ohne den bestehenden Stil (DDD, klare Layer) zu brechen.
Inhalt
- Leitprinzipien
- Quick Wins (02 Tage)
- Mittelfristig (310 Tage)
- Größere Vorhaben (>10 Tage)
- Detaillierte Vorschläge je Komponente
- Querschnittsthemen (Code-Qualität, Tests, Security)
- Migrations- und Deprecation-Strategie
Leitprinzipien
- Stabilität zuerst: Abwärtskompatibilität, saubere Deprecation-Pfade
- Sichtbare Wirkung: Quick Wins priorisieren, die Sicherheits- und Performance-Gewinne bringen
- Messbarkeit: Jede Maßnahme mit Akzeptanzkriterien (Tests, Metriken)
- Standards nutzen: PSR (3/6/7/11/14/15/16/17), OpenTelemetry, Problem+JSON
Quick Wins (02 Tage)
1) HTTP-Härtung und Caching-Header (Http)
- Feature: Standard-Response-Header: Strict-Transport-Security, X-Content-Type-Options, X-Frame-Options (konfigurierbar), Referrer-Policy, Permissions-Policy
- Feature: ETag/Last-Modified Support in Responses (konditionelle Requests)
- Akzeptanz: Pest-Tests für Header-Präsenz und ETag-Validierung; Konfiguration via config/
2) Rate Limiting Middleware (Http/Security)
- Token Bucket oder Sliding Window pro IP/Route
- Akzeptanz: Tests für 200/429-Flows, Reset-Logik, Redis-Backend optional
3) Standardisierte Fehlerantworten (Error Handling)
- Feature: RFC 7807 Problem+JSON (application/problem+json) für 4xx/5xx
- Akzeptanz: Tests prüfen Struktur (type, title, status, detail, instance)
4) Validation: Konsistente Fehlermeldungen und i18n-Keys (Validation)
- Feature: Nachrichtenschlüssel mit Platzhaltern; deutsche Default-Texte
- Akzeptanz: Tests für Regeln, Übersetzungen, Platzhalterersetzung
5) PHPStan-Level erhöhen (Code Quality)
- Level schrittweise von aktuellem Baseline-Stand her anheben; neue generische Typen ergänzen
- Akzeptanz: composer phpstan läuft ohne neue Fehler; aktualisierte Baseline minimal
Mittelfristig (310 Tage)
6) PSR-7/15/17-Kompatibilität (Http)
- Adapter-Schicht bereitstellen, sodass Requests/Responses als PSR-Objekte nutzbar sind
- Akzeptanz: Interop-Tests; Middleware-Pipeline kompatibel
7) Cache-Verbesserungen (Cache)
- PSR-16 SimpleCache und PSR-6 Caching Pools
- Stampede-Protection (Early Recompute, Jitter), Tagging, TTL-Strategien
- Akzeptanz: Konkurrierende Zugriffe in Tests, Hit/Miss-Statistiken
8) Datenbank-Transaktions- und Retry-Policy (Database)
- Einheitliche Transaktions-API (begin/commit/rollback) mit dekorierbaren Retries (Exponential Backoff, Deadlock-Erkennung)
- Read/Write-Splitting und Failover-Konfiguration
- Akzeptanz: Tests mit simulierten Deadlocks/Fehlercodes; idempotente Retries
9) Observability (Framework/Observability)
- PSR-3 Logging-Bridge, strukturierte Logs (JSON), Kontextfelder
- OpenTelemetry-Exporter (Trace/Span), Request/DB/Cache-Instrumentierung
- Akzeptanz: Beispiel-Trace sichtbar; Logs enthalten Korrelation-IDs
10) Konsistentes Config-System (Config)
- Typisierte Konfiguration mit Env-Mapping, Defaults, Validatoren
- Akzeptanz: Fehlkonfigurations-Tests, Fallbacks greifen
Größere Vorhaben (>10 Tage)
11) Job/Queue-Subsystem (Infrastructure)
- Abstraktion mit Redis/MariaDB-Backend, Delayed Jobs, Retries, Dead-Letter-Queue, Rate Limits, Worker-Signale (graceful shutdown)
- Akzeptanz: End-to-End-Tests; At-Least-Once-Garantie; Sichtbarkeit im Admin
12) WAF-Regel-Engine (Waf)
- Modular: IP-Reputation, Anomalie-Scoring, Ratelimit je Route, Request-Body-Inspektion (größenbegrenzt), Safe-List/Block-List
- Akzeptanz: Tests für False-Positive-Vermeidung, Audit-Logs, Bypass für Admin-Routen
13) View-System-Verbesserungen (View)
- Template-Precompilation/Caching, Komponenten/Slots, CSRF-Helfer, sichere Auto-Escapes
- Akzeptanz: Render-Performance-Benchmark, XSS-Schutz-Tests
14) Datenbank-Migrationsmodul (Database)
- Versionierte Migrationen, Seeders, Rollbacks, Dry-Run, Checksum-Prüfung
- Akzeptanz: Migrator-Tests, Konflikterkennung, sichere Re-Runs
15) Filesystem-Abstraktion (Infrastructure)
- Lokales FS, S3 kompatibel; Stream-Support, signierte URLs, Limits
- Akzeptanz: Integrationstests mit Mock-Storage; Fehlerpfade
Detaillierte Vorschläge je Komponente
Analytics
- Pageview/Event-API, Sampling, Anonymisierung (IP-Hash), Opt-Out-Cookie
- Akzeptanz: Events werden im Backend gezählt, DSGVO-Optionen konfigurierbar
Cache
- PSR-16/6, Tagging, Stampede-Schutz (probabilistic early refresh), Cache Warmer, Locking
- Redis als Primärbackend, APCu als In-Memory
Console
- Auto-Discovery von Commands per Attribute, Lazy-Loading, Progress/Spinner-UX, Table-Helper
- Akzeptanz: discoverbare Commands ohne manuelle Registrierung
Database
- Verbindungs-Pool (persistent), Read/Write-Splitting, Retry-Policy, Type-Mapping (DateTimeImmutable, Uuid VO)
- Unit-of-Work optional
DateTime
- Clock-Interface ist vorhanden; ergänzen: Freeze/Travel-Helfer im Test-Kit; monotone Timer für Metriken
Http
- Middleware-Pipeline, PSR-Adapter, konditionelle Antworten (304), Streaming-Responses, Content-Negotiation
Random
- CSPRNG-Wrapper (random_bytes) + Testable Generator (existiert): ergänzen: hex(), int(min,max), uuidV7()
Security
- CSP-Builder, SameSite=strict Cookies, Secure/Httponly Defaults, Secrets-Management (Key-Rotation), Passwort-Hash-Policy (argon2id), CSRF-Token Middleware
Validation
- Regel-Objekte, Composable Rules, i18n-Messages, Custom Rule Registry, ValidationResult Value Object
View
- Komponenten/Slots, Layout-Inheritance, Asset-Helper (integrity Attrs), Template-Cache, Escaping-Policies
Waf
- Regel-Engine, Score-basierte Entscheidungen, einstellbare Schweregrade, Beobachtungsmodus vs. Blocken
Observability
- Request-ID, Correlation-ID, Trace-Propagation (W3C), Metriken (Latenzen, Error-Rates), Export nach OTLP
Config
- Typed Config Klassen mit Validierung, sichere Defaults, Secrets via Env/Files
Fehlerbehandlung
- Problem+JSON, saubere Exception-Hierarchie (Domain, Infra, Http), Mapping auf Statuscodes, Fehlerseiten
Queue/Jobs
- Wiederholungen, Dead-Letter, Backoff, deduplizierte Jobs, Schedule/CRON-ähnlich
Filesystem
- Adapter-Interface, Streams, Limits, Prüfsummen, sichere Upload-Pfade, Virenscan-Hook (optional)
Feature Flags
- Boolean und Gradual Rollouts (Percentage, Targeting), Config-gesteuert, In-Memory + Redis Store
Health Checks
- Readiness/Liveness Endpoints, DB/Cache/Ping, Build-Info (Git SHA, Time)
Scheduler
- Cron-DSL, verteilte Locks, Missed-Run-Catching, Backfill
Querschnittsthemen (Code-Qualität, Tests, Security)
- Tests: Pest Coverage für Kernmodule; Integrationstests mit Docker Services (DB/Redis)
- Static Analysis: PHPStan Regeln für generics, Psalm optional; Stricte Types überall
- DX: Makefile/Composer Skripte für häufige Tasks; Vorlagen für neue Module
- Security: Secure Defaults, Threat Modeling pro Modul, Security-Header als Middleware
Migrations- und Deprecation-Strategie
- Semver beachten; @deprecated Tags mit Ersatz und Removal-Version
- Feature-Flags für riskante Änderungen
- Migrationsleitfaden in docs/CHANGES.md mit Codebeispielen
Priorisierung (Kurzfassung)
- Jetzt: (1) Security/HTTP-Header, (2) Rate Limiting, (3) Problem+JSON, (4) Validation i18n
- Als Nächstes: (6) PSR-7/15, (7) Cache, (8) DB-Transaktionen/Retry, (9) Observability, (10) Config
- Großprojekte: (11) Queue, (12) WAF, (14) Migrations, (13) View-Verbesserungen
Akzeptanzkriterien (Beispielschablone je Ticket)
- Was: Kurzbeschreibung
- Warum: Nutzen/Impact
- Done:
- [ ] Pest-Tests decken Erfolg und Fehler ab
- [ ] Dokumentation in docs/ aktualisiert
- [ ] Konfiguration via config/ möglich
- [ ] Kein Bruch bestehender APIs oder Deprecation-Hinweis vorhanden