---
title: How to gradually roll out new versions of your backend
description: Incrementally release updates to your backend to minimize impact of mistakes.
url: /kb/guide/how-to-gradually-roll-out-new-versions-of-your-backend
canonical_url: "https://vercel.com/kb/guide/how-to-gradually-roll-out-new-versions-of-your-backend"
published: 2025-11-21
last_updated: 2026-07-16
authors: Anthony Shew
related:
  - /docs/rolling-releases
  - /docs/instant-rollback
  - /docs/frameworks/backend
install_vercel_plugin: npx plugins add vercel/vercel-plugin
---

[Rolling Releases](https://vercel.com/docs/rolling-releases) allow for safe, incremental rollouts of new deployments, with no custom routing configuration or code required. This helps you to minimize the impact of mistakes when they happen and, combined with [Instant Rollbacks](https://vercel.com/docs/instant-rollback), recover quickly. Incrementally rolling out updates goes by many names, including “Blue/Green Deployments”, “Canary Deployments”, “Phased Rollouts”, “Rolling Updates”, and more.

In this guide, you'll learn how to:

- Setup a manual Rolling Release or automatic rolling release
  
- Test the Rolling Release
  
- Release a new version
  
- Control rolling releases programmatically
  

## Try it out

### 1\. Create a backend project

First, we need a demo project to work with. [Click here to deploy a simple Express backend](https://vercel.com/new/clone?demo-description=Simple%20Express.js%20%2B%20Vercel%20example%20that%20serves%20html%20content%2C%20JSON%20data%20and%20simulates%20an%20API%20route.&demo-image=%2F%2Fimages.ctfassets.net%2Fe5382hct74si%2FswUZt4R6yxCjtb5PaoSMT%2F250fb904d33f82b2b96769b964d7848b%2FFlagsmith_Dark__1_.png&demo-title=Express.js%20on%20Vercel&demo-url=https%3A%2F%2Fexpress-vercel-example-demo.vercel.app&from=templates&project-name=Express.js%20on%20Vercel&repository-name=express-js-on-vercel&repository-url=https%3A%2F%2Fgithub.com%2Fvercel%2Fexamples%2Ftree%2Fmain%2Fsolutions%2Fexpress) using a template. Visit the deployment URL to receive a response from an Express app running on Vercel.

### 2\. Configure a manual Rolling Release

Set up a manual rolling release so you can move through the rest of this guide at your own pace. The Rolling Release will have two stages for production deployments:

1. Serve 50% of requests with the new deployment
   
2. Serve 100% of requests with the new deployment
   

To configure this, you can use the Vercel dashboard or Vercel CLI.

### Using the dashboard

To set up a manual rolling release, [visit the Rolling Releases section of the Build and Deployment settings of your project](https://vercel.com/d?to=%2F%5Bteam%5D%2F%5Bproject%5D%2Fsettings%2Fbuild-and-deployment%23rolling-releases&title=Configure+a+Rolling+Release). Select “Manual” and create a two-stage rollout with the first stage set to 50% and the second stage set to 100%. Be sure to click the Save button when finished.

### Using Vercel CLI

In your project’s directory, run this command in your terminal:

```bash
vercel rolling-release configure --cfg='{"enabled":true, "advancementType":"manual-approval", "stages":[{"targetPercentage":50},{"targetPercentage":100}]}'
```

### 3\. Create a new production deployment

Edit the Express application’s HTML string to have a new payload in its response, so you can see how changes to a deployment are gradually released over time.

Deploy the application to production with your changes. Either push your code to your Git repository’s main branch, or deploy it with Vercel CLI:

```javascript
vercel deploy --prod
```

### 4\. Test the Rolling Release

Your Rolling Release is now serving 50% of requests using the Current deployment and 50% of requests using the Canary deployment.

To see this in action, you can now cURL your backend:

```bash
# Random responses based on the 50/50 split
curl your-deployment-url.vercel.app


<!-- docsgraph:related -->
## Related pages

> **For AI agents:** Follow these links to understand how this page connects to the rest of the Vercel ecosystem. For the full cross-link map (inbound, outbound, prerequisites, and semantic neighbors), see the .graph.md link below.

- [Rolling Release Deployment](https://vercel.com/docs/rolling-releases/rolling-release-deployment?from=related) — Gradually roll out a production deployment using traffic stages, monitoring, and automated abort.
- [vercel rolling-release](https://vercel.com/docs/cli/rolling-release?from=related) — Learn how to manage your project's rolling releases using the vercel rolling-release CLI command.
- [Rollback Production](https://vercel.com/docs/deployments/rollback-production-deployment?from=related) — Recover from a bad production deployment by rolling back, investigating the root cause, and redeploying a fix.
- [Deployments](https://vercel.com/docs/deployments?from=related) — Learn how to create and manage deployments on Vercel.
- [Promoting Deployments](https://vercel.com/docs/deployments/promoting-a-deployment?from=related) — Learn how to promote deployments to production on Vercel.
- [Implementing Canary Deployments on Vercel](https://vercel.com/kb/guide/implementing_canary_deployments_on_vercel?from=related) — This guide explains how to set up canary deployments on Vercel, enabling developers to gradually roll out new versions t
- [Can you deploy based on tags/releases on Vercel?](https://vercel.com/kb/guide/can-you-deploy-based-on-tags-releases-on-vercel?from=related) — Learn how to deploy based on tags/releases on Vercel.
- [Full-stack previews on Vercel](https://vercel.com/kb/guide/full-stack-preview-deployments-on-vercel?from=related) — Learn how to use full-stack previews for your Vercel projects. Deploy Next.js, FastAPI, and a containerized Go service t

Full cross-link map for this page: [/kb/guide/how-to-gradually-roll-out-new-versions-of-your-backend.graph.md](/kb/guide/how-to-gradually-roll-out-new-versions-of-your-backend.graph.md)
<!-- /docsgraph:related -->

# Force responses from the Current deployment
curl your-deployment-url.vercel.app?vcrrForceStable=true

# Force responses from the Current deployment
curl your-deployment-url.vercel.app?vcrrForceCanary=true
```

### 5\. Complete the Rolling Release

Now that you’ve verified the changes on your Canary deployment you can promote it to serve 100% of requests.

### Using the dashboard

Complete the Rolling Release by [visiting the “Rolling Release” page for your project](https://vercel.com/d?to=%2F%5Bteam%5D%2F%5Bproject%5D%2Fdeployments%2Frolling-release&title=Complete+the+Rolling+Release) and clicking the “Complete Rollout” button.

### Using Vercel CLI

In your project’s directory, run this command in your terminal:

```bash
vercel rolling-release complete --dpl=your-canary-deployment-url.vercel.app
```

## Resources

- [Learn more about Rolling Releases](https://vercel.com/docs/rolling-releases)
  
- [Learn more about backends on Vercel](https://vercel.com/docs/frameworks/backend)