Alpha Solutions recently held a webinar discussing the benefits of and potential difficulties in upgrading an existing Sitecore solution to version 8. After participating in that presentation, I felt like I could share a bit more technical information beyond what I was able to cover there – so here’s a blog post!
Sitecore 8 brings a whole host of new functionality for your content authoring and marketing users and has a beautiful new responsive user interface that your users will love. But what about the more technical users? The administrators, the developers – the people responsible for keeping the web site running and performing at its best?
First off – that new user interface that looks so impressive brings with it some great improvements to performance and browser compatibility. Long standing issues with the Sitecore interface in recent versions of Internet Explorer appear to be gone, and Chrome and Firefox users will experience a snappier interface as well. A lot of these improvements come from the new technology underpinning the Sitecore UI called SPEAK. Sitecore have made the SPEAK framework available to developers as well.
In the past I have built UI customizations for Sitecore using their older Sheer UI technology… Let me tell you, SPEAK is a huge improvement! It’s built on top of the latest web technologies like HTML5, jQuery, Backbone, Knockout, Twitter Bootstrap, etc. SPEAK stands for “Sitecore Process Enablement & Accelerator Kit” and it’s really all about making it quicker and easier to develop custom applications for Sitecore that immediately fit in with the rest of the Sitecore user experience. I will say that there is a bit of a steep learning curve when you first begin to work with SPEAK, but there’s been some really great information being shared within the Sitecore community over the last few months and I think it’s 100% worth the effort to learn to work with it.
During the webinar, I spent a lot of time talking about the new Experience Database, or xDB. For marketers, this repository of “everything and the kitchen sink” is incredibly useful for analyzing engagement with their company’s brand, personalizing content in new ways, and enabling them to better connect with customers across multiple channels. But the first question from the technical crowd always seems to be “why MongoDB”?
There are a lot of technical reasons to choose a NoSQL solution like MongoDB over a traditional relational database (in certain scenarios), but for Sitecore I think it really came down to two things: performance, and flexibility. A lot of customers using DMS had been running into issues with analytics data collection seriously affecting the performance of their sites and SQL Server’s data storage requirements were getting out of control. People were having to purge historical data from their database periodically – and that seriously limits how useful that data can be. With MongoDB, not only is it immediately more performant for these kinds of data collection tasks but it also has excellent horizontal scalability across multiple nodes. As for flexibility – MongoDB uses a dynamic data schema where you don’t have to pre-define a set of tables and columns and data types ahead of time. What that means is it’s really easy to add some new data to your documents (from an external platform like a social network or maybe an offline promotion for example) without needing to write any code or worry about breaking any existing code.
MongoDB is complicated to manage and not everyone has in-house expertise (especially if your team is only familiar with Microsoft’s SQL Server). Sitecore have thought of this and they offer a SaaS solution in the form of xDB Cloud Edition. It’s a fully managed solution – not only are the MongoDB instances hosted in the cloud (via Microsoft Azure), but configuration, maintenance, and management (including backups, restores, scaling out to new nodes, etc) are all handled for you. There is some competition in this market as well including cloud offerings from MongoDB themselves, ObjectRocket, MongoLab, and others. They wouldn’t have the Sitecore-specific domain knowledge, and some may require more manual setup and management from you – but they may be considerably cheaper than the xDB Cloud offering and also may even have co-hosting available in your production environment if you’re using a big-name host like AWS or Rackspace.
One thing I breezed past in the webinar that I think is worth further discussion is the new Sitecore Social suite. It’s based on technology developed by Komfo (another Danish company who specialize in social media marketing and community engagement) and provides tons of social integration features like social authentication, adding users’ social network data to the xProfile, social network content engagement metrics, targeting messages on social media using Sitecore segmentation, etc. Manage your social media campaigns and see the analytics data right alongside your e-mail and website metrics. Powerful stuff!
When it comes to the process of doing the upgrade itself – a lot depends on your specific solution… What version are you upgrading from, how many and what kind of customizations have you done, how well has your solution implemented Sitecore best practices, what third-party modules and/or integrations are in place, etc. A lot of things can increase the complexity of your upgrade project, so it’s really important to put a plan together and to thoroughly test your process.
In the webinar, I described the Sitecore upgrade process using all of the iterative upgrade steps provided by Sitecore. However, if your solution has been built in the right way (most importantly, keeping your config changes isolated to patch config files) then there may be another option… What if you could just do a clean installation of the latest version in a new environment, migrate your content, configuration, and code, and be done with it? It’s not necessarily THAT simple, but skipping all of the intermediate iterative upgrades may be a way to shave some time off of your upgrade timeline. You’ll still need to fully analyze what modules need to be upgraded and follow any migration paths (for example, Web Forms For Marketers data would have to be moved from the old SQL Server database into xDB), you’ll still need to update any third-party integrations, and you’ll still need to update any of your own code. And when it comes to migrating content, you can use Sitecore’s item serialization features or take advantage of tools like Hedgehog’s Razl or TDS. Using Sitecore packages for migrating lots of content isn’t recommended due to issues that occur with large amounts of content.
Lastly – as we mentioned in the webinar, I’d like to reiterate here… Sitecore partners like Alpha Solutions are available to help with your Sitecore upgrade projects. If you’re excited about the possibilities of moving to Sitecore 8, but concerned about the technical challenges – reach out to us!