Show the full cycle: "Deploy to a new directory, run composer install and migrations, swap the symlink, then reload PHP-FPM to clear OPcache. If something breaks, swap the symlink back to the previous release."
Zero-downtime deployment: deploy to a new release directory, run builds and migrations, then atomically swap the symlink (tools: Deployer, Envoyer, Capistrano). OPcache: must be reset after deploy to pick up new code — use opcache_reset() via a web endpoint or PHP-FPM reload. Rollback: symlink the previous release directory. Shared directories for uploads, logs, and sessions persist across releases. Strong candidates discuss: the order of operations (migrate before or after symlink swap depending on backwards compatibility), asset compilation, environment-specific configuration, health check endpoints for load balancers, and the risk of database migration rollbacks. They mention that Composer install must run with --no-dev --optimize-autoloader in production.
Senior operations question. Candidates who deploy by overwriting files in place will cause downtime and partial deployments. Those who understand atomic symlink deploys, OPcache management, and rollback strategies deploy reliably.