So, you find yourself in a need of a Sitecore Upgrade and don’t know what to start with or how to approach it? This series of blog posts will cover the whole process from zero to hero, or in upgrade terms – from planning to going live. It comes in the form of a guide that will save you at least 2 times of cumulative effort, due to avoiding hidden traps and unobvious issues on your way to a shiny upgraded solution. Over time I have struggled and documented most of these issues and now want to share them all in one place.
Content
- Part 1: Scope Planning
- Part 2: Upgrade Tactics
- Part 3: Content Migration
- Part 4: Upgrading the Codebase
- Part 5: Changes in Sitecore 10.x
- Part 6: Testing and Going Live
Planning the Sitecore upgrade
Before reviewing planning activities, let’s first answer the fundamental question
Why Upgrade?
Upgrading Sitecore XP is definitely located in the shadow area of the complexity. Of course, the vendor understands that and supplies numerous upgrade instructions for each of its versions as well as the relevant tool. However, the strength of the platform – the ultimate customization, is also its greatest weakness – it is simply impossible to cover all possible scenarios where customers customize Sitecore XP, therefore there cannot be a single universal approach.
To start with, why do we want to upgrade Sitecore given that it is not that quick and easy? The answer sounds logical – it is a carrot and a stick motivation.
Speaking about “the stick” – at the end of the calendar year, the mainstream support expires for one or a few platform versions. That means Sitecore still provides security updates and fixes, but they do not support development and compatibility queries. I would recommend reading this knowledge base article about Sitecore Product Support Lifecycle.
When it comes to “the carrot”, companies do upgrades mostly due to new features or new experiences. For example, you may read detailed articles I wrote about new features and improvements coming in the latest versions of the platform, namely 10.2 and 10.3.
Also, staying at the latest version is especially valuable in front of Composable DXP, which has already taken place. The latest versions of XM and XP platforms are built with architectural assumptions of composability. Upgrading to the latest version of the platform could also be a part of your composable upgrade path strategy to XM Cloud.
Key Things to Consider
Propper planning is the key to success. How do we perform the planning and what should be considered?
1. Upgrading vanilla Sitecore would cost you minimal effort, but with the more custom code you have – expect more labor to commit. How much is your solution customized? All these factors will affect your timescale and impose additional risks which are better to know in advance.
2. If you can obtain access to any of the existing solution documentation – that would be a perfect place to start. And it will likely give some answers to the previous point.
Find the details about all environments, code branches, and which code branch is deployed to which environment. Also, you will be interested in the details about existing CI/CD pipelines.
3. Find the custom configurations made into the Sitecore. That alone gives you a great overview of the scope of work.
4. Talk to stakeholders! Who better than them to know the details no one is more invested in the success of the upgrade.
5. It seems very logical that the more versions you jump through – the more complicated the upgrade process will be.
However, that isn’t a rule of thumb – some versions have very minor changesets and could be updated with minimal effort. Others – the opposite, could be extremely difficult. For example, that is the reason 9.3 stands out from the version chain on the below version diagram. It happened that version 9.3 took most breaking changes, deprecations, and internal housekeeping improvements than any other version did.
6. Therefore, one of the most valuable planning activities – investigating through Release Notes documents for every single version on your upgrade path. Pay special care to these two sections: Deprecated/Removed & Breaking changes.
7. Identify the functionalities which are no longer supported including any third-party add-ons/modules and find their alternatives. Sometimes it may not be that obvious, for example, you may have a blogging engine that works really well with existing version 8.x implementation, but under the hood, it relies on Lucene search which was deprecated.
8. With new platform features license file format changes with time. Even with the most permissive license, your old license file may be simply incompatible with the newer platform. That for example happened when version 9 was released.
It is wise to care about the license file in advance, as the process takes some time. Your development team will need the updated license file to start work, so please do not delay and check that with your account manager.
9. Speaking about the development team, every solution is unique, and every development team is just as unique. Estimates must consider these factors, along with previous relevant experience of your team. Make sure you will have the resources for the whole duration of the upgrade and consider creating a fallback plan if someone gets ill or leaves (also known as the “bus factor“).
Please keep in mind, this diagram is not a guide or any sort of assessment. it is just a high-level example of teams’ activity through sprints.
10. Also take a look at Sitecore compatibility guide to ensure all of your planned tech specs stays in compliance with it.
Recap Legacy Tools
Before heading to the upgrade tactics, let’s quickly recap some upgrade tools we did have over time and how they performed. It comes up that each Sitecore platform version had at least one tool that supports upgrades.
1. Express Migration Tool
One can use Sitecore’s Express Migration Tool to move over data from your old instance to your new one. It supports migrating from previous old versions to Sitecore 9 initial version. Express Migration Tool copies items and files from one Sitecore instance at a time.
The Sitecore Express Migration Tool copies items and files from one Sitecore instance at a time. The tool supports the migration of remote servers.
2. The Update Center
Update Centre was introduced in Sitecore 9.0 Update 2 and is valid up to Sitecore 10.1.
You can find, download, install, and manage updates and hotfixes for the Sitecore platform and Sitecore modules. The Update Center accesses a package management service provided by Sitecore, or you can install and provide a service yourself.
The Sitecore Update Center uses this URL of the Package Management Service to check for the Sitecore updates:
<add name="PackageManagementServiceUrl" connectionString="https://updatecenter.cloud.sitecore.net/" />
3. Sitecore UpdateApp
UpdateApp was released with platform version 10.1 and will be explained in more detail further ahead in the post related to 10.x specifics.
That concludes the first post in the series, the next post highlights some of the best upgrade tactics to save valuable time.