Upgrading Sitecore: you need a plan
After more than a decade of performing Sitecore platform upgrades, we look back on how the process has changed and offer some expertise on what makes the process seamless.
As with most products, to get the most out of them you need to continually update them. Whether it’s to take advantage of new features, maintain product support with the vendor, or to keep it secure. Sitecore is no different. With Sitecore 9 mainstream support ending this year, many people are looking to keep their applications supported by upgrading to Sitecore 10.
The old days
Early upgrades consisted of a very manual process. It was necessary to upgrade to each minor Sitecore version (for example, 6.5 to 6.6 etc.). When you factor in that Sitecore modules are upgraded in a similar fashion, you could be looking in the region of 30 upgrade steps, each of which taking considerable effort.
Historically, a typical minor upgrade was a time consuming, error prone and labour-intensive process. Installing the update packages, updating the config files and Sitecore libraries and other house-keeping tasks made for a slow process. What’s more, it wasn’t uncommon for the update package to fail, and to have to start the process again.
We discovered early on that those upgrades are much less error prone if you set up a clean instance of the source version and point it at your Sitecore databases. This removes custom pipelines and modifications which can sometimes conflict with the upgrade process. It was always a great personal success to finish upgrading an environment. Moving onto the next environment you’d expect to apply everything you learnt from the first, but time and time again you would learn every environment has its own quirks.
Time for change
Sitecore recognised that upgrading their product was not the most pleasurable of experiences and they vowed to make it better. They introduced the Sitecore Express Migration Tool. As its name suggests, its intention was to streamline upgrades. It would do this by removing the need to upgrade one minor version at a time.
The tool had some specific requirements and limitations. For example, it was only possible to upgrade from either 6.6 or 7.2 to 8.2. This meant that if you were on a much older instance, you would need to follow the usual incremental approach until you arrived at 6.6. Having said that, if the Express Migration Tool fitted your needs, it definitely made part of the process of upgrading more streamlined.
Sitecore today
In Sitecore 9 a new way of organising Sitecore configurations was introduced that made upgrades easier when going from v9, as customisations didn’t pollute the default Sitecore configs. Sitecore’s current release is 10.2 and the improvements they have made to the upgrade process means it is possible to upgrade from Sitecore 8.1 to the latest release in one go. It still requires some manual tasks, for example the need to run database scripts to upgrade each database, but this is clearly defined with a matrix allowing you to run a specific script for your source and target version combination. The process is much smoother than those of the past and has dramatically cut the time and effort in getting an upgrade live, in larger upgrades we have seen a reduction of as much as 60%.
The key to success
It is important to note that there is more to an upgrade than simply following the upgrade guide. At Great State every upgrade project undergoes a thorough planning phase to ensure that the process goes as smoothly as possible. As experienced Sitecore partners, we’re in a good position to share some of the keys to success.
- Understand the “as-is” state – mapping out a detailed view of what you currently have in place is critical to informing the upgrade approach, identifying and mitigating areas of risk and providing a benchmark to measure success against, this includes gathering pre-requisite information, hosting documentation and identifying third party modules and Sitecore patches in use.
- Assess the upgrade path – it is essential to carry out a detailed review of the upgrade path and “to-be” state against the current as-is state, informing the upgrade plan further. Including, which Sitecore patches are still required or need to be replaced, which third party modules are compatible with the target version, reviewing the hosting architecture to identifying new or differing requirements and breaking changes via Sitecore changelog.
- Create a detailed upgrade plan – a comprehensive plan will maximise the speed and efficiency of the rollout and needs to include a step-by-step approach to upgrading across the environments, data migration approach (especially for data which cannot be frozen, for example form submissions), key milestones for sign-off and approval, roles and responsibilities and roll back procedures.
- Define a comprehensive test strategy – covering the depth and breadth of both the web application and Sitecore feature set. Paying particular attention to customisations that have been made to Sitecore (e.g. custom dashboards).
- Implement change control – agreeing and enforcing a process that provides complete visibility of all changes, alignment to the needs of business initiatives running in parallel and ensuring no loss of data. This typically includes, enforcing a code freeze during the upgrade process, content freeze in the final phase of production upgrade and process for hot-fixing existing solution if urgent issues arise when upgrade is inflight.
Planning really is key. And the proof is in the pudding.
We recently delivered a Sitecore 10 upgrade under budget and ahead of schedule and here’s what the client had to say:
“All the planning really helped and we’ve really appreciated how we worked together with Great State to make it as coherent and detailed as possible”
We look forward to the continual improvement of Sitecore’s upgrade process and dream of the day it’s a one-click process. Until then we’re pleased to be recognised as making a tricky process feel seamless to our clients.
Are you planning your next Sitecore upgrade? Get in touch.