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

7.7 KiB
Raw Blame History

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/
  1. 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
  1. 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)
  1. Validation: Konsistente Fehlermeldungen und i18n-Keys (Validation)
  • Feature: Nachrichtenschlüssel mit Platzhaltern; deutsche Default-Texte
  • Akzeptanz: Tests für Regeln, Übersetzungen, Platzhalterersetzung
  1. 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
  1. 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
  1. 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
  1. 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
  1. 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
  1. 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
  1. View-System-Verbesserungen (View)
  • Template-Precompilation/Caching, Komponenten/Slots, CSRF-Helfer, sichere Auto-Escapes
  • Akzeptanz: Render-Performance-Benchmark, XSS-Schutz-Tests
  1. Datenbank-Migrationsmodul (Database)
  • Versionierte Migrationen, Seeders, Rollbacks, Dry-Run, Checksum-Prüfung
  • Akzeptanz: Migrator-Tests, Konflikterkennung, sichere Re-Runs
  1. 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