Simplifying your Azure Cosmos DB migration: From Serverless to Provisioned throughput (preview)

Richa Gaur

Azure Cosmos DB offers a range of options to fit the diverse needs of cloud applications, including the choice between serverless and provisioned throughput accounts. The serverless option is ideal for workloads with unpredictable patterns, but there are instances when transitioning to a provisioned throughput account is advantageous for enhanced performance and more efficient cost management.

We are delighted to introduce a new feature that allows for the seamless transition of an Azure Cosmos DB account from serverless to provisioned throughput. This feature aims at streamlining the migration process for our customers, ensuring a smooth and efficient transition.

Need for migration

The shift from a serverless to a provisioned throughput model is a strategic move for several reasons:

  • Throttling issues: Serverless accounts may experience throttling as demand increases, which can be mitigated by the dedicated throughput of provisioned capacity mode.
  • Cost efficiency: If your usage consistently exceeds 15-20%, provisioned throughput can offer a more cost-effective solution.
  • SLA guarantees: For production accounts that require stringent SLA guarantees, provisioned throughput provides a more reliable performance.
  • Global deployment: Applications that demand deployment across multiple regions for improved availability and latency will benefit from provisioned capacity mode.
  • Overcoming serverless limitations: Other limitations like scaling storage or throughput posed by the serverless model can be addressed by migrating to provisioned capacity mode.

Getting started

To initiate the migration, you must first enable the feature in your Azure Subscription.

In the preview feature section of your Azure Subscription, look for ‘Change capacity mode from serverless to provisioned throughput’ and register to enable the feature. Once the feature is enabled, you can proceed to next steps.

Change capacity mode using Azure Portal

Click on “change to provisioned throughput” option on the overview page of your Azure Cosmos DB account to initiate the migration. Once confirmed, the migration process will start, and account’s status will be changed to “Updating” state.

Image Screenshot 2024 05 20 145431

Change capacity mode using Azure CLI

To initiate the capacity mode change from serverless to provisioned, use following CLI command

az cosmosdb update -n <account-name> -g <resource-group-name> --locations regionName=<azure-region> --capacity-mode Provisioned

After the command completion, you will see the changed capacity mode in the command output.

Image Screenshot 2024 05 20 150122

 

Throughput configurations

When a serverless account is changed to provisioned capacity mode account, all containers within the account shall be changed to manual provisioned throughput with the throughput values configured according to the below formula.

RU/s = max(5000, number of partitions * 1000)

You can also change the provisioning mode from manual to autoscale, and the default configured Request units (RU/s) once the migration is complete.

Limitations

There are a few limitations associated with capacity mode change process, listed below.

  1. There is no SLA for the duration of change capacity mode process.
  2. You cannot perform any management operation while the migration is in progress.
  3. This operation is irreversible, i.e. the capacity mode cannot be changed back to serverless again.
  4. In case there is a need to restore the serverless account after changing the capacity mode to provisioned throughput, the account will always be restored to provisioned capacity mode irrespective of restore timestamp.

Conclusion

Azure Cosmos DB’s one-click migration feature is a commitment to building user-friendly services. With this new addition, managing your database’s capacity mode is easier than ever, allowing you to focus on what truly matters – building great applications. For more detailed instructions and support, refer to the official Azure documentation.

About Azure Cosmos DB

Azure Cosmos DB is a fully managed and serverless distributed database for modern app development, with SLA-backed speed and availability, automatic and instant scalability, and support for open-source PostgreSQL, MongoDB and Apache Cassandra. Try Azure Cosmos DB for free here. To stay in the loop on Azure Cosmos DB updates, follow us on XYouTube, and LinkedIn.

To quickly build your first database, watch our Get Started videos on YouTube and explore ways to dev/test free.

0 comments

Leave a comment

Feedback usabilla icon