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

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 the Optimizely Content Management System (CMS) solution is based 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 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. 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 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 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 CMS.

Deploy using XCOPY

You can install CMS through XCOPY deployment by copying application files. An XCOPY-style file transfer simplifies deployment and maintenance of CMS 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 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 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 CMS sites on separate servers in a load-balanced environment. The event management system in CMS 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 your own 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 local Linux docker, but requires a license file when you deploy the solution to a server.