5 Gotchas during a Sitecore 9.x upgrade

Recently we had the opportunity and challenge of upgrading an existing 8.2.7 Sitecore implementation to 9.x. You might ask, why would you label this a 9.x instead of saying which version you upgraded to. You will soon see. Along with that, you will see all the gotchas that came along with the upgrade. Here is what we learned as we got into the nuts and bolts of the process. Hopefully, it will be helpful for you.

Gotcha #1: Finding compelling rationale to upgrade Sitecore from version 8 to version 9

For most of us, once we’ve determined it’s time to do an upgrade, the first step is getting the business on board with the need and/or benefits of doing it. If you have been around Sitecore in the last few years, you know there are some releases that are better than others. Sitecore 8.2 (update 7), our client’s existing version, was not a bad release. Obviously, it did not have some of the bells and whistles of a 9.x version, but it was stable and had a simple architecture. So, how did we “sell” the upgrade?

After learning about the 9.0 release in Oct 2018, we kept a close eye on stability, complexity of the upgrade, and benefits such as the new bells and whistles. Watching these factors over time, we saw a good version hit the streets with 9.2, and by then upgrading to that version was not as difficult as going to 9.0. So, we aimed for 9.2 because of the new JSS capabilities, great improvements in SXA, GraphQL, the removal of Mongo, and the new Marketing automation capability. All of those were enough to provide the business value to take our Sitecore instance to the next level.

Gotcha #2: The Sitecore architecture “grew” in version 9

Sitecore 8.2 was a pretty simple architecture with a single Content Management (CM) Server, one or more load balanced Content Delivery (CD) servers and a Solr search platform. In version 9, the architecture became, let us say, more scalable, introducing the breakout of the identity server, processing server, reporting server, collection server, etc. And this is not to mention all the new databases that came along with each of the servers. Of course, the CM and multiple CD servers were still in the picture as well. With this new architecture came cost and the need to approach management to ask for a more expensive server footprint for a Sitecore system that had previously been so simple. That said, it does not hurt to be prepared to consolidate servers if budget or management does not allow for the increase in cost.

Also note, the configuration file architecture “grew” as well, now using multiple small files instead of larger ones. While this may be a long-term benefit as far as maintenance and support go, in the short term, it adds to complexity of the upgrade by introducing an additional learning curve for the technical teams.

Gotcha #3: In an Enterprise, different teams must pitch in, and timing can be a complicating factor when upgrading to version 9 of Sitecore

Once management was able to overcome the sticker shock and negotiation of the new architecture, we then had to coordinate with other teams at the client’s site to get the new databases built out (DBA team), the servers (VMs) built out (Infrastructure team), proper proxies and security protocols (InfoSec team) to execute and build out the shell environment.

We decided to have only 2 environments (due to cost), so we built out the test environment first and moved to production. All of this while the development team was getting up to speed locally with the new Sitecore architecture and the new configuration file architecture.

This approach would not have been so bad, but the timing really hurt us…
We began this journey in June of 2019. We finally pushed through budgets and politics and prioritization, truly beginning work on the project in November. So, the next battle was the approach of the holidays and the various vacations from all the teams mentioned above. This caused the usual holiday slow down (and we didn’t realize there was a pandemic right around the corner).

Gotcha #4: Application challenges

This was an implementation we “inherited”. So quite a bit of the technical direction was done prior to our arrival. One of the implementations included Glass as an ORM. This meant that we had to upgrade the severely outdated Glass implementation (v9.x forced it). That impacted every view and controller rendering. Also, the previous technical team had downloaded various patch dlls from Sitecore support over the years, so those had to be vetted and removed one by one.

Gotcha #5: Sitecore Version changes

During the upgrade to Sitecore version 9.2, Sitecore released 9.3. We came together and made the decision to go ahead and get on the latest version to buy more time before having to upgrade again. Funny thing is, 3 months after going live, Sitecore released version 10 – it is a never-ending cycle.

I will leave you with this. If someone says it is an easy thing to do an upgrade in a true enterprise environment, then they are oversimplifying, and you should look for a second opinion. The actual upgrade itself is not difficult; it is all the ancillary bits and pieces that come along with it that can make the effort a rather complex project!