symfony-yoandev-deployment
Deployment
Tier: on demand, then not optional — nothing here applies before there is a production target. Once there is one, the sequence and its order are not negotiable.
One artefact, one sequence, one way to undo it.
The target is a Docker image running FrankenPHP, deployed by replacing containers. Everything below assumes that model, because it is what makes the rest simple: the image is immutable, so "what is running" is a question with an exact answer, and rollback is redeploying a tag.
For running the app locally — including the production-like FrankenPHP check you should
do before shipping — see symfony-yoandev-local-dev. For the CI pipeline that must pass
first, see symfony-yoandev-quality. This skill starts once the image is about to be built, and
stops at where logs and metrics go: what the application emits — channels, log
levels, redaction, alerting, health checks — is symfony-yoandev-observability's. This skill
owns the prod handler configuration; that one owns everything written into it.