Upgrade Strategy from Sitecore 8.2 to 9.0.2

Recently we have upgraded one of our projects from Sitecore 8.2 to Sitecore 9.0.2, there are different ways to do the upgrade, in this post i will explain the strategy that we followed to do the upgrade with zero down time, taking in the consideration there is live website on Sitecore 8.2.

The project was two phases:

phase 1: using the CMS functionalities for Sitecore only.

Phase 2: Using the full experience platform including Sitecore analytics, marketing tools and Personalization.

We recommended to the client to move to Sitecore 9.0.2 before starting phase 2,if you have same situation I highly recommend to go with this approach, it is much easier.

1) Infrastructure:

The infrastructure that we had with Sitecore 8.2 was for CMS-Mode (XM) Only as below:

  • 1 CM Web Server.
  • 1 CM DB Server :
    • SQL Version: MS SQL 2014.
    • Databases : Core, Master, Web.
  • 2 CD Web Servers.
  • 2 CD DB Servers (Replica) :
    • SQL Version: MS SQL 2014.
    • Databases : Core, Live.
  • 1 SOLR Server :
    • SOLR Version: 5.0.1

With Sitecore 9.0.2 using the full experience platform we scaled the environment and we added new softwares on existing servers, adding few servers as well:

  • 1 CM Web Server.
  • 1 CM DB Server :
    • SQL Version: MS SQL 2014.
    • Installing New SQL instance: MS SQL 2016 SP1
    • Databases : Core, Master, Web.
  • 2 CD Web Servers.
  • 2 CD DB Servers (Replica) :
    • SQL Version: MS SQL 2014.
    • Installing New SQL instance:MS SQL 2016 SP1
    • Databases : Core, Live.
  • 1 SOLR Server :
    • SOLR Version: 5.0.1
    • Installing new SOLR version on different port: 6.3.1
  • XConnect Server: we created seperate server for XConnect and we installed 4 services on it as below:
    • Collection & Search.
    • Reference Data.
    • Automation Operation.
    • Automation Reporting.
  • Reporting Server.
  • Processing Server.
  • Reporting DB Servers (Replica), contains the following database:
    • Analytics.
    • Processing Pools.
    • Processing Tasks.
    • Shard Map Manager.
    • Shard 1.
    • Shard 2.
    • Automation.
    • Reference Data.

2) New Website Instance:

On the development environment, we created another copy instance of the Sitecore 8.2 website (Databases and Website), and we used the upgrade Package from Sitecore on perform the updates, following the steps in the link below :


Note: if you are on Sitecore 8.2, you don't need to use the migration 
tools, upgrade package is enough.

2) Code Repository:

Since we have a live website running on 8.2, we created a new branch for 9.0.2 from develop branch and we were doing supports (bug fixing) for the 8.2 website on develop branch, and we upgraded the foundation layer to Sitecore 9 on the new branch.

Note: The new branch merged later after the testing with develop branch.

3) Content Editing:

Upgrade code took from our side around 2 weeks, it can be less or more depends on the project size, but during that time we had some content changes on the live website 8.2, so we asked content authors to put these changes on excel sheet until we finish the upgrade, this will be good for content authors as it will reduce the time of content freeze.

4) Deployment to production:

Since we are using different topologies on the development and staging environment, we repeated the Step #2 on production as well, we used the following topolgies for each server:

  • CM: XP1.
  • CD1: XP1.
  • CD2: XP1.
  • Reporting: XP1.
  • Processing: XP1.
  • XConnect: XP0.

5) Testing:

We gave the QA team internal link to test the website functionalities on staging and production environment.

6) Content Freeze:

We asked the content authors to add their updates from excel sheet on the new Sitecore instance, from our side there was not that much changes on the content so it took around half day to finish the updates.

6) Switch Off the old website: by switching off the old app pool and adding the same binding on to the new Pool in IIS.


There are different ways to do the upgrade from our side we have done in this way it worked smoothly with us, I hope you find this post helpful, If you have any additional knowledge on this subject, comments or questions, please let me know in the comments section below.

3 thoughts on “Upgrade Strategy from Sitecore 8.2 to 9.0.2

    1. Hello Kiki,
      Regarding to Server specs, we installed the proper versions for Sitecore 9 for example, if SQL database is 2014, Sitecore 9 requires SQL 2016 SP1, so we installed another instance on 2016 SP1 on the same DB Servers.
      Regarding to the Website, as I explained in the blog post, we just created another new copy instance from existing website.


  1. We’ve seen documentation that Sitecore 9 doesn’t support database replication and only supports always on availablity sets. Did you run into any issues with this?


Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s