Sitecore XM Cloud: Simplifying and Accelerating Your CMS Projects

Sitecore XM Cloud Overview
Sitecore Experience Manager Cloud, or Sitecore XM Cloud, is a SaaS headless CMS that is a foundation for a composable digital experience platform (DXP) centered around content.

SaM Solutions

Historically, working on a Sitecore project wasn’t easy. Whether developing locally or working with a remote environment, you had to deal with a complex setup: a typical Sitecore installation included several web applications, a dozen databases, a Solr instance, and various other components just to function properly. Setting up new environments could take days or even weeks, and each new Sitecore version required a significant investment to upgrade.

Sitecore has been trying to ease developers’ burdens by creating the Sitecore Installation Framework, introducing the Helix approach, and building various extensions to the platform such as SXA. However, it wasn’t until Sitecore adopted containers that things started to change. With Docker, it has finally become possible to get a new Sitecore project up and running in a matter of minutes.

As Sitecore was slowly transitioning from an on-premises-only CMS to a truly cloud-native application, various managed Sitecore offerings were made available. These ranged from Managed AppServices, where Sitecore would be deployed to a Sitecore-managed AppServices-based Azure infrastructure, to Managed Kubernetes, where you would get a Sitecore-managed Kubernetes instance to deploy your custom code.

Despite the quality of those offerings, they still lacked the simplicity of Sitecore’s SaaS competitors — until Sitecore XM Cloud came along.

The first versions of XM Cloud were not much different from Sitecore’s Managed Cloud offering, but that has changed.

As of writing, signing up for XM Cloud provides numerous benefits.

  • First and foremost, you get your own tenant within the Sitecore Cloud Portal.
  • Within that tenant, you’ll have access to the Deployment Center, as well as all instances of Sitecore you are running and any other Sitecore products you may be signed up for.

Meet Sitecore Deployment Center

The Deployment Center is an app that allows you to manage your Sitecore Cloud environment. There, you can see and manage your Sitecore projects, integrations, view logs, and the status of the cloud. Each project can be linked to a GitHub or Azure DevOps repository for DevOps integration. You can either have Sitecore create a new repository for you or connect to an existing one. Generally, it’s best to start from scratch and have Sitecore provision and configure the repository, but documentation is available if you prefer to do it manually.

As of writing this article, connecting to a repository requires giving Organization Admin rights to Sitecore (or full access in the case of a GitHub repo), so plan your repository setup accordingly. In some cases, it may be not desirable, so you can skip this step and deploy your changes using the CLI. The CLI is flexible enough to be used in a custom CI/CD pipeline, so even if automatic integration through the Cloud is not an option, you can still have fully automated deployments.

Each project can have one or more environments associated with it, each with completely independent configurations. Existing environments can be removed or modified at will, and new environments can be created in 10–15 minutes with the click of a button. This is ideal for situations where you need to test several parallel changes independently. Once the tests are concluded, the environment can be torn down to save on infrastructure costs. You could take this further by giving your QA team access to the Deployment Center so they can manage their testing setups themselves. This way, they can test individual features in isolation before they are integrated into the upstream branch, thus shortening the feedback loop on tasks and improving the quality of the final product.

Improved Sitecore XM Cloud

As for the CMS itself, Sitecore XM Cloud provides an always-up-to-date version of Sitecore in its most basic XM topology. This means you lose quite a bit of functionality if you’re transitioning from XP: analytics, extensive personalization, identity server, EXM, and marketing automation are no longer available out of the box. And, believe it or not, it makes sense. Historically, these features were the most difficult to work with and were often underutilized or not utilized at all in many projects, so it’s natural that Sitecore decided to exclude them from the package.

It’s not just the streamlining of the product that makes XM Cloud an interesting choice. All Sitecore instances provisioned in XM Cloud come with many built-in features. First of all, Sitecore PowerShell Extensions are already preinstalled. Additionally, there’s SXA and Headless Services. These are the cornerstones of every modern Sitecore project. The PowerShell Extensions serve as the foundation for SXA, which offers a wide range of tools that help speed up development and reduce time to market.

