Many of us have lived through it: failed deployments, site outages, and war rooms. The live site fails. Both marketing and IT scramble for a fix, and finally discover a missing certificate binding. Experiences like this led BlueModus to embrace Xperience by Kentico SaaS—and what we found reshaped the way we host and deploy.
Why marketers love Xperience SaaS
Xperience customers love SaaS because it provides assurance and easy maintenance. SaaS means their sites and marketing channels are hosted by a well-practiced, expert, 24×7 support team with robust automations and standards to keep everything running. They also appreciate the freedom from training teams, meticulous backups, CDNs, storage accounts, WAFs, load balancing, and SQL management. As Debbie Tuček noted in a recent article, many marketers are relieved when they no longer have to deal with an over-stretched IT team unfamiliar with Xperience. They prefer partnering with a SaaS team whose success depends on treating them like valued customers.
So, why do technical teams worry?
Technical teams are often less attracted to SaaS. They worry about losing control of infrastructure, automated deployments, troubleshooting access, and familiar tools. At BlueModus we had the same concerns—until we saw how Xperience SaaS reduces the cost and risk of self-managed infrastructure while fitting our existing automated processes. All these concerns turned out to be bogeymen. The rest of this post explains how we adjusted our hosting and deployment processes to thrill technical teams and customers.
Private cloud hosting
Before describing our SaaS approach, it’s useful to show how we manage environments, deployments, and troubleshooting in a self-managed private cloud Xperience project.
Private cloud environments
Our typical self-managed Xperience projects run in Azure tenants. Production uses the most robust infrastructure, QA mirrors production to validate every layer, and Dev stays intentionally simple.
Environment | Purpose | Azure services |
---|---|---|
Production |
Live site Production authoring Production marketing | Typical Cloudflare WAF Multiple Web App instances App Service slots Azure Storage Accounts Virtual Networks Private Endpoints Azure SQL Databases SendGrid Optional CDN Multi-region Web Apps SQL Always Availability Groups |
QA | QA testing Customer validation | (same as production environment) |
Dev |
Build & deploy validation Pre-QA smoke tests CD-package creation |
Single Web App instance Azure SQL Azure Storage SendGrid |
At present, customers edit content directly in Production using Xperience publishing workflow and preview features. Kentico’s upcoming Content Synchronization feature will allow a separate authoring tier, but a single production environment simplifies workflow and reduces overhead.
Private cloud deployments
We rely on Azure DevOps multi-stage pipelines together with Xperience Continuous Integration (CI) and Continuous Deployment (CD).
CI files—committed with code—keep Dev database configurations aligned with local developer environments.
CD packages—generated from the integrated Dev database—apply identical configurations to QA and Production.
Azure App Service Web Jobs automate critical steps:
- Version update job (planned) – checks the database version and applies Xperience refreshes, using point-in-time restores if needed.
- CI-restore job – runs
--kxp-ci-restore
after each Dev deployment to import CI changes. - CD-package job – uses the Dev environment to create a CD package with
--kxp-cd-store
, zips it, and signals the pipeline to download and merge it with the build artifact. - CD-restore job – imports the package in QA and Production with
--kxp-cd-restore
.
Private cloud pipelines
Build stage | Dev environment | Upper environments |
---|---|---|
Build backend Build frontend Package build (including CI files) |
Deploy build artifact Call Xperience refresh job Call CI-restore job Call CD-package job Download CD package Merge build + CD into new artifact |
Deploy build artifact Call Xperience refresh job Call CD-restore job |
Private cloud troubleshooting
Full infrastructure access delivers control but also significant burden: DNS records, certificates, VNET routes, WAF rules, storage keys, bindings, SQL restrictions, and upgrades. All can fail and demand deep expertise to fix in an emergency.
Xperience SaaS hosting
A SaaS project still includes Dev, QA, and Production, but Kentico manages every layer except a lightweight Dev environment used for build validation, smoke tests, and CD-package creation. Clients therefore avoid maintaining the most complex, critical infrastructure.
Are you onboarding to a new Xperience by Kentico SaaS project?
Review our Get started with SaaS guide to get you logged into the Xperience Portal.
SaaS project infrastructure
Environment | Purpose | Services |
---|---|---|
Production |
Live site Production authoring Production marketing |
Xperience SaaS |
QA |
QA testing Customer validation |
Xperience SaaS |
Dev |
Build & deploy validation Pre-QA smoke tests CD-package creation |
Single Web App instance Azure SQL Azure Storage SendGrid |
SaaS deployments
Xperience SaaS streamlines our DevOps process. CD-restore and auto-upgrade jobs are unnecessary in QA & Prod; only Dev may need an upgrade process. The main change is to ensure that the artifact created after a Dev deployment matches the SaaS deployment-package format, ready for upload through the Xperience Portal, and deployment with a click.
We applied the following pipeline changes:
- Tag build versions with a date/time suffix using
/p:VersionSuffix
usingdotnet publish
. - After downloading the CD package, run a script (adapted from Export-DeploymentPackage.ps1) that merges the compiled build and CD package into a SaaS-ready ZIP.
- Publish that ZIP as a pipeline artifact.
Interested in learning how to deploy to Xperience by Kentico SaaS?
Be sure to read the fully documented guide, Deploy to SaaS step-by-step.
SaaS pipelines
Build stage | Dev environment | Upper environments |
---|---|---|
Build backend (with version suffix) Build frontend Package build (including CI files) |
Deploy build artifact Call Xperience refresh job Call CI-restore job Call CD-package job Download CD package Call Export‑DeploymentPackage.ps1 Upload SaaS deployment package |
Select deployment package Click Deploy |
At this point, Xperience SaaS takes over with a robust process, deploying application files, applying Xperience refreshes, synchronizing the CD package, and creating automatic backups of SQL, storage, and app files. If anything fails, the environment automatically rolls back to its pre-deployment state. Afterward, if smoke-testing reveals an application problem, the environment can still be rolled back with a click.
Kentico is also rolling out zero-downtime deployment: the system clones the database, deploys on offline app instances, and switches traffic only after all checks pass, keeping the previous services online until cut-over is complete.
SaaS troubleshooting
Teams sometimes fear losing low-level access, but we retain what we need while facing far fewer failure points. Kentico manages Web Apps, SQL, VNETs, certificates, storage, DNS, WAF, and Cloudflare, leaving us to focus on:
- Application code
- Application & Xperience configurations
- Database errors or anomalies
If database anomalies arise, we download a backup and diagnose locally. If a manual SQL change is required (e.g., after content migration), we execute scripts through Xperience CD migration scripts. We have all the access we need, have much less to worry about, and avoid risky, ad-hoc fixes.
Conclusion
For teams evaluating Xperience SaaS, our experience shows that deployment and troubleshooting concerns diminish once the pipeline is adapted. SaaS supplies dependable infrastructure, built-in security, robust backups, and lower risk, while aligning with established automated practices. The loss-of-control bogeymen fade away, along with the midnight scramble.

Mike Wills
As a Kentico MVP at BlueModus, I ensure customers have a solid technical approach from the start, ensuring their solutions achieve their business goals and future aspirations.