Currently many customers are planning their upgrade to Sitecore 8. For that reason, I would like to share our step-by-step technical process and tips for an effective upgrade strategy.
Our Recommended Sitecore Upgrade Strategy
Regardless of the version you are using today and the version you are upgrading to, there are a few things to keep in mind. The Sitecore upgrade process is relatively easy and well documented, but since the Sitecore platform is easily extensible, it can pose certain risks.
1. Document all modules in use
The first consideration of any Sitecore upgrade is what modules are in use on the site. It is wise to keep those well documented. Sitecore does an excellent job of keeping the compatibility of its products and modules well documented using the
Sitecore Modules Compatibility Table.
TIP: We suggest using the Package History module
by Kiran Patil to get a list of the packages installed and to help uninstall them if necessary. Each individual module can have its own upgrade process steps and some could be incompatible with others. This up-front research often makes the difference between a successful upgrade and a painful process.
Note: During our own upgrade process, a module that we had to be concerned with was the WFFM (Web Forms for Marketers) module. Check yours too - it may add a few more extra steps during the upgrade process.
2. Maintain historical analytic data
Since its first release in Sitecore 6.1 as OMS (Online Marketing System), its rebranding in version 6.6 as DMS (Digital Marketing System) and now its inclusion in Sitecore 8 Experience Platform as the Experience Database (xDB), every version has brought changes to historic analytic data that could have challenges. If you needed to maintain your historical analytical data, it would often require database schema changes, as well as a data import/migration process. This could be very time-consuming depending on the size of your historical data.
TIP: Start Fresh - If you are not using the historical data or can convince the business users to start fresh, this will eliminate quite a few headaches.
xDB (ExperienceDb powered by MongoDB) to the rescue - As of Sitecore 7.5, the biggest thing to keep in mind with the core Sitecore upgrade is the MongoDB requirement for analytic and personalization features. It provides the scalability and performance necessary for the increased benefits and data storage requirements at an enterprise level. So far the move to MongoDB has made the upgrade process less painful. However, you do need to assess whether you have the resources to install, maintain and support MongoDB internally for the expected level of production usage. Evaluate your site’s usage and determine the infrastructure needs based on the number of unique visitors, etc. You may find that you conserve both finances and resources using xDB Cloud, the Azure-based services provided by Sitecore.
3. Re-evaluate your architecture
With each upgrade, you have an excellent opportunity to reevaluate your architecture and your strategy. The recent move to MongoDB for the xDB is a great example. Look at your site’s usage, your disaster recovery plans (you do have those right?) and your site’s current usage versus your physical architecture.
4. Kill scope creep
As with any upgrade, everyone wants to jump in and include changes to take advantage of the new features or add new servers into the architecture. Resist the urge. There are usually enough changes associated with an upgrade to warrant keeping the upgrade isolated. Only make the changes required at the time of upgrade; otherwise simply add any other desired changes to your strategy and shelve those changes for a separate release and deployment cycle.
Expert opinion: Keep your upgrade iteration to the minimum required changes. Save everything else for a new release and deployment cycle.
5. Watch for API changes
Generally speaking, 95% or more of your custom code will typically upgrade without any major development time. However, you have to make sure that you are not using any of the API’s that may have been changed or deprecated. From Sitecore 7.2 to Sitecore 7.5, there were a few API’s that we had been using that changed. Here is an excerpt from the “Breaking Changes” section of the Sitecore 7.5 release notes:
The Sitecore.Analytics API has been completely reworked to support the new features and architecture in Sitecore 7.5. As a result, existing code that uses the Analytics API will have to be refactored to use the new API. For example, you now need to refer to Tracker.Current.Interaction instead of Tracker.CurrentVisit and you need to refer to Tracker.Current.CurrentPage instead of Tracker.CurrentPage.
6. DevOps! Continuous integration through the deployment lifecycle: development, test, QA and production
When everything is tested in your Development, Test and QA environments, you can move things to Production and deliver to your business users the awesome and exciting new features of Sitecore 8. We will cover all of the features in Sitecore 8 that we have found the most exciting in an upcoming blog post.
From Sitecore 7.2 to Sitecore 8: The Three-Step Process
Our development staff recommends these three steps:
Go to the Sitecore SDN website and download the upgrade package for Sitecore 7.5 revision 141003 (Initial Release) and the Upgrade Guide. Follow the steps to upgrade the site to 7.5.
Go to the awesome new Dev site and download the 8.0 revision 141212 (Initial Release) and Upgrade Guide. Follow the steps to upgrade the site to 8.
Determine which Update you wish to apply, download the package and Upgrade Guide and follow the steps. We used rev 150427 (Update 3).
For the last step, notice that you can skip Update 1 and Update 2 installation files and download just Update 3. However, you will need to make the config changes from each of the Update 1 and Update 2 revisions as well.
Important Note: Sitecore 8 Update 4 (rev 150621) was just released on June 30, 2015. Check the Release Notes here for fixes/features that you may need.)
For further assistance with Sitecore and your upgrade strategy or process, contact us.