With SXA, you get features like configurable error pages, redirects that can be managed through Sitecore, and tools to work with page layouts without needing to create separate templates. All of this significantly reduces the effort required to get sites up and running and gives content authors more control over the look and feel of their content.

Besides the obvious advantages that SXA provides, it also enables the work of the new Pages editor. The Pages editor is an evolution of the Horizon project, designed to replace the slow and cumbersome Experience Editor with a fast, modern, and easy-to-use Visual Page Editor. It taps into the tools provided by SXA to make editing pages enjoyable again. The new editor is superfast, very responsive, and has everything you might need to author great pages. Eventually, you may find that you don’t use the old editor at all anymore.

Another new app that comes with XM Cloud is called Explorer. It’s a lightweight replacement for the Content Editor, allowing for content modifications that can’t be done through the Pages app. While it doesn’t have full feature parity with the Content Editor, it provides the necessary tools to make it, in combination with Pages, a complete content editing suite.

The Headless Services module is perhaps the biggest and most important module that enables the SaaS aspect of XM Cloud. With this module, you are no longer tied to ASP.NET’s MVC engine to render your content. Instead, Sitecore can now serve your content in JSON through a set of GraphQL endpoints, allowing you to connect any frontend and making Sitecore a truly headless CMS.

The importance of this paradigm shift cannot be underestimated. In the past, a Sitecore developer needed to be equally versed in both the back-end and front-end stacks to be successful. This made finding good resources particularly challenging and inevitably increased project costs.

With Headless Services, Sitecore developers are no longer concerned with how the data is presented to the end user; they only need to focus on what data is being returned to clients. This finally separates the frontend from the backend, so developers no longer need to know both to be successful on a project. In practice, this means the back-end and front-end teams can work independently, making it much easier to properly staff projects.

Architecture

With XM Cloud, Sitecore has introduced several significant changes to the architecture of their CMS. The most important and impactful of these is the Experience Edge, a Cloudflare-powered black box solution that replaces the role of CD servers. With Edge, Sitecore has eliminated the web database and the CD role altogether. Instead, content is now published to Cloudflare’s Edge black box, which ensures it is served up quickly, no matter where your visitors are.

Utilizing Edge, Sitecore can finally overcome the limitations of its original architecture and build a platform that can truly scale. Due to the nature of edge computing, certain features that are otherwise very common in Sitecore projects are not supported. These include:

  • Custom Search Indexes: You can no longer rely on Sitecore’s built-in indexes to query data in the code. While it’s possible to use search queries through the GraphQL API, you are limited to your context’s index and have no control over how and when the index is updated. The solution is to either build custom search functionality or leverage existing solutions, such as Coveo or Sitecore Search (marketed as a separate product).
  • Custom APIs: It is common to have one or a few custom APIs built into your Sitecore project, but with Edge, this is no longer possible since Edge cannot be extended by custom code. This requires some (and sometimes considerable) effort in rearchitecting your APIs by extracting them into separate apps.
  • Common components: It is common to include certain components that are used on many or all pages (think navigation). Due to how publishing works in Edge, if you had such a component and made a change to it, all the pages where that component is used would need to be published, not just the component’s data source. The solution is to redesign such components so that they request their data through GraphQL on their own at render time, instead of relying on it being available in the Layout Service response.
Leverage the power of Sitecore XP, XM or XC by letting SaM Solutions tailor any of these solutions to your unique digital objectives.

Conclusion

Sitecore XM Cloud is a giant leap for Sitecore, bringing their CMS up to speed with modern trends. It combines the power and flexibility of Sitecore CMS with innovative ideas from SaaS product development, providing users with a ‘Swiss Army Knife’ tool to boost their web presence.

Vadim Gusev

Vadim Gusev

Sitecore evangelist, Sitecore and .NET Architect at SaM Solutions. Full-stack developer with almost a decade of experience in the traditional and headless CMS world.