Zero-downtime deploys for a small web app

DesignEasy25 min

Your task

Design how a small company deploys its web app without users noticing. The app runs as 4 identical server instances behind a load balancer, uses one Postgres database, and handles about 300 requests a second at peak, some of them file uploads that take up to a minute. The team deploys about 10 times a week. Today every deploy restarts all servers at once and users see errors for about 30 seconds, and a bad deploy last month took an hour to roll back. Describe the health checks, the rollout process, how database schema changes fit in, and how a bad release is detected and rolled back.

It covers

  • Health checks
  • Rolling deploys
  • Schema migrations