Sitecore Upgrade in a Nutshell
After returning from Sitecore Symposium 2016, I was bursting at the seams to try the latest Sitecore 8.2 features. After much oohing and ahhing, I decided to take the latest and greatest tools and features for a test drive and find out for myself the level of challenge (or fun as I like to call it) was ahead so I could be best prepared before making recommendations to our clients. Most of our clients are currently on Sitecore 7.2. So, the first step would be upgrading them to 8.2. Then ensued some exciting times with the Sitecore Express Migration Tool – one of the nifty trinkets announced at Symposium.
So, based on my journey, I wanted to share precisely what this latest Sitecore upgrade entailed:
Step 1: Current Solution Stack
Know the current stack of tools, frameworks and projects that would be impacted by with this upgrade.
In this example:
-Sitecore 7.2 (Rev. 141226)
-.NET Framework 4.5
-SQL Server 2008 R2
-Solr version 4.x.x
-Ensuring an established plan tor migrating current production data to upgraded environment
-Determining the order of events as they would occur for the entire upgrade process
Step 2: Proposed Post-Upgrade Solution Stack
I referred to various Sitecore compatibility tables to make sure I was in compliance with Sitecore’s recommendation. Here are two of those references:
-Sitecore CMS and Sitecore XP compatibility with different browsers, operating systems, .NET frameworks and database servers: https://kb.sitecore.net/articles/087164
-Sitecore Solr Compatibility: https://kb.sitecore.net/articles/227897
Based on the knowledge base articles here is how the post-upgraded stack would/could look like:
-Sitecore Experience Platform 8.2 Initial Release
-.NET Framework 4.5.2 (At least)
-SQL Server 2008 R2 (as is)
-Solr Version 5.1
Step 3: Order of Upgrade Operations
-Upgrade your solution
-Restore Production Data into internal environment(s)
-Post upgrade operations
-Verify build and deploy processes.
Step 4: THE FUN PART
-Update all Sitecore references for all projects in your solution to Sitecore 8.2. This will break things so you would need to spot treat.
-Upgrade every project in your solution to .NET Framework 4.5.2. This could also break things.
-If you have Sitecore Shared Source Modules integrated in your solution they will break too, but it’s all good, sometimes you have to break it to make it!
I followed directions from these excellent posts listed below:
Sitecore Link: https://doc.sitecore.net/sitecore_experience_platform/80/setting_up__maintaining/search_and_indexing/walkthrough_setting_up_solr#_Preparing_Solr
Leave the Sitecore index generation part to come back to after you have upgraded Sitecore and are ready to connect Sitecore Indexes to Solr Cores.
Prepare Upgrade Skeleton for IIS Webroot
-Execute a vanilla Sitecore install for Sitecore 8.2.
Configuration of servers
–Database connection strings for configuring servers
Configure CD and CMS servers
–Configure a content management server
–Configure a content delivery server
Configure other servers as needed
–Configure a processing server
–Configure a reporting service server
For additional information regarding xDB set-up refer to Sitecore xDB
Restore Production Data
-Use the Sitecore Sidekick Content Migration tool for this. If you don’t have this tool installed in production, restore production data the traditional way in the environment closest to production – i.e. Staging/UAT/Pre-Prod – and then pull data from there.
-Install the Nuget package on the solution. Make sure your web project is selected as default project. Here is what the pst Nuget Package install looks like:
Copy following files to other environment’s CMS install instance:
Revisit what you have accomplished:
-Solr core set-up complete
-Production content restored and/or ready to be pulled down
Next, follow Sitecore Express Migration Tool Guide without skipping any steps.
Once the migration is completed successfully, prepare for the post upgrade steps as directed in the guide plus the next section.
Migrate IIS Website
Now is when you would need to be a domain expert as well as be able to read and understand Sitecore configs. I had to open few tickets with Sitecore for some of the settings I had on the existing solution.
-Compare/merge your configs
*Custom application configurations files
*Configs installed as part of any of the Sitecore Shared Modules
*Deploy the binaries and files of your site to the vanilla Sitecore Webroot that is pointing to your upgraded set of Sitecore databases.
At the end of this step you should have a functional, upgraded Sitecore website sans some final fine tuning. You’re almost there!
Post Upgrade Operations
-Update Solr schema for any custom indexes you might have on your Sitecore instance
-Publish your site
-Test your site locally – making sure nothing else is missing and none of the site features are compromised including but not limited to:
*Custom marketing components (tags, click campaigns etc.)
-Verify or restore the build/deploy processes for your application
-Install blank Sitecore databases in which environment is next
-Run the migration tool
-Deploy the web root
-Test the site > Fix the issue > Redeploy – this might take a few attempts
You did it! You are now ready to help your client enjoy many of the Sitecore 8.2 experience features to boost their business!