Migrating On-Premise Sitecore XP to SaaS XM Cloud: Challenges to be aware of

Migrating On-Premise Sitecore XP to SaaS XM Cloud: Challenges to be aware of

  • 27/09/2023
  • Technical
  • Sitecore XP, XM Cloud, Architecture, Content Cloud

Migrating Sitecore XP (Experience Platform) from an on-premise environment to Sitecore XM (Experience Management) Cloud is a strategic move for organizations looking to capitalize on cloud scalability, flexibility, and security. In this article, I want to share with you the challenges to be aware of and how you can use alternatives.

Challenges to be aware of:

1. Docker

Migrating Sitecore XP on-premise to XM Cloud brings forth notable challenges when incorporating Docker, a pivotal component for deploying applications in containers. One prominent challenge is dockerizing existing applications, which involves encapsulating the existing Sitecore instances and their dependencies in Docker containers. This process requires meticulous planning, especially around data persistence, network configuration, and security protocols to safeguard sensitive data.

If you already have your Sitecore XP instance running in Docker, then much of the work is already done.

When running an old Sitecore Solution < 9, then you are forced to upgrade because docker only runs from version 9 onwards.

2. Serialization

The only supported way of serialization in XM Cloud is Sitecore Content Serialization (SCS). If you are already using a serialization provider like Unicorn or TDS you have to migrate to SCS before moving to XM Cloud.

I will wirte an article about this topic later on.

3. JSS

If your instance is already running with Sitecore Javascript Services (JSS) as a headless website, then you don't need to do anything else.

However, if your instance is still running in MVC, then you will be forced to upgrade to JSS.

The good first: Sitecore provides a migration path for MVC. Nevertheless, moving from MVC to JSS will also change the team structure, and you must move your resources. JSS is more frontend effort than backend and maybe you have not enough developers for such a big move. 

I already wrote an article how to use Next.js with XM Cloud. If you are interested, you can read it here.

4. Content Migration

It is not easy to migrate content to the cloud because in XM Cloud the databases are managed by Sitecore and you are not able to replace the databases with the On-Premise data.

The only and recommended way is to migrate content manually with SCS oder Razl.

If you want to read more about this topic, please visit the Sitecore Documentation: https://developers.sitecore.com/learn/faq/xm-cloud/migration

5. XDB and personalization

In XM Cloud Personalization, Xconnect and XDB is no longer supported. You have to switch to alternatives such as Sitecores' SaaS products Personalize which supports Omni-Channel personalization.

There are many articles and ways to migrate the data from XDB to personalize. Maybe i will do a blog article in the future with this topic too 😉

6. Search

The next big topic is Search. Custom Search indexes are no longer available and support. You also have to switch to an alternative like Sitecore Search.

7. Deployment

Traditionally, the predominant method of deploying Sitecore instances involved either transferring artifacts directly to the Sitecore IIS server or employing Docker images in conjunction with Kubernetes.

With the advent of XM Cloud, deployment can be seamlessly administered as a service.

Instead of managing and orchestrating deployment independently, Sitecore sets up an integrated connector to GitHub. This connector streamlines the deployment process, initiating automated deploys with every commit.

For those leveraging alternative source-control systems like GitLab or Azure DevOps, the deployment can be initiated manually using the Sitecore CLI command line tool.

8. Custom pipelines

With the adaptation of XM Cloud, the provision of a processing CD server by Sitecore has been discontinued.

As a result, access to all content is exclusively routed through the cached GraphQL endpoint.

This change means that access to many custom pipelines, such as <initialize> or <httpRequestBegin>, is no longer available for CD servers; furthermore, it’s recommended to limit the amount of custom code on the CM.

The functionality housed within these pipelines should now be migrated to a Next.js app or, alternatively, be transferred to a webhook.

9. Modules

Have you ever integrated Sitecore modules like the Redirect Module, Sitemap module, etc., into your website?

Regrettably, with the transition to XM Cloud, these are no longer supported (refer to the previous note about custom pipelines).

This necessitates the reprogramming of the functionalities depending on these modules into code that is exclusively based on Sitecore XM.

Conclusion

Switching from using Sitecore XP to using Sitecore XM Cloud is a big step. It means you need to think about and plan things like how you set it up, move your content, and make it work for your needs.

While making this switch can be tricky, it’s a really important move to make the most of the new features in XM Cloud, like being able to handle more users, being more flexible, and being easier to manage. You might face some initial challenges, like getting used to new tools like Docker and changing the way you set things up, but in the end, these changes will be worth it as they match the modern ways of online experience.

By carefully using all the special features of Sitecore and planning strategically, companies can make this switch smoother and position themselves well to enjoy all the benefits of Sitecore XM Cloud in today’s digital world.

P.S.: For more informations about Sitecore and our Services, please visit www.cyber-solutions.at