Estimating Sitecore XP to XM Cloud upgrade — what challenges lies ahead?

Jack Spektor
4 min readJul 28, 2023

Last year Sitecore announced XM Cloud (https://www.sitecore.com/products/xm-cloud) — Sitecore SaaS offering which provides many benefits to Sitecore websites.

However it also brings a number of breaking changes that developers need to be aware if they are planning a migration anytime soon from the XP/XM Sitecore instance.

Here are 9 changes in XM Cloud you should be aware of estimating the upgrade to XM Cloud.

I. Docker

Sitecore introduced Docker support since v9, and now with XM Cloud its the the only way to customize the XM Cloud instance.

If you have upgraded your solution into Docker already — that would help a lot with the XM Cloud upgrade.

And if you are still on old Sitecore version and not using Docker — it’s a very good reason to start using it now.

II. JSS migration

With XM Cloud Sitecore instances no longer have CD servers.

Instead we are provided with Experience Edge endpoint that can be queried with GraphQL.

This also means that standard MVC built websites are no longer supported in XM Cloud.

Sitecore provides a migration path for MVC websites, however keep in mind that it has its own limitations.

Moving to JSS would also require a change to the team structure — as majority of the development in JSS is done in React more FE development effort would be required.

III. Serialization

It’s very common nowadays for a Sitecore project to keep custom Sitecore templates in a source control.

For that projects might use serialization providers such as Unicorn, TDS or SCS.

With XM Cloud the only supported way of serialization is going to be SCS.

That means that if you have any Unicorn or TDS items in your source control you’d need to migrate them to SCS.

IV. Content Migration

XM Cloud content is stored completely in the cloud, with database being managed by Sitecore team.

That means that there is no easy way to upgrade already existing Sitecore content database into XM Cloud.

Instead content should be migrated manually using Sitecore Content Serialization (SCS), or through Razl.

https://developers.sitecore.com/learn/faq/xm-cloud/migration

V. Webhooks vs custom pipelines

With XM Cloud Sitecore no longer provides processing CD server.

Instead all the content is available only from the cached GraphQL endpoint.

One of the implications is that many custom pipelines (such as httpRequestBegin, httpRequestEnd, etc.) would no longer be available for CD servers (and it’s also recommended to minimize number of custom code on the CM as well).

The logic that resides in that pipelines now should be either migrated to Next.js app, or it could be moved to a webhook instead.

VI. Sitecore modules support

Have you ever used Sitecore modules for your website such as Redirect Module, Sitemap module, or others?

Unfortunately with XM Cloud they are no longer supported (see previous point on custom request pipelines).

That means that the functionality that relies on that modules now need to be rewritten into Sitecore XM-only based code.

That also affects Sitecore Commerce, and Sitecore DEF module as well… :(

VII. No more XDB and personalization

XM Cloud (as evident from its name) would no longer support XP features such as XDB or personalization.

As alternative Sitecore provides new SaaS product called Sitecore Personalize that supports omni-channel CDP personalization

VIII. Search

In XM Cloud custom search indexes are no longer available.

Instead for search-related functionality another SaaS search solution must be used.

XM Cloud atm supports such search providers as Sitecore Search, Algolia, SearchStax, etc.

VIIII. Deployment

So far majority of Sitecore instances were deployed by copying the artifacts to the Sitecore IIS server, or by deploying Docker images with Kubernetes.

With XM Cloud now deployment is provided as a service.

Instead to orchestrate and manage the deployment Sitecore provides OOTB connector to the GitHub that automates and triggers the deploys with each commit.

And if you are using other source-control system (Gitlab, etc.) — then you can trigger the deployments manually through Sitecore CLI command line tool.

As you can see migration from Sitecore XP to XM Cloud isn’t easy, however upgrading to XM Cloud also brings massive amount of benefits (such as performance, simplified architecture, speed of development, etc.)

Hopefully this guide would help you to estimate the migration process, so it could be planned ahead and included into your Sitecore backlog.

Happy coding!

--

--

Jack Spektor

Sitecore MVP 2018–2020, Sitecore Developer in AKQA, traveler and lover of life.