All about Sitecore UpgradeBlog Category :Published on: 22 January 2020
This blog describes the high-level overview of the Sitecore upgrade process, planning and the challenges involved.
Let us understand....
1. What is Sitecore Upgrade and why it is needed
2. Sitecore Upgrade considerations
4.Sitecore Upgrade considerations for higher environments
5. Possible Challenges
1. What is Sitecore Upgrade and Why it is needed?
Sitecore is a leading digital experience CMS platform software product. The Sitecore team is continuously working on improving the product by adding new functionalities, features, bug fixes and incorporates latest technologies. Whenever new features are introduced, Sitecore releases a new product version (Sitecore product started with version 5.x and currently it is 9.3). When new version of the product is released, it stops supporting the old versions after the support expiry date (https://kb.sitecore.net/articles/641167) and recommends to upgrade the product to new version by providing upgrade packages and upgrade steps. In order to use new features and better version of Sitecore product, it is necessary to upgrade the existing Sitecore applications to newer versions.
2. Sitecore Upgrade Considerations
a. Discover the existing site
- Identify the Sitecore Modules (Custom/MarketPlace) (Ex. WFFM, EXM, URL-Rewrite, Power-Shell Extensions etc.) that are currently being used.
- Identify the Sitecore customization (Commands, pipelines, events, scheduled jobs etc.)
- Identify Third Party Integrations (CRM integrations, DAM integrations etc.)
- Identify the Third-party Libraries/NuGet packages being used in the solution. (ex. DI container, Glassmapper etc)
- Identify the Sitecore hot fixes libraries.
- Identify the patch config files. (patch files / direct file update)
- Identify the obsolete Sitecore API’s and services.
- Identify the Caching, Search providers (Solr, lucene, Coveo), Dependency Injection, Session management techniques being used.
- Identify the extent of DMS/xDB usage and marketing features.
b. Discover the compatible/alternate solutions available for the site discovery points with respect to new Sitecore version
- Make sure compatible Sitecore modules are available with the new Sitecore version.
- Make sure compatible versions of Third-party Libraries/NuGet packages are available with respect to new Sitecore version.
- Make sure the Sitecore hotfixes in the existing solution are addressed in the new version.
- Make sure compatible/alternative solutions available for Caching, Search platform, DI, Session Management etc.
- Make sure compatible/alternate features available for existing marketing features.
c. Identify the infrastructural needs for new Sitecore version (https://kb.sitecore.net/articles/087164)
- OS (Windows 10, Windows 2014 SP2 or Windows 2016 SP1)
- Visual Studio 2017
- .Net Framework 4.7.2
- Microsoft SQL Server 2014 SP2 /SQL Server 2014 SP1 / MS Azure SQL
d. Identify the Sitecore environments to be upgraded - Dev, QA, UAT, Prod
e. Download the necessary assets required for the upgrade
- Upgrade packages/files
- Upgrade documents
- Migration Tools (Express Migration Tool, xDB Migration Tool)
Express Migration Tool: Migrates Sitecore 6.6,7.2, 7.5 or 8.0 to the latest version of Sitecore
Experience Platform migrates:
- Content items and media
- All users, roles and security permissions
- Assists with configuration migrations
- WFFM items and data
xDB Migration Tool: Migrates Sitecore 8.1 XDB data to Sitecore 9 XDB
DMS Analytics to xDB Migration: Set of conversion guidelines need to be followed, This is needed only for the sitecore upgrade with versions below 8.
3. Sitecore Upgrade Steps
The main steps involved in the Sitecore Upgrade are
- Infrastructure Upgrade
- Sitecore DB upgrade
- Upgrade Package installation
- Sitecore Solution upgrade
- Sitecore Modules upgrade
- xDB data and Form data migration
Upgrade steps on Developer environment
- Upgrade the infrastructure
- Take back-up of current Sitecore instance
- Download and Keep all the Upgrade packages/files
- Create a new Upgrade branch in Source Control repository.
- Create two Sitecore instances (with all integrations) from Production DB (one for verification, one for upgrade)
- Upgrade Sitecore databases (Master, Web, Core)
- Follow the steps given in the Sitecore upgrade document and execute the DB scripts
- Install Sitecore Upgrade Packages
- Follow the steps given in the Sitecore upgrade document, analyse the config conflicts, fix issues
- Setup Fresh Sitecore 9.x instance with compatible Solr version (select the typologies based on environments)
- Restore the upgraded databases (Master, Web, Core) in Sitecore 9.x instance and update connection string
- Perform the Solution upgrade
- Upgrade .net Framework of the existing projects
- Upgrade referenced Sitecore assemblies in the projects to new Sitecore assemblies
- Upgrade the required Third-party libraries and NuGet packages
- Replace if any obsolete Sitecore API's with compatible API's
- Upgrade Sitecore Modules
- Correct the config files and Customization's. Keep all the patch config files in a folder inside include folder
- Build the solution
- Deploy the upgraded code to the Sitecore 9.x instance, fix if any config conflicts.
- Clear Cache, Full Site publish
- Populate Solr Schema and rebuild the indexing. Rebuild Link databases
- Migrate xDB data with xDB Data Migration Tool
- Validate the upgraded instance and verify all the existing features and functionalities and the new features available in Sitecore.
- Execute the above steps 2 to 3 times to find out if any hidden issues and ensure it works fine.
4. Sitecore Upgrade considerations for higher environments
Once the upgrade is performed successfully on developer environment, we are ready with the followings
- Upgraded Sitecore project solution is ready and available in separate code branch
- Exact steps need to be followed to run the upgrade on the higher Sitecore environments are known
- Exact steps need to be followed for the xDB and Form data migration are known.
In case of QA and UAT environment upgrades, we can follow any of the below approaches.
- Perform the DB and package upgrade and deploy the upgraded code.
- Restore the upgraded databases from the lower environments and deploy the code.
- In case of Production upgrade, need to consider following points.
- The upgrade must happen on the latest Sitecore databases
- Need to ensure zero downtime during upgrade.
- Need to enforce minimal content freeze for content authors
- Need to migrate complete xDB data
- Need to have options for rollback to the older version of the site(s) in case of prod issues.
5. Possible Challenges
- If any compatible version of the Sitecore marketplace modules are not available.
- If any Third-party Libraries are used and they are not upgraded to required version of .net framework.
- Migrating WFFM forms to Sitecore Forms (Sitecore 9.x does not support WFFM form)
- Fixing Sitecore config conflicts and obsolete API’s and Services.
- Perform the Sitecore upgrade on production with zero downtime (it is possible with proper upgrade strategy)
The sitecore upgrade steps and considerations mentioned above are general steps, might require additional steps based on application specific setup and implementations.