The typical setup for developing an Optimizely site is to use CLI tools to create a site and a database. 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.
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.
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.
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.
When the application is to be hosted as a container the application must then be first built as a container image. See Creating a Docker file for a 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.
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.
There is a CLI tool EPiServer.Net.Cli that can be installed and then used to create or update CMS databases.
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 in the Optimizely User Guide".
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
Updated 8 months ago