2. Today’s speakers
• Lives in Auckland
• 10+ years of Sitecore experience
• Working on migrating one of the large NZ commerce websites from
Sitecore Commerce -> JAMStack
• Follow me on Mastodon and Medium
Jack Spektor
Sitecore Tech Lead @ AKQA New Zealand
https://mas.to/@jackspektor
https://medium.com/@jackspektor
3. Today’s agenda
- What is XM Cloud?
- Benefits of migration to XM Cloud from standard XP/XM
instance
- Migration challenges
- Upgrade strategies
- Changes to the team structure
4. THANK YOU to our sponsors
D I A M O N D
P L A T I N U M
G O L D
13. Sitecore XP → XM Cloud
Less traffic served
by Sitecore
instance (no CD
servers needed)
Improved
performance thanks
to Next.js (blazing
fast Lighthouse
scores)
Less spending
on
infrastructure
Scalability OOTB
Benefits of migration to XM
Cloud
14. Sitecore XP → XM Cloud
Benefits of migration to XM
Cloud
Simple
architecture and
separation
between FE and
BE
Faster builds &
deploys
Sitecore-managed
upgrades & hosting
16. Serialization & Content
• Serialization changes
• No more Unicorn/TDS – everything is Sitecore Serialized
• No way to upgrade DB, full content migration would be required
• Razl can help with content migration
• Plan content freeze and content author training (especially if you want to use Pages
Pages editor)
Migration Challenges
17. Review the used Sitecore modules
• Any functionality relying on Sitecore custom modules would probably need to be
to be rewritten in Next.js
• Most of Sitecore modules (like Commerce) would need to be replaced with
alternatives as well
Migration Challenges
18. Review the used Sitecore modules
Migration Challenges
Module Alternative
Sitemap module Next.js boilerplate sitemap
Redirect module Next.js redirects
Sitecore Commerce OrderCloud
EXM Sitecore Send
Sitecore Forms Support coming in near future
19. JSS Everything
• All sites should be converted into JSS
JSS
• MVC is not supported but migration is
migration is possible with layout service
service
• Development focus is moving on FE
Migration Challenges
20. Personalization
• No more XP features (XDB, analytics, EXM,
EXM, etc.).
• Sitecore Personalize SaaS solution should
should be used instead
• Consider that personalization rules would
would need to be migrated and re-applied
Migration Challenges
21. Webhooks vs. custom code
• Minimize any custom code deployed to XM
to XM Cloud instance
• Utilize webhooks for subscribing to Sitecore
Sitecore events
• Yet not all pipeline functionality is
supported (e.g. can’t customize request
request pipelines)
Migration Challenges
22. No more custom search
• Custom Solr indexes are not supported
anymore
• No more SXA search components available
available
• Search implementations are still possible
possible though such as Sitecore Search,
Search, Coveo, Searchstax or Algolia
Migration Challenges
23. Docker Upgrade
• Docker is used both to run local XM Cloud
Cloud development instance
• And to deploy customizations to XM Cloud
Migration Challenges
24. Sitecore CLI
Use CLI to debug and monitor Sitecore XM Cloud
Cloud instance for:
• Serialization
• Manage indexes
• Publishing
• Deployment
Migration Challenges
25. How does it affect estimation?
• Lots of functionality of existing Sitecore
Sitecore code would be affected and needs
needs to be replaced with alternatives
• Less control over deployed Sitecore
instance, would affect CI/CD and processes
Migration Challenges
27. Discovery
Discovery phase – identify the scope of work and
and complete a gap analysis for a roadmap.
- Assess which Sitecore features are used –
search, personalization, analytics
- Are you using XM-only features? JSS?
- Identify Sitecore customizations
- Identify custom business logic to be extracted
extracted
Upgrade Strategy
28. Plan
Plan – choose the right upgrade approach
Choose the upgrade plan depending on the solution size and complexity
All-in upgrade – lift and shift migration with releasing the upgrade after completing all
migration activities
Upgrade Strategy
PROD
UAT
XM Cloud Upgrade
29. Plan
Plan – choose the right upgrade approach
Iterative upgrade – gradually moving the functionality to XM Cloud
Upgrade Strategy
New Feature Development
PROD
Migrate to
latest XM
Migrate to
SCS
Extract
APIs
Migrate
search
Migrate pages
30. Plan
Plan – choose the right upgrade approach
Choose the upgrade plan depending on the solution size and complexity
• All-in upgrade – lift and shift migration with releasing the upgrade after completing all
completing all migration activities
• Iterative upgrade – gradually moving the functionality to XM Cloud
• Staying with on-prem but enhancing PaaS Sitecore installation with composable offerings
Upgrade Strategy
31. New Team Structure – More FE and less BE
- Migration to XM Cloud is not only about code migration
- FE now takes most of development time
- FE might benefit with Sitecore training
- BE developers might need to be hands on with modern FE
tools like React/NextJS
- Tech Leads must be aware of composable SaaS offerings and
their pros/cons
Upgrade Strategy
time
Designers
Front-End Dev
BA / Product Owners
Tech lead / Architect
32. How Sitecore supports migration into XM Cloud?
Upgrade Strategy
Sitecore Demo Portal
Allows to deploy a demo Sitecore
instance for Sitecore Partners &
MVPs to play around
XM Cloud Plus
Bundle offering from Sitecore that
mimics the capabilities of Sitecore XP
Sitecore Accelerate
Support program from Sitecore for
XM Cloud migrations
33. Summary
• XM Cloud migration estimate depends on the size and complexity of the project
the project
• Discover how big is the gap between current state of your solution and XM Cloud
XM Cloud and plan the migration activity in your roadmap.
• Upgrade to XM Cloud takes time but brings tangible long-term benefits in
benefits in infrastructure costs, dev team efficiency and performance.
• Sitecore builds with v10.1 and higher are easiest to upgrade and all the efforts of
efforts of keeping Sitecore solution up-to-date would now pay off when
when migrating to XM Cloud
Upgrade Strategy
Hello
My name is Jack Spektor, I’m a Sitecore Tech Lead at AKQA and today I’d talk about estimating the migration to XM Cloud.
Few words about me:
I live in Auckland, work with Sitecore for more than 10 years, 4 times Sitecore MVP and also, I’m trying to share my Sitecore learnings on Twitter and Medium.
Today I’ll do a quick intro in what's XM Cloud and how its different to traditional hosted Sitecore instance
I’ll talk of the benefits of migration to XM Cloud
And what challenges we’ll face during the migration that would affect the estimate
We’ll also cover which upgrade strategies we could take (that would affect the estimate) and how the team structure would be changing with the new approach
But first big thank you slide to our sponsors.
So What’s XM Cloud
With classic Sitecore development we had Sitecore instance hosted in Webapp or in IIS and having all the features as part of ONE product offering - analytics, CMS, CRM, presentation, etc.
However with the new composable approach we have each Sitecore feature being a separate Software-As-A-Service that could easily integrated and even replaced with alternative offering.
New XM Cloud offering is based on JAMStack and modern FE tools like NEXT.js and Vercel.
With XM Cloud Sitecore is provided as a headless CMS that is hosted in the cloud.
It provides OOTB tools for marketers such as pages editor based on Horizon
As well as APIs for deployments and Sitecore management.
Sitecore XM Cloud in its essence is a SaaS solution, but its also flexible to customize and manage as PaaS
Migration to XM Cloud is a big change in terms of solution architecture.
With traditional Sitecore development we deploy code on top of existing Sitecore instance together with our business logic, apis and CMS customizations
With new JAMStack approach Sitecore is providing content as headless CMS with all the content served through experience edge GraphQL endpoint.Meanwhile presentation layer is deployed separately with the help of Next.js app and is consuming the Sitecore content.
What are the benefits of the new approach?
With XM Cloud majority of our presentation is rendered on the client-side vs CD servers. That means less traffic and CPU load on our Sitecore instance.
It also means faster response times and better Lighthouse scores.
Less traefic and CPU load-> less spending on infrastructure
And since the infrastructure is fully managed by Sitecore and our rendering hosts are hosted in FE cloud (such as Vercel) – that means scalability OOTB – we no longer need to worry about load balancers for our CDs.
Another benefit of SaaS – we no longer should worry about upgrades in the future. All Sitecore upgrades and hosting would be managed by Sitecore.
Which also means btw that we’ll get new features as they would be released by Sitecore – such as for example new AI offerings.
With Sitecore being headless we now have a clear separation between BE and FE, which simplifies the code, and also improves the build and deploy speeds.
We can now separate the deployment of sites hosted on the same Sitecore instance.
Imagine deploying a new feature for one of the sites in just 2 minutes – that’s a reality now with JAMstack.
So there is a lot of benefits to Sitecore migration, but what are breaking changes and challenges of the migration?
How much would it take to migrate your solution.
That depends on YOUR solution.
First challenge is serialization.
Do you already use SCS serialization in your Sitecore instance?
If you already using Sitecore content serialization format then it simplifies the migration, however many Sitecore solutions still use Unicorn or TDS for serializing the content.
So far XM Cloud supports only SCS serialization.
The migration would also require to take into account transferring the content between environments. There is no way upgrade the existing Sitecore DB, instead you’d need to use tools (such as Razl) to migrate the content.
It’s important to plan ahead content freeze and also consider training content authors especially if they want to use new Pages interface for building presentation.
If you ever installed custom Sitecore modules – most of them wouldn’t be supported with XM Cloud.
If your solution uses Sitemap, redirect module – most of that would need to be rewritten to Next.js alternatives.
Here is a small overview of a popular Sitecore modules and how they would need to be replaced.
For Sitemap and redirects Sitecore provides a boilerplate starter code that could be used to implement them.
Sitecore OOTB modules like Sitecore Commerce are also replaced with JAMStack headless alternative like OrderCloud, which would also require dev effort to migrate.
EXM module would need to be replaced with Sitecore Send.
Sitecore Forms is also not supported yet (though the support is promised to be added in the near future)
With XM Cloud MVC components are no longer supported and all the sites instead need to be migrated to JSS.
There is a migration path that helps to speedup the migration of some of the MVC components (such as statically rendering Sitecore MVC website), but it has its own limitations and probably wouldn’t cover all scenarios.
The JSS also means that now most of the development for XM Cloud happens on the FE with React/Next.js.
XM Cloud feature-set is limited to the functionality of XM Sitecore instance.
That means that if your website any custom personalization rules, any analytics or EXM customizations would need to be migrated/removed from the codebase.
XM Cloud instead provides alternatives composable services as replacements. Such as for example Sitecore Personalize that provides personalization solutions for Sitecore and can be integrated into Next.js.
Sitecore personalize doesn’t use the Sitecore rules for personalization, therefore we need to consider that existing personalization setup would need to be re-developed and migrated to a new site.
XM Cloud provides customization options for XM, however it’s recommended to minimize the number of code customizations to Sitecore instance.
Instead to integrate Sitecore provides webhooks that allows to subscribe to content-changes and events in Sitecore instance.
Also, some of Sitecore events would no longer be available – such as request pipelines, analytics pipelines, etc.
Another major breaking change to XM Cloud is search.
With XM Cloud custom search indexes are no longer supported. Same as SXA search components wouldn’t work either.
Instead we are provided with search implementations by Algolia/Searchstax or Sitecore Search that would be crawling the rendered HTML and indexing it to provide full-text search.
So if your Sitecore website contains search functionality it is most likely that the implementation would need to be migrated as part of move to XM Cloud.
By now majority of Sitecore solutions already migrated to Docker.
But if you haven’t already with XM Cloud this is the ONLY way now.
That means that all local development and Sitecore customization is done with Docker now.
All BE devs must be proficient with Docker.
For FE devs it’s also recommended, however there is a connected mode available that would allow to use Sitecore GraphQL endpoint directly from Next.js without any locally running Sitecore instance.
If your solution have extensive CI/CD pipelines – they would be affected now as well as now its required to use XM Cloud APIs to perform deployments and Sitecore management.
Such are provided with Sitecore CLI
This would affect serialization and Sitecore publishing.
There are a lot of breaking changes that would affect the code. Lots of existing code base would be affected and would need to be replaced with alternatives.
There would be less control over Sitecore instance and that would affect the CI/CD and all Sitecore custom integrations that were done before.
In general, moving to XM Cloud would require much more effort than any previous Sitecore upgrade.
Now when we identified what challenges we would face during migration lets also talk about the upgrade strategy.
When planning the Sitecore upgrade we need to go through the breaking changes we talked before and complete the gap analysis to plan a migration roadmap
We’d need to asses how much of Sitecore features are being used (personalization, analytics, etc.).
For example:
If you are already hosting with XM it’s likely that it would take less effort to migrate than if you are using XP configuration.
If you are using JSS then you are much more prepared for migration than with MVC/SXA builds.
Business logic, APIs need to be identified and separated into microservices.
Depending on the solution size, complexity and business requirements you can choose the right migration strategy
1) could be all-in lift&shift strategy,
in this case we are re-building the site from scratch into a new environment. Good for small-size solutions
2) or iterative approach
In this case XM Cloud features (SCS, search and removal of XP-specific functionality is done alongside new feature development) and released to existing environment with gradual transition of sitecore sites presentation to JAmStack
3) depending on budget and requirements some solutions don’t need to be migrated, but can benefit from composable offerings (such as Personalization, Search etc.), or you might be interested in upgrading to JSS/Sitecore serialization to simplify the migration to XM Cloud in the future
Finally XM Cloud migration would affect not only code or infrastructure, but also team structure itself.
With migration to JAMStack FE team members would become the primary drivers of development.
Therefore all BE devs would need to be upskilled and be hands on with modern FE frameworks like React/NextJS
FE respectively can be upskilled with JSS / Sitecore
And tech leads would need to be aware of SaaS services they can use and their pro/cons.
It’s also worth mentioning how Sitecore itself supports the migration:
First Sitecore provides Sitecore Demo Portal which allows to explore and deploy demo instances of Sitecore XM Cloud and its integrations with search/personalization/etc. This could help you to look around and get to know XM Cloud better before planning the migration.
Sitecore also provides XM Cloud Plus which is a bundle of composable products that mimics the feature-set of XP Sitecore instance (personalization, analytics, CRM, etc.) and also provides FE as a service no-code tools.
And also Sitecore Accelerate – which is a support program for XM Cloud migrations.
With that you can get technical support, get answers for the questions about migration, and even give feedback about the platform.
To summarize XM Cloud migration estimate depends on the size and complexity of the project.
Successful upgrade would require discovery and planning.
Upgrade takes time and requires big commitment of resources, however it brings long-term benefits in infrastructure costs, development efficiency and website performance.
Those Sitecore solutions that invested into keeping up-to-date with latest Sitecore version and tools are easiest to upgrade and the investment may now payoff when migrating to XM Cloud.