The typical setup for developing an Optimizely site is to use CLI tools to create a site and a database as described here. The site can then be executed locally and debugged directly from the local IDE (for example Visual Studio), to make it easy for developers to build and test sites. This topic describes how to move your solution from your local development environment, to a production-like environment in the cloud, or on-premise.
During development, you will eventually want to deploy your solution to a production-like environment, to verify that everything works. In reality, you normally plan already from start how the website will be deployed, maintained, and hosted. Cloud-based options are great for optimizing resource usage. Depending on the choice for hosting and maintenance for the site, specific development considerations may apply. See Planning deployments.
Some common deployment scenarios include:
- Cloud-based. Deploy to Azure Web Apps.
- Cloud-based manged service. Deploy to Optimizely Customer-Centric Digital Experience (DXP).
- Containerized hosting. Deploy to for example Kubernetes.
- Non-cloud. Deploy to Microsoft IIS and Windows Server.
Deploying to Azure Web Apps
In this scenario you deploy your site to an environment based on Microsoft Azure cloud components. Prior to deploying your site, you need to create and configure the various Azure components needed, including a Web App, an SQL Database, a Service Bus, and a BLOB storage.
See Deploying to Azure Web Apps how to do this.
Deploying to Optimizely DXP
Cloud-based solutions are powerful when scaling for site availability. However, managing the required components can be quite challenging. With Optimizely DXP, you let Optimizely manage the cloud components for you. You can choose to either deploy yourself through the Optimizely self-deployment portal, or let Optimizely do the deployment.
Deploying to a containerized hosting
When the application is to be hosted as a container the application must then be first built as a container image. See Dockerize an EPiServer Cms application for an example on how to build a cms application in a docker image. The built image is then typically deployed to a container registry (for example Azure Container Registry) that can be accessed from the container orchestrator. Deploying to Azure Web Apps describes how an Azure Web app can be setup from a docker image.
Deploying to Microsoft Windows Server
You can also run your site "non-cloud" using Microsoft IIS and Windows/SQL Server. As a first step when moving towards a production-like environment, you can set up a local environment with IIS and deploy to that, to get an understanding of how it works. Moving to a full version of IIS also requires enabling of some features.
When deploying, you create the artifacts for the site, the database, and the application data, and then use XCOPY to move the files to the target server. See Deploying to Windows servers.
Creating an empty database
There is a CLI tool EPiServer.Net.Cli that can be installed and then used to create or update Cms databases. See Creating Simple Cms Site By CLI for more information.
Note: To transfer content between Cms applications/databases you can use Optimizely's export/import feature. This lets you define which items you want to export to an export file. Data from the export file can then be imported to another application/database. See Exporting and importing data.
You can also let the application create the database schema directly on a remote server, given that DataAccessOption.CreateDatabaseSchema is true (which is the default value):
- Create an empty database on the SQL Server.
- Configure your connection string for your application (for example in appSettings.json) to point to your empty database.
- Start your application
- Creating Simple Cms Site By CLI
- Dockerize an EPiServer Cms application
- Planning deployments
- Deploying to Azure Web Apps
- Deploying to Optimizely DXP
- DXP Service self-deployment guide
- Deploying to Windows servers
Last updated: Jul 02, 2021