min_replica < max_replica, so both deployments scale up to meet traffic demand as it shifts between them.
Use rolling deployments when you need zero-downtime updates with the ability to pause, cancel, or force-complete the deployment at any point.
Rolling deployments are not supported for Chains. This feature is available for individual model deployments only.
How rolling deployments work
A rolling deployment follows a repeating three-step cycle:- Scale up candidate deployment replicas by the configured percentage.
- Shift traffic proportionally to match the new replica ratio.
- Scale down the previous deployment replicas by the same percentage.
RELEASING when it starts, sits in RAMPING_UP while replicas scale and traffic shifts, can pause as PAUSED, and lands at SUCCEEDED once the candidate serves all traffic. Select any status to freeze the simulation on that stage, then select it again to resume.
Configure rolling_deploy_config
Configure rolling_deploy_config
Adjust the values and choose Apply to restart the simulation with your configuration.
Provisioning modes
Rolling deployments support two mutually exclusive provisioning modes:max_surge_percent: Scales up candidate replicas before scaling down previous replicas.max_unavailable_percent: Scales down previous replicas before scaling up candidate replicas.
0.
Enable rolling deployments
Rolling deployments are disabled by default. Enable them per environment in its promotion settings:- UI
- REST API
To enable rolling deployments:
- Sign in to your workspace at app.baseten.co and choose Dedicated Inference in the sidebar.
- Select your model.
- On the model’s overview, open the environment card’s ⋯ menu.
- Choose Configure promotion.
- Turn on Rolling deploys.
- Choose Update to apply the changes.
Configuration reference
Configure rolling deployments through therolling_deploy_config object in the environment’s promotion_settings.
Percentage of additional replicas to provision during each step. Set to
0 to use max unavailable mode instead.Range: 0-50Percentage of replicas that can be unavailable during each step. Set to
0 to use max surge mode instead.Range: 0-50Seconds to wait after each traffic shift before proceeding to the next step. Use this to monitor metrics between steps.Range: 0-3600
Percentage of additional replicas to pre-provision on the current deployment before the rolling deployment starts. Useful for environments without autoscaling (
min_replica == max_replica) or as a buffer for anticipated traffic spikes during the rollout.Range: 0-500promotion_settings level:
Enables rolling deployments for the environment.
Deployment statuses
Thein_progress_promotion field on the environment detail endpoint tracks the current state of a rolling deployment. It’s separate from each deployment’s own status.
The
in_progress_promotion object also includes percent_traffic_to_new_version, which reports the current percentage of traffic routed to the candidate deployment.
To watch metrics through a rollout, use the
environment metrics endpoint
(beta): it aggregates both deployments, and in series mode it splits the
window at each promotion so every point reflects the deployments serving at
that time.
Deployment control actions
Pause, resume, and force roll forward act on the rolling deployment between steps, not immediately. Replica changes already in progress finish before the action takes effect, so the rolling deployment can keep scaling for a short time after you trigger the action. For example, if the candidate deployment is at 20% traffic and has just been told to scale from 2 to 4 replicas, choosing Pause lets the candidate finish scaling to 4 replicas. The traffic split stays pinned at 20% until you resume.Pause
Pause the rolling deployment to inspect metrics or logs before proceeding:- UI
- REST API
To pause a rolling deployment:
- Sign in to your workspace at app.baseten.co and choose Dedicated Inference in the sidebar.
- Select your model.
- On the model’s overview, find the environment’s promotion banner.
- Choose Pause.
Resume
Resume a paused rolling deployment from where it left off:- UI
- REST API
To resume a rolling deployment:
- Sign in to your workspace at app.baseten.co and choose Dedicated Inference in the sidebar.
- Select your model.
- On the model’s overview, find the environment’s promotion banner.
- Choose Resume.
Cancel
Gracefully cancel the rolling deployment. Traffic ramps back to the previous deployment and candidate replicas scale down:- UI
- REST API
To cancel a rolling deployment:
- Sign in to your workspace at app.baseten.co and choose Dedicated Inference in the sidebar.
- Select your model.
- On the model’s overview, find the environment’s promotion banner.
- Choose Cancel.
status of CANCELED (instant cancel for non-rolling deployments) or RAMPING_DOWN (graceful rollback for rolling deployments).
Force cancel
Immediately cancel the rolling deployment and return all traffic to the previous deployment when you can’t wait for the graceful ramp-down. To force cancel a rolling deployment:Force roll forward
Immediately complete the rolling deployment, shifting all traffic to the candidate deployment. This works even while the deployment is rolling back:- UI
- REST API
To force roll forward:
- Sign in to your workspace at app.baseten.co and choose Dedicated Inference in the sidebar.
- Select your model.
- On the model’s overview, find the environment’s promotion banner.
- Choose Force promote.
Autoscaling during rolling deployments
For environments configured with autoscaling (min_replica < max_replica), Baseten continues to scale your deployment during a rolling deployment to meet traffic demand. Both the previous and candidate deployments scale up based on combined demand, and new capacity is distributed proportionally to the current traffic split. When demand drops, Baseten scales down both deployments the same way, removing replicas split by the current traffic ratio without changing the traffic split itself.
For example, with traffic split 60/40 between the previous and candidate deployments, an additional 10 replicas of demand provisions 6 replicas to the previous deployment and 4 to the candidate. A drop of 10 replicas removes 6 from the previous deployment and 4 from the candidate the same way.
A few constraints apply during the rolling deployment:
- Autoscaling adds and removes replicas throughout the rollout to track combined demand. Each deployment that is still part of the rollout keeps at least one replica, and the combined replica count stays within the environment’s
min_replicaandmax_replica. - Capacity management continues during a
PAUSEDrolling deployment. Pausing stops the traffic shift, not capacity management. If demand changes while paused, both deployments still scale up or down.
Dynamic replica admission
Rolling deployments adapt to candidate replicas as they become ready. Rather than assuming a full batch of replicas will be available immediately, Baseten adjusts the rollout based on live capacity. For example, with 100 previous replicas andmax_unavailable_percent set to 25, Baseten requests 25 new replicas. If only 5 become ready, Baseten only removes 5 previous replicas to stay within your unavailable limit:
max_surge_percent. With 100 previous replicas and a 25% surge limit, if only 5 of the 25 requested candidate replicas become ready, Baseten scales down 5 previous replicas before requesting the next batch. This ensures the rollout progresses based on actual ready capacity.
Environments without autoscaling
Environments wheremin_replica == max_replica have no autoscaling configured, so replica counts stay pinned during the rolling deployment. To pre-provision additional headroom for traffic spikes, set replica_overhead_percent to add replicas to the previous deployment before any traffic shifts. Use stabilization_time_seconds to wait between steps and monitor metrics before the next traffic shift.
Deployment cleanup
After a rolling deployment completes, thepromotion_cleanup_strategy setting controls what happens to the previous deployment.
SCALE_TO_ZERO: Scales the previous deployment to zero replicas. It remains available for reactivation. This is the default.KEEP: Leaves the previous deployment running at its current replica count.DEACTIVATE: Deactivates the previous deployment. It stops serving traffic and releases all resources.
- UI
- REST API
To set the cleanup strategy:
- Sign in to your workspace at app.baseten.co and choose Dedicated Inference in the sidebar.
- Select your model.
- On the model’s overview, open the environment card’s ⋯ menu.
- Choose Configure promotion.
- For After promotion, select the action taken on the previous deployment.
- Choose Update to apply the changes.
Next steps
A rolling deployment starts from an ordinary promotion, so the same lifecycle operations drive it.- Manage the deployment lifecycle to run the promotion that starts a rolling deployment.
- Environments for the concepts behind promotion settings.
- Scale a deployment for the autoscaling settings a rollout respects.