Halley / Zero-Downtime Deploys for Small Stacks

Created Fri, 06 Jun 2025 11:12:00 +0000 Modified Sun, 31 Aug 2025 22:17:24 +0000
277 Words

Enterprise loves to brag about zero-downtime.
Blue/green deploys, rolling updates, canary releases.
Most of us are just trying not to nuke the family photo gallery during a rebuild.

But even in a small stack, you can design for continuity.

Start With Service Boundaries

Don’t run everything in one container:

  • Split frontends, backends, and databases
  • Use reverse proxies as stable entry points
  • Decouple so updates hit only one piece at a time

Separation makes disruption local, not global.

Blue/Green Without the Buzzwords

You don’t need Kubernetes for this:

  • Keep two directories or containers: current and next
  • Deploy to next, test in isolation
  • Flip the proxy to next only when it’s ready
  • Keep current around for fast rollback

Simple toggles beat clever pipelines.

Stagger Updates

Rolling updates are just common sense:

  • Update one service at a time
  • Confirm health before moving on
  • Automate checks where possible (HTTP 200, database migrations)

Don’t shotgun the whole stack.

Manage State Carefully

Stateless services are easy. Databases aren’t:

  • Schema migrations should be backwards-compatible where possible
  • Test restores from snapshots before applying changes
  • Accept that DB downtime may still be unavoidable — but plan to minimise it

Most outages come from data, not code.

Automate Recovery Paths

Mistakes happen:

  • Keep rollback scripts ready
  • Backups integrated into deploy flow, not afterthoughts
  • Monitor new deployments aggressively for regressions

A failed deploy is fine. A failed rollback isn’t.

Why It Matters

Zero-downtime isn’t about enterprise bragging rights.
It’s about keeping your services useful while you improve them.

Small stacks need resilience just as much as big ones — maybe more, because you don’t have a team to fix it at 3 a.m.

Design for continuity, not heroics.