High Leverage Rails
Introduction
Introduction to this course
Why use Ruby on Rails
Why use SQLite
Ruby on Rails + SQLite
Powering Your App with SQLite
Creating tables
Timestamps
Column types
Typeof
Ruby types
Creating table introduction
Creating table advanced
Inserting data
Updating data
Upserting data
Reading data
Virtual columns
Enums
Introduction to JSON
Indexing JSON
JSON table functions
Building a Modern Rails Application
Creating a new Rails application
Installing Solid Queue
Installing Solid Cache
Installing Solid Cable
Dockerfile
Application overview
Authentication
Base styles
Registration
Scaffolding posts
Polishing posts
Scaffolding comments
Polishing comments
Polishing models
Polishing controllers
Creating new post
Updating post
Reviewing MVP
Tagging posts
Custom tags
Friendly URLs
Full text search
Deploying & Operating Your App
Backups
Check Litestream locally
Verifying backups
Deployment options
Deploying with Hatchbox
Deployment constraints
Vertical scaling
Database access
Migrations
Locked video

Please purchase the course to watch this video.

Video thumbnail
Deploying & Operating Your App
Vertical scaling

Full Course

$
129
$179
USD, one-time fee
This course came at the perfect time. I’ve recently gotten back into Rails after an 18-year hiatus, and this was a perfect refresher and shows just how much you can accomplish with Rails right out of the box.
Garrett Winder
Garrett Winder

Move fast and fix things

Application monitoring that helps developers get it done.

Rails hosting made simple

Deploy apps to servers that you own and control.

Summary

Discover the benefits of vertical scaling for Rails applications by deploying on a single powerful machine. Learn how this approach reduces complexity, leverages high-performance cloud hardware from Hetzner and DigitalOcean, and simplifies scaling while minimizing downtime.

Video Transcript

When you choose to deploy your application to a single machine with a standard operating system and a full file system, you are inherently embracing vertical scaling over horizontal scaling.

It is common advice that when an application needs to scale, you simply add more machines. However, what is often under-discussed is the significant complexity that adding multiple machines brings to your system. The difference in operational complexity when moving from one machine to two machines is substantial, and it only increases as you expand from two to four, four to eight, and beyond.

There are real benefits to running everything on a single, powerful machine. As the demands of your application grow, you can increase the size of that machine instead of introducing additional servers. The largest machines available from cloud providers like Hetzner or Digital Ocean offer terabytes of storage, dozens of CPU cores, and gigabytes of RAM, making vertical scaling a viable long-term strategy.

If your application ever reaches the point where even the biggest machine isn’t enough, that’s a good problem to have—you’re running a highly successful business with the revenue to invest in solving that challenge. However, for most applications, starting with vertical scaling provides maximum efficiency with minimal complexity.

The Simplicity of Vertical Scaling & Scheduled Downtime

By prioritizing vertical scaling, we acknowledge that scheduled downtime is part of the trade-off. When upgrading to a larger machine, you will need to pause the application temporarily. However, this downtime is minimal—often 30 minutes or less—and can be scheduled overnight when few users are online.

The scaling process itself is straightforward:

  1. Put your application in maintenance mode.
  2. Spin up a larger machine and provision it.
  3. Deploy your application to the new machine.
  4. Restore your database backup to the new machine.
  5. Point your domain to the new machine’s IP address.
  6. Take the application out of maintenance mode.

By following this controlled, step-by-step approach, you avoid the stress and complexity of keeping everything running during the transition. Instead, you focus on ensuring a smooth upgrade without risking data loss or service disruption.

Why Vertical Scaling is the Right Choice for Fast Growth

This philosophy aligns with the core principles of this course:

  • Move fast without unnecessary complexity.
  • Leverage simplicity instead of over-engineering.
  • Scale when necessary, but do so intelligently.

For early-stage applications, embracing vertical scaling offers the best combination of speed, reliability, and operational efficiency. Even though it requires occasional downtime, it dramatically simplifies the deployment process, reduces infrastructure overhead, and maximizes developer productivity.

This is why I strongly advocate for vertical scaling—even with its trade-offs—as the most effective strategy for keeping your application lean, scalable, and stress-free.