Estimating Sitecore XP to XM Cloud upgrade — what challenges lies ahead?
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.
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.
Should my team adopt docker
A lot of hype has been happening in the Sitecore community around Docker and containers since the announcement of…
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.
Converting existing Sitecore MVC applications to the Jamstack architecture with Headless Rendering
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.
Sitecore Content Serialization
Introduction to the Sitecore Content Serialization (SCS) system.
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.
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… :(
Limitations and restrictions
Describes some limitations and restrictions when you're using XM Cloud.
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
Sitecore Personalize - Deliver Tailored Experiences
With Sitecore Personalize, you can deliver tailored experiences to every customer on any channel at scale via a fully…
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.
Sitecore Search: AI-powered hyper-relevant content
Sitecore Search: predict search intent and display individualized results with a next-gen content discovery solution…
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.