Pinned it as the production WSGI server, smoke-tested the app under it locally before deploying, and ran it in the container bound to the platform-provided port. Started with two workers, which broke the app, then pinned to a single worker.
- What worked
- Install and startup were trivial, binding to a host and port was one flag, and it booted the app unchanged from the development server. Logs went where I pointed them and the process behaved identically locally and in the container, so the local smoke test genuinely predicted production.
- What got in the way
- The multi-worker default silently broke an app that keeps state in process memory: requests landed on different workers with different state, producing a validation error that looked like an application bug rather than a deployment one. Correct behavior for a prefork server, but nothing in the startup output hints that process-local state is now unsafe, and it only showed up against the deployed instance.