HomeGuidesAPI Reference
Submit Documentation FeedbackJoin Developer CommunityOptimizely GitHubOptimizely NuGetLog In

Deploying Content Cloud

This topic describes services and setup options to deploy and scale Optimizely Content Cloud (CMS) sites. It is intended for hosting professionals and partner developers who configure and deploy Optimizely CMS sites in different infrastructure environments.

Because the Optimizely CMS solution is based on ASP.NET Core, it can be deployed on many other operating systems than Windows.

How it works

You can deploy Optimizely CMS sites to a distributed infrastructure and failover protection that supports availability and scalability. Optimizely CMS is multi-tenant, meaning that a single running IIS application of CMS can host multiple websites using a shared database. The sites can share content, and you can quickly launch new websites from the administration view in CMS.

You can maintain one installation which you can deploy to multiple servers, supporting all of the websites. Elastic scaling, where you add and remove servers on demand, lets you upsize and downsize the infrastructure capacity. Optimizely CMS provides a set of services to facilitate cloud deployment, such as providers for event management and BLOB storage.


Multi-site setup and deployment scenarios

A multi-sites is where all websites in CMS share the same file structure on the web server and the same database for storage. Websites in a multi-site setup can share the same content assets, such as media files and blocks. You also can have site-specific content folders for content that should not be shared between sites.


Because Optimizely CMS is multi-tenant, you can:

  • Run your websites on the same IIS application or same server as long as you configure the site IIS to respond to multiple host names.
  • Launch new sites from the Optimizely CMS admin view without any additional configuration, if the IIS site or server is configured to respond to any host name.
  • Remove sites when they are not needed anymore, providing a more cost-efficient way of managing website infrastructure.
  • Isolate sites to run on multiple IIS applications or servers, for example, if you have specific security or performance requirements, in which case you configure a new site outside Optimizely.

Deployment using XCOPY

You can install Optimizely CMS through XCOPY deployment by copying application files. An XCOPY-style file transfer simplifies deployment and maintenance of Optimizely sites because it does not create registry entries, and it does not register shared components. An example of XCOPY-style hosting is Azure Web Sites, where only a directory is provided, and you cannot run an installation setup procedure.

Another benefit of the XCOPY architecture in Optimizely CMS is that it does not store machine- or site-specific information in configuration files, so you can use a shared folder for multiple servers. During development in a shared environment with source control, developers can keep configuration files checked-in and still create a site that can be duplicated in a multi-site deployment. Because the Optimizely CMS is based on ASP.NET Core, the application files (XCOPY files) can be produced or published by using .NET publish commands.

See also the following deployment scenarios.

Cloud providers

Event providers

The event management system distributes events between applications on the same physical server or among Optimizely sites on separate servers in a load-balanced environment. The event management system in Optimizely is provider-based, and you can use the built-in event provider or develop your own customized one. See the Event management.

BLOB providers

The Optimizely platform supports BLOB (binary large object) storage of assets using a provider-based setup. The BLOB provider stores large amounts of media binary data (perhaps using cloud storage), while Optimizely CMS stores metadata for media files in the database. You can use the built-in BLOB provider for media files, or develop your own customized one. See BLOB storage and providers.


When you use cloud services, the database can be an on-premises SQL database, an Amazon RDS instance, or an Azure SQL Database. You define the site database during deployment, see Installing database schema.


The license file contains information about licensed servers and sites, different options exist. You can run Optimizely without a license file in IIS Express during development or local Linux docker, but requires a license file when you deploy the solution to a server.

What’s Next