Migrate content from Sitecore XM/XP to XM Cloud

Content Insights Logo

Are you currently running Sitecore XM or XP v9.x, whether on-premises or in the Managed Cloud, and thinking about making the switch to XM Cloud? You're in the right place! In this blog post, we'll provide you with a quick and practical guide to help you navigate this migration. If you're curious about the pros and cons of various migration methods for Sitecore XM Cloud, be sure to check out my previous blog post.

But there's an additional migration method I'd like to introduce: the use of Razl.

For those who might not be familiar with Razl, it's a robust tool tailored for developers working with Sitecore databases. It facilitates a comprehensive side-by-side comparison of two Sitecore databases, making it easier to spot missing or outdated features. Moreover, Razl simplifies the process of transferring missing items from one database to another.

Razl offers immense value in various Sitecore scenarios, spanning from development and testing to post-production tasks. It comes equipped with features like Deep Compare, enabling you to perform a meticulous comparison of all items within a Sitecore tree. The Lightning Mode feature ensures swift access to essential information.

With its wide range of applications that commence with the initial comparison, Razl proves its worth as a versatile and efficient tool for Sitecore developers. It empowers users to streamline tasks like locating missing templates, moving entire databases, or seamlessly transferring individual items.

Now, before we dive into the migration process, there are a couple of prerequisites you need to meet. First, ensure that you're running Sitecore version 9 or higher for this method to work effectively. Second, make sure you have Docker Desktop installed on your machine and that it can run Windows containers. As of now, Sitecore containers exclusively support Windows containers. Once Sitecore transitions its entire platform to .NET (Core) 6 or higher, Linux containers will likely be supported as well. But for now, it's Windows containers all the way. For a comprehensive guide on setting up your Docker container, refer to Sitecore's documentation. At last, you'll need to have access to Sitecore Content Serialization (SCS) via the Sitecore CLI. If you need to install the Sitecore CLI, check out their documentation.

Now, let's move on to the migration process. While we won't delve into every detail, I'll outline the key steps to get you started:
  1. Serialize the content you need from your on-premises or Managed Cloud XM/XP to your local disk.
  2. Deserialize your content into your Docker container.
  3. Utilize Sitecore Serialization (SCS) to serialize your content.
  4. Deserialize the content into XM Cloud.

The migration process will generally follow this flow:

Sitecore XM/XP migration to XM Cloud

Now, is it as straightforward as it appears? Well, that depends on your content, and it's likely you'll encounter some issues along the way. One crucial aspect to consider is the order in which you deserialize your content. You may have data model inheritance to contend with. Be sure to account for this when executing the migration. It's advisable not to postpone content transfer until the end of your XM Cloud project. Start as early as possible and aim to automate the process, allowing you to run multiple transfers before going live with the XM Cloud platform. The sooner you have actual content in XM Cloud, the better your customers can test the new platform. So, be proactive and stay ahead of the game!

To finish the blog post, I would like to thank Gary Wenneker for testing out this theory with an actual customer case. Without his help, this blog post would not be here!

Until next time!