Exam Area: Content Area 2 – Installation, Operation & Configuration (20%)
Source: https://academy.optimizely.com/student/path/3128969/activity/4970335
Published: Feb 14, 2026
- Three-stage topology: Integration → Preproduction → Production.
- Promotion-based deployments: Promote the same artifact forward — no rebuild on promotion.
- Config is environment-scoped: Same compiled app, different injected values per environment.
- Responsibility split: Optimizely runs the platform; the team owns code + correctness + discipline.
DXP (Digital Experience Platform) is Optimizely's managed PaaS cloud hosting for CMS 12, built on Microsoft Azure. It removes operational infrastructure complexity from development teams.
DXP provides:
| Environment | Role |
|---|---|
| Integration | First cloud-based validation: CI/CD testing, early QA, infrastructure configuration validation |
| Preproduction | Production-like rehearsal: UAT, performance validation, stakeholder review |
| Production | Live environment serving public traffic |
Key rule: Only after Preproduction validation is the artifact promoted to Production — no rebuild occurs.
Local Dev → CI Build artifact → Deploy to Integration → Validate
→ Promote to Preproduction → UAT + Perf → Promote to Production
| Optimizely manages | Team manages |
|---|---|
| Azure hosting, scaling, SQL, Blob, Monitoring | Application code, configuration correctness, deployment discipline |
Same compiled app — different injected configuration values per environment:
{
"ConnectionStrings": {
"EPiServerDB": "<env-specific-connection-string>"
}
}
Configuration differences (DB, search endpoints, API URLs, feature flags) are injected via platform configuration — NOT via conditional code.
Best practice: Never hardcode environment-specific values; never use environment-specific code branching.
# Create a deployment package
dotnet publish -c Release -o ./publish
# Authenticate
epi cloud login
# Deploy to Integration
epi cloud deploy --projectId <project-id> --environment Integration --package <package-path>
# Promote Integration → Preproduction
epi cloud promote --projectId <project-id> --source Integration --target Preproduction
# Promote Preproduction → Production
epi cloud promote --projectId <project-id> --source Preproduction --target Production
URL: https://paasportal.episerver.net
URL: https://paasportal.episerver.net
{
"EPiServer": {
"CMS": {
"CDNUrl": "https://cdn.example.com"
}
}
}
DXP uses Azure App Service with built-in load balancing:
// Configure Redis for shared cache
builder.Services.AddStackExchangeRedisCache(options =>
{
options.Configuration = "my-redis.redis.cache.windows.net:6380,password=...,ssl=True";
});
AutoUpdateDatabaseSchema in Production| Requirement | Value |
|---|---|
| .NET version | .NET 6.0+ |
| SQL Server | Azure SQL (managed) |
| Storage | Azure Blob |
| Memory | 4 GB+ recommended |
https://paasportal.episerver.net/api/v1.0/)AutoUpdateDatabaseSchema be enabled in Production? (No)https://paasportal.episerver.net)