v1.0 — countless frameworks · countless clouds · zero fluff

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.

~/apps/hotwire-monolith — zsh
$ 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.
// compare

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
ArchetypeRuntime & stdlibMajestic monolithDSL microframeworkSlice architectureRouting treeSinatra++
ORMNoneActive RecordActive Record (opt)ROM / SequelSequel (opt)Active Record / Sequel / DataMapper
Asset PipelineNonePropshaft / SprocketsNoneHanami AssetsNoneAsset helpers
Background JobsNoneSolid Queue / SidekiqNoneNoneNoneNone
WebsocketsNoneAction CableNoneNoneNoneNone
CLI / Generatorsirb / rubyrailssinatrahanamirodapadrino
API SupportRackAPI mode + JbuilderRack-nativeHanami::APIRodaRack-native
TestingMinitestMinitest / RSpecRack::TestRSpecRack::TestRSpec / Minitest
Migrations
Admin Panel
Best ForScripts, CLIs, workersSaaS, MVPs, teamsAPIs, prototypes, glueDDD, bounded contextsHigh-RPS APIs, edgeLegacy, admin-heavy apps
// clouds

Countless clouds. One workflow.

global · 33 regions
Amazon Web Services
hyperscale

The everything store. Fargate for containers, ECS + ALB for control, Elastic Beanstalk for speed, Aurora for Postgres at scale.

ECSFargateElastic BeanstalkAuroraS3CloudFrontElastiCache
global · 60+ regions
Microsoft Azure
enterprise

Great when the org is on Entra ID. Container Apps + Postgres Flexible Server is a superb Ruby home.

Container AppsAKSPG FlexibleFront DoorKey Vault
global · 40+ regions
Google Cloud
developer-first

Cloud Run makes containers feel like Heroku with an autoscaler. Cloud SQL & Memorystore round it out.

Cloud RunGKECloud SQLMemorystoreArtifact Registry
us · eu · frankfurt
Heroku
PaaS

Where Rails grew up. Still the fastest zero-to-production path for a solo founder or small team.

DynosPostgresRedisPipelinesReview Apps
any VPS · DO · Hetzner · AWS
Hatchbox.io
managed VPS

Heroku ergonomics on your own hardware. By Chris Oliver of GoRails — Rails-first, gloriously pragmatic.

NginxPumaPostgresRedisSidekiqLet's Encrypt
eu · na · self-host
Ubicloud
open-source

The open-source AWS alternative — and its control plane is Ruby. Managed Postgres, bare-metal VMs, hosted Actions runners.

Managed PGVMsLoad BalancersGH Runners
global · 30+ regions
Fly.io
edge microVMs

Firecracker microVMs close to your users, HA Postgres in the same region, and multi-region Rails reads that actually work.

MachinesPostgresVolumes6PNFly Replay
us · eu · sg
Render
modern PaaS

Git-push deploys with real containers, managed Postgres/Redis, cron jobs, and per-PR preview environments from a single Blueprint.

Web ServicesWorkersCronPostgresRedisPreviews
15 datacenters
DigitalOcean
developer cloud

App Platform for git-push, Droplets + Managed Postgres for full control. Predictable flat pricing, no surprise egress bills.

App PlatformDropletsManaged PGSpacesLoad Balancers
// best practices

Ship like a senior.

The checklist every Ruby deployment should pass — before it hits production.

🔒
Secrets at Runtime

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.

🧪
Health Checks First

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.

🗄️
Zero-Downtime Migrations

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.

📦
Immutable Images

Build once, ship the same image to staging and production. Pin base images, lock Bundler, and bake assets at build time — not at boot.

📈
Observability Stack

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.

One-Click Rollback

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.

// ci / cd

Test, build, deploy.

Every provider below has a ready-made workflow for Ruby — lint, test, build the image, push, and deploy.

// native
GitHub Actions

The default for GitHub repos. Matrix builds across Ruby versions, caching with actions/cache, and deploy hooks via kamal, flyctl, or ssh.

Matrix buildsOIDC authReusable workflowsDependabot
// all-in-one
GitLab CI

Built-in CI/CD with Docker runners, secret variables, and review apps. Great for teams already inside the GitLab ecosystem.

Auto DevOpsReview appsContainer registrySAST / DAST
// speed
CircleCI

Parallelism out of the box. Split RSpec suites across containers, use their Ruby orb, and deploy with orb-based orbs.

Docker layer cachingParallelismOrbsInsights
// classic
Travis CI

The original Ruby CI. Still a solid choice for open-source projects with straightforward .travis.yml configs.

Multi-OS buildsCron jobsOpen-source friendlyFast Linux
// hybrid
Buildkite

Agent-based CI on your own infrastructure. Perfect if you need GPUs, custom networking, or compliance-only runners.

Self-hosted agentsDynamic pipelinesPluginsAudit logs
// developer-first
Semaphore

Fast Docker-based CI with first-class Ruby support. Monorepo pipelines and native monorepo support make it great for large codebases.

Docker-nativeMonorepoCachingDebug via SSH
// monitoring

See everything. Fix it fast.

Cloud-native telemetry and market-leading APM tools — instrumented for Rails, Sinatra, Hanami, Roda, and Padrino from day one.

// aws
AWS CloudWatch

Metrics, alarms, logs, and X-Ray distributed tracing — all wired to ECS, Fargate, and ALB out of the box.

CloudWatchX-RayCloudTrailSynthetics
// azure
Azure Monitor

Application Insights auto-instruments Rails. Log Analytics collects structured logs from every container and VM.

App InsightsLog AnalyticsAlertsDashboards
// gcp
Google Cloud Monitoring

Cloud Trace, Cloud Logging, and Cloud Profiler — integrated with Cloud Run and GKE with zero config.

Cloud TraceCloud LoggingProfilerUptime Checks
// heroku
Heroku Metrics

Built-in dyno metrics, log drains to external tools, and Heroku Exec for runtime inspection — no agent required.

DynosLog DrainsMetricsExec
// hatchbox
Hatchbox

Dashboard-driven server monitoring with Nginx logs, Puma stats, and health checks on your own VPS fleet.

DashboardLog ForwardingSSLHealth
// ubicloud
Ubicloud

Prometheus-compatible scraping, VM-level metrics, and managed Grafana dashboards on your own hardware.

PrometheusGrafanaVM MetricsSelf-hosted
// apm
Datadog

Full-stack observability with ddtrace auto-instrumentation for Rails, Sinatra, Sidekiq, and custom metrics.

APMRUMInfraLogs
// apm
New Relic

The original Ruby APM. Deep Rails instrumentation, distributed tracing, and NRQL for every query.

APMTracingNRQLAlerts
// apm
Honeybadger

Ruby-exception monitoring with uptime checks, performance insights, and cron check-ins — built for Rails devs.

ExceptionsUptimeCheck-insBreadcrumbs
// apm
Sentry

Error tracking and performance monitoring for Ruby. Open-source, self-hostable, and framework-agnostic.

ErrorsPerformanceReplaysSelf-hosted
// apm
AppSignal

Ruby and Elixir APM built by developers who ship. Exception tracking, performance, and anomaly detection.

Ruby-firstPerformanceHostAnomaly
// apm
Scout APM

N+1 detection, custom instrumentation, and memory bloat tracking — purpose-built for Ruby applications.

N+1 DetectionMemoryCustomGit blame