HomeDev GuideAPI Reference
Dev GuideAPI ReferenceUser GuideGitHubNuGetDev CommunitySubmit a ticketLog In
GitHubNuGetDev CommunitySubmit a ticket

Manage cloud licenses

Describes how to manage cloud-based licenses for test and production environments in an optimized way, when running Optimizely Content Management System (CMS) websites in the cloud.

Cloud-based licensing works a bit differently than licenses used in an on-premises installation.

Optimizely Content Management System (CMS) licenses are available from the Optimizely license portal. CMS bases usage on the number of running instances because cloud-based environments can dynamically scale out and in again depending on traffic volume.

Instance Bound ("cloud licenses") used for cloud environments are tied to the number of running instances, with the necessary flexibility to operate on Azure or Amazon commercial clouds.

You can consider an instance-bound license an on-premises server license based on a floating number of instances. When activated, a cloud-based site will "call home" to register its running web app instance.

License setup and activation

This section describes how to activate instance-bound licenses to use with environments running in Microsoft Azure.



If you are using Optimizely Digital Experience Platform (DXP), this is not needed, because DXP has no instance validation and does not require manual activation.

Define the URLs

In the following scenario, a CMS solution runs in two environments: testing and production. You can use the same instance-bound license file for both environments. To avoid a license error, define the same URL in both the test and production environments.

Go to the CMS admin view for each environment and add the URL.


Activate the license

Go to the CMS admin view for each environment and activate the license for both the test and production environments. The running instances are counted towards the total number of instances the license allows.


Behind a firewall

Behind a firewall, open communication with the licensing service on port 443 (SSL) for cloud-api.episerver.com.

Optimize license usage

This section describes how instance counting works and provides some practical guidelines for optimizing cloud-based licenses when used with Microsoft Azure.

Instance counting

Because the cloud license is a floating license, you can add and remove instances as needed for the traffic volume as long as you do not exceed the total number of instances your license allows.

CMS connects instance counting to the Azure server name. When scaling out, it does not matter how many web apps and deployment slots (see below) you have because they share the same instances (servers). Only ensure that you use an Azure App Service Plan that does not allow for more instances than the number of instances in your license.



If you use the same license in multiple Azure App Service Plans, (for example, to separate test and production environments), then the license has to support the combined number of instances.

Use deployment slots

A slot is an Azure feature to help avoid "cold starts" after deployment. Using slots, you can deploy a new version of your solution to a Web App staging slot, where the site is automatically warmed up. When completed, Azure swaps to the live environment. Optimizely supports deployments slots both technically and from a license perspective.



If you use the same database (in production) for a staging slot, you could unintentionally upgrade the Optimizely database version when deploying new code to it. The Optimizely-database-version would then be out of sync with the Optimizely-code-version running in production, causing an error in production.

Exceed the instance limit

During a scale-up or a system upgrade, CMS can double environments temporarily, exceeding the instance limit. If this happens, an information notification displays in the edit view of the site. The front-end part will still be functional, and the site's operation will not be interrupted. The notification disappears when the number of running instances reaches an approved level. The message is also displayed if the communication to the Optimizely back-end is lost.

Switch between production and developer licenses

When updating your developer environment and restoring a database on a production database, you may receive a notification stating that you do not have an active license, which is most likely due to activating the production database on a production license, whereas you are using a developer license in your development environment. The solution is to reactivate the license manually.