Disclaimer: This website requires Please enable JavaScript in your browser settings for the best experience.

HomeDev GuideRecipesAPI Reference
Dev GuideAPI ReferenceUser GuideLegal TermsGitHubNuGetDev CommunityOptimizely AcademySubmit a ticketLog In
Dev Guide

Deploy CMS

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

Because Optimizely Content Management System (CMS) bases its solution on ASP.NET Core, you can deploy it on operating systems other than Windows.

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

You can maintain one installation, which you can deploy to multiple servers that support the websites. Elastic scaling, where you add and remove servers on demand, lets you upsize and downsize the infrastructure capacity. 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 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 you should not share between sites.

Because CMS is multi-tenant, you can:

  • Run your websites on the same IIS application or the same server as long as you configure the site IIS to respond to multiple host names.
  • Launch sites from the CMS admin view without additional configuration if you configured the IIS site or server to respond to any hostname.
  • 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 site outside CMS.

Deploy using XCOPY

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

Another benefit of the XCOPY architecture in 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 you can duplicate in a multi-site deployment. Because the CMS bases itself on ASP.NET Core, the application files (XCOPY files) can be produced or published 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 CMS sites on separate servers in a load-balanced environment. The CMS event management system is provider-based, and you can use the built-in event provider or develop your own customized one. See Event management.

BLOB providers

The CMS 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 CMS stores metadata for media files in the database. You can use the built-in BLOB provider for media files or develop a customized one. See BLOB storage and providers.

Database

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 Install database schema.

Licensing

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