Partie 15 — Expert : perf, prod, architecture, industrialisation
Public : BookLab est complet, testé et outillé (Parties 1-14). Cette dernière partie « cours » le fait passer à l’échelle production et introduit les patterns d’architecture experte. Objectif de la partie : performance (cache, profiler, FrankenPHP worker), production (déploiement, CI/CD, observabilité, durcissement), et architecture (DDD/CQRS/hexagonal, publier un bundle, multi-tenant).
Ce que vous saurez faire à la fin de cette partie
- Mettre en cache aux bons niveaux (HTTP, application, Redis) et profiler pour trouver les goulots.
- Faire tourner Symfony en FrankenPHP worker mode (perfs proches de Node).
- Déployer proprement (Docker, CI/CD, migrations, workers) et observer en prod (Sentry, OpenTelemetry, logs).
- Durcir l’application (rate limiting, CSP, secrets, checklist OWASP).
- Structurer un gros domaine avec DDD léger / CQRS / hexagonal.
- Créer et publier un bundle Composer réutilisable (angle produit, Partie 17).
- Concevoir une application multi-tenant (un code, plusieurs clients).
Chapitres de cette partie
- Cache : HTTP, composant, Redis — les niveaux de cache, invalidation, tags, sessions Redis.
- Profiler & performance — mesurer avant d’optimiser, Blackfire, requêtes, mémoire.
- FrankenPHP worker mode — bootstrap unique, gains de perf, précautions d’état.
- Déploiement & CI/CD — Docker prod, migrations, workers, stratégies de déploiement.
- Observabilité — logs structurés (Monolog), Sentry, OpenTelemetry, health checks.
- Durcissement production — rate limiting, en-têtes de sécurité, secrets, OWASP appliqué.
- DDD, CQRS & hexagonal — séparer domaine et infrastructure dans un projet Symfony.
- Créer & publier un bundle — extraire, packager, publier sur Packagist.
- Multi-tenant — un code, plusieurs clients : stratégies et isolation.
Prochain chapitre : 15.1 — Cache : HTTP, composant, Redis.