Deploy

Zero-downtime deploys

Roll out new versions behind health checks and roll back in one click.

Deploy logs
  • 10:12:00build 1042 started
  • 10:13:01image pushed in 21s
  • 10:14:023 new instances up
  • 10:15:03health 200 on 3 of 3
  • 10:16:04traffic moved to 1042
  • 10:17:05build 1041 drained
  • 10:18:06build 1042 is live
  • 10:19:07GET /api/orders 200
  • 10:12:08build 1042 started
  • 10:13:09image pushed in 21s
  • 10:14:003 new instances up
  • 10:15:01health 200 on 3 of 3
  • 10:16:02traffic moved to 1042
  • 10:17:03build 1041 drained
  • 10:18:04build 1042 is live
  • 10:19:05GET /api/orders 200

Requests

Ship on a Friday afternoon

New versions only receive traffic once they are healthy, and old versions stay ready until the switch is done.

  • Health-checked rollouts

    Traffic moves only after the new instances pass your health check.

  • Graceful draining

    In-flight requests finish on the old version before it shuts down.

  • One-click rollback

    Return to any previous build instantly, without rebuilding.

  • Pre-deploy commands

    Run migrations or cache warmups before any traffic shifts.

How a deploy rolls out

Every push follows the same safe sequence, from build to live.

  • Git push
  • Build
  • Migrate
  • Release

Configuration

Tune the rollout

Set a health check path, a pre-deploy command, and how long old instances should drain.

  • Custom health check path and timeout
  • Migrations before traffic shifts
  • Rollback from the CLI or dashboard
          
            
                1
                services:
              
                2
                  - type: web
              
                3
                    name: storefront
              
                4
                    healthCheckPath: /healthz
              
                5
                    preDeployCommand: npm run db:migrate
              
                6
                    deploy:
              
                7
                      drainSeconds: 30
              
                8
                      maxSurgePercent: 100
              
          
        

Why deploys break, and how we avoid it

Most outages during a release come from the gap between stopping the old version and starting the new one, or from a new version that starts but cannot serve requests. Zero-downtime deploys close that gap: the old version keeps serving until the new one proves it is healthy.

What happens on every deploy

You do not need to configure anything to get safe rollouts. A default health check runs against every web service, and you can point it at your own endpoint for a stricter check.

  • New instances start before old ones stop
  • Traffic shifts only after health checks pass
  • Failed deploys never receive traffic

Rolling back

Every successful build is kept as a rollback target. Rolling back routes traffic to an existing image, so it takes seconds instead of a full rebuild. Database migrations are not reversed automatically, so keep them backward compatible.

Free tier · No credit card

Push code today. Be live before your coffee cools.

Connect a repository, pick a region, and get a production URL with HTTPS, logs, and autoscaling already switched on.

$ git push origin main

  1. Build34 s
  2. Deploy12 s
  3. Health checks3 s

your-app.example.com

Buy NowTheme Details