Deployments
Revisions, readiness checks, rollouts without downtime, failures and rolling back.
Save, then deploy
Changing a service's settings saves a new revision; it does not touch what is running. The service panel shows the saved revision and the running one separately. Deploy to put the saved revision live, and follow it in Deployments and Logs.
Readiness check
A new version receives traffic only once it is ready. For a service with a port, choose the Readiness check in its settings:
| Check | Ready when |
|---|---|
| Process | The container has started. |
| TCP | The port accepts connections. |
| HTTP | A GET on the Health path answers with a status from 200 to 399. |
The check runs every 5 seconds. The health path starts with / and uses letters, digits, /, _ and -, up to
128 characters after the slash. A service built from GitHub checks its port by default.
Use an HTTP check for web apps
A TCP check passes as soon as the port opens, which can be before your app finishes starting. A path such as
/healthz that answers only when the app is ready gives deploys without errors.
How a deploy rolls out
- Raseef starts one replica of the new version next to the running ones.
- When it passes its readiness check, traffic moves to it and an old replica stops, one at a time.
- An old replica is taken out of traffic, then waits 5 seconds before it is asked to stop, so the requests it already has can finish.
Users keep being served during the whole change.
Services with a volume restart
A volume can be used by one replica only, so a service with a volume stops the old replica before it starts the new one. Expect a short interruption on each deploy.
When a deploy fails
A deploy fails when the new version:
- keeps crashing (it restarts three times),
- cannot be pulled or started (a wrong image, for example),
- is cancelled before it is ready.
When it fails, the version that was running keeps running. If nothing was running, the service stops.
If the platform has no room for the new version, the deploy waits for capacity for up to 15 minutes, then fails with
no_capacity.
If Raseef cannot tell how a deploy ended, it checks again three times, waiting longer each time, then pauses with Outcome uncertain — automatic retries paused. Reconcile to check. Choose Reconcile to check again.
Roll back
Roll back in Deployments creates a new deployment that uses a previous revision. The service must be running, and the revision must be within your plan's rollback window.
Rolling back restores the service's settings and image. It does not restore data in a database or a volume.
Restart
Restart deploys the running revision again. A container that exits on its own is restarted automatically.
Start command
Custom Start Command in settings replaces the image's command. It is one line, up to 2,000 characters, run with
/bin/sh -c:
node dist/main.js --port "$PORT"Template services keep their own command.