Reflection — An Honest Take 8 min

Honest Take — Before You Begin

Honest reflections on the last mile that nobody teaches well


Kamal is quietly revolutionizing Rails deployment, and most of the industry has not noticed yet. For years, deploying Rails meant either Heroku (expensive, opaque) or Capistrano to a VPS (fragile, manual) or Kubernetes (complex enough to need a dedicated team). Kamal gives you Docker-based deployment to any server with SSH access, zero-downtime rolling deploys, built-in SSL, and a workflow that feels like Heroku but runs on a $10 VPS.

It is not perfect. But it is the first deployment tool that matches the Rails philosophy of making the right thing easy.

Docker for development and Docker for production are two completely different skill sets, and conflating them is a common mistake. Development containers need fast iteration, volume mounts, and debugging tools. Production containers need small images, security hardening, multi-stage builds, and health checks. The Dockerfile that works great in development will produce a bloated, insecure production image.

This module separates the two concerns because they deserve separate attention.

Zero-downtime deploys should not be hard in 2026. And yet they still are. Database migrations that lock tables. Asset compilation that creates mismatches between old and new code. WebSocket connections that drop during deploys. Health checks that pass before the app is actually ready. Each of these has solutions, but the solutions require understanding the interaction between your application, your database, your load balancer, and your deployment tool. It is a systems problem, and systems problems do not have simple answers.

Observability is the difference between "it is down" and "I know exactly why it is down and I am already fixing it." Structured logging, distributed tracing, error tracking, performance monitoring -- these are not luxuries for big companies. They are necessities for anyone running production Rails. The first time you diagnose a production issue in five minutes because your observability stack showed you exactly which query spiked and which worker backed up, you will never go back to tail -f log/production.log.

Conclusion #

Deployment and production operations are where many Rails developers feel least confident, because bootcamps and tutorials end at rails server. This module closes that gap. For anyone targeting staff-level roles, production expertise is not optional -- it is expected.

Predictions #

  • You will adopt Kamal for at least one project and find the simplicity genuinely surprising
  • Multi-stage Docker builds will cut your production image size by 60% or more
  • You will set up structured logging and wonder how you ever debugged production without it
  • Zero-downtime migration strategies will change how you write migrations permanently
  • Production confidence will become one of your strongest selling points in interviews -- most candidates cannot speak to it with real depth
Learning resources 5

That's the free preview. Sign in to continue this course.

Sign in to continue

New here? Make a desk →