Ship Ruby
like it's 2035.
Battle-tested deployment recipes for Ruby, Rails, Sinatra, Hanami, Roda and Padrino — on AWS, Azure, GCP, Heroku, Hatchbox and Ubicloud. Copy the config. Push. Sleep at night.
$ bundle exec kamal deploy Deploying image ghcr.io/you/app:sha-9f3ac1b → aws.ec2.us-east-1.web-01 ✓ healthy → aws.ec2.us-east-1.web-02 ✓ healthy → aws.ec2.us-east-1.jobs-01 ✓ healthy Migrations applied. Assets precompiled. Warm. Deploy finished in 47s.
Every gem in your Gemfile.
The runtime. From YJIT to Ractors — how to package plain Ruby workers and CLIs for the cloud.
The full-stack majestic monolith. Kamal, Solid Queue, Propshaft, and zero-downtime migrations.
Tiny, sharp, and perfect for APIs and internal tools. Ship in a 40-line Dockerfile.
Slice-based architecture with dry-rb underneath. Deploys clean on every runtime.
The fastest way to serve a Ruby request. Threaded Puma configs that actually breathe.
Sinatra grown up. Admin panels and mailers, deployed with care in legacy-friendly stacks.
What ships out of the box.
Pick the framework that matches your appetite — from batteries-included monoliths to razor-thin routing trees.
| Feature | Ruby language | Rails full-stack | Sinatra micro | Hanami modern | Roda routing tree | Padrino classic |
|---|---|---|---|---|---|---|
| Archetype | Runtime & stdlib | Majestic monolith | DSL microframework | Slice architecture | Routing tree | Sinatra++ |
| ORM | None | Active Record | Active Record (opt) | ROM / Sequel | Sequel (opt) | Active Record / Sequel / DataMapper |
| Asset Pipeline | None | Propshaft / Sprockets | None | Hanami Assets | None | Asset helpers |
| Background Jobs | None | Solid Queue / Sidekiq | None | None | None | None |
| Websockets | None | Action Cable | None | None | None | None |
| CLI / Generators | irb / ruby | rails | sinatra | hanami | roda | padrino |
| API Support | Rack | API mode + Jbuilder | Rack-native | Hanami::API | Roda | Rack-native |
| Testing | Minitest | Minitest / RSpec | Rack::Test | RSpec | Rack::Test | RSpec / Minitest |
| Migrations | — | ✓ | — | ✓ | — | ✓ |
| Admin Panel | — | — | — | — | — | ✓ |
| Best For | Scripts, CLIs, workers | SaaS, MVPs, teams | APIs, prototypes, glue | DDD, bounded contexts | High-RPS APIs, edge | Legacy, admin-heavy apps |
Countless clouds. One workflow.
The everything store. Fargate for containers, ECS + ALB for control, Elastic Beanstalk for speed, Aurora for Postgres at scale.
Great when the org is on Entra ID. Container Apps + Postgres Flexible Server is a superb Ruby home.
Cloud Run makes containers feel like Heroku with an autoscaler. Cloud SQL & Memorystore round it out.
Where Rails grew up. Still the fastest zero-to-production path for a solo founder or small team.
Heroku ergonomics on your own hardware. By Chris Oliver of GoRails — Rails-first, gloriously pragmatic.
The open-source AWS alternative — and its control plane is Ruby. Managed Postgres, bare-metal VMs, hosted Actions runners.
Firecracker microVMs close to your users, HA Postgres in the same region, and multi-region Rails reads that actually work.
Git-push deploys with real containers, managed Postgres/Redis, cron jobs, and per-PR preview environments from a single Blueprint.
App Platform for git-push, Droplets + Managed Postgres for full control. Predictable flat pricing, no surprise egress bills.
Ship like a senior.
The checklist every Ruby deployment should pass — before it hits production.
Never commit .env files. Use your cloud's secret manager (AWS Secrets Manager, Azure Key Vault, GCP Secret Manager) and inject at runtime — or rely on Heroku/Hatchbox config vars.
Every app must expose /health and /ready. Orchestrators use them for rolling deploys and auto-recovery. A 200 with a DB ping beats a naive 200 every time.
Deploy the code, then run migrations in a one-off container. Use strong_migrations or hand-written safe scripts. Never migrate and code-change in the same atomic step.
Build once, ship the same image to staging and production. Pin base images, lock Bundler, and bake assets at build time — not at boot.
Logs, metrics, and traces from day one. Structured logging (JSON) into your cloud's sink, plus an APM like Datadog, New Relic, or Honeybadger for exceptions.
Keep the last N image tags. Every deploy should know how to roll back in under 60 seconds — either via your platform's release revert or a container image swap.
Test, build, deploy.
Every provider below has a ready-made workflow for Ruby — lint, test, build the image, push, and deploy.
The default for GitHub repos. Matrix builds across Ruby versions, caching with actions/cache, and deploy hooks via kamal, flyctl, or ssh.
Built-in CI/CD with Docker runners, secret variables, and review apps. Great for teams already inside the GitLab ecosystem.
Parallelism out of the box. Split RSpec suites across containers, use their Ruby orb, and deploy with orb-based orbs.
The original Ruby CI. Still a solid choice for open-source projects with straightforward .travis.yml configs.
Agent-based CI on your own infrastructure. Perfect if you need GPUs, custom networking, or compliance-only runners.
Fast Docker-based CI with first-class Ruby support. Monorepo pipelines and native monorepo support make it great for large codebases.
See everything. Fix it fast.
Cloud-native telemetry and market-leading APM tools — instrumented for Rails, Sinatra, Hanami, Roda, and Padrino from day one.
Metrics, alarms, logs, and X-Ray distributed tracing — all wired to ECS, Fargate, and ALB out of the box.
Application Insights auto-instruments Rails. Log Analytics collects structured logs from every container and VM.
Cloud Trace, Cloud Logging, and Cloud Profiler — integrated with Cloud Run and GKE with zero config.
Built-in dyno metrics, log drains to external tools, and Heroku Exec for runtime inspection — no agent required.
Dashboard-driven server monitoring with Nginx logs, Puma stats, and health checks on your own VPS fleet.
Prometheus-compatible scraping, VM-level metrics, and managed Grafana dashboards on your own hardware.
Full-stack observability with ddtrace auto-instrumentation for Rails, Sinatra, Sidekiq, and custom metrics.
The original Ruby APM. Deep Rails instrumentation, distributed tracing, and NRQL for every query.
Ruby-exception monitoring with uptime checks, performance insights, and cron check-ins — built for Rails devs.
Error tracking and performance monitoring for Ruby. Open-source, self-hostable, and framework-agnostic.
Ruby and Elixir APM built by developers who ship. Exception tracking, performance, and anomaly detection.
N+1 detection, custom instrumentation, and memory bloat tracking — purpose-built for Ruby applications.
Pick your row. Pick your column.
Every combination has a first-class recipe — Dockerfile, IaC snippet, health checks, deployment steps, and a rollback plan.
