Sitecore 7.5’s xDB provides a scalable and robust architecture to collect behavior data from your customers and drive decision making for your online presence.
With the introduction of Sitecore 7.5, there is now the option to place this component of the Sitecore solution in a Sitecore managed cloud service (backed by Microsoft Azure). While many organizations will choose to host the entire Sitecore solution in their own data center, there can be great benefits to hybrid and cloud approaches.
The xDB cloud service is just one of many emerging cloud services that make hybrid deployments of Sitecore easy and attractive. In this post I discuss not only considerations for xDB in the cloud, but the broader considerations of the traditional Sitecore CMS components as well.
The xDB service provided by Sitecore is an end-point in the Azure cloud that your Sitecore installation uses to collect (MongoDB), aggregate and report on visitor behavior. Behind the scenes, Sitecore provides high availability, elastic scaling and disaster recovery- an attractive package to say the least. With that background in mind, let’s break it down into a few key points of consideration:
As stated previously, Sitecore’s xDB service provides for scaling – nothing for you to worry about there. Traditional Sitecore components (content delivery, content management) can scale both horizontally and vertically. Most major public and private cloud providers come with the ability to add processing and memory resources to existing infrastructure and provision new virtual machines on demand. This can allow for cost effective operation in low seasons and an easy means to scale up in peak seasons. When evaluating providers you should clarify if adding resources to a virtual machine takes it offline, and if so what the turn-around time is to complete the operation. Auto-scaling based on set conditions is very useful for hands-off management.
Given that the cloud xDB service is in the Azure cloud, this would make for a compelling argument to consider placing traditional Sitecore components – particularly content delivery – in the Azure cloud.
Hosting your website within your own data center opens the center and the network - to some extent - to attacks. I have worked with a number of high profile customers that chose to host elsewhere to reduce the overall public footprint of their data centers. If your site is highly visible and a regular target for attack/protest this can be a major benefit for your security team. This would again be an argument to place content delivery in the cloud as well.
Geography and disaster recovery
Getting your choice of data center location can provide better performance for global brands by getting closer to end customers. Widely dispersed data centers also provide greater assurance that regional disasters do not impact all environments.
Connection to on-premise
Invariably, a cloud solution will require a secure connection to on premise applications. Understanding how this is accomplished (often VPN) and how bandwidth and performance of that link is managed is another critical component. In Azure, the new Express Route feature is very attractive for high performance linkages to on premise applications.
If choosing to leverage Sitecore xDB service, it would be wise to test the connection reliability between your on-premise components and the xDB service.
Each jurisdiction has differing laws on privacy and the government’s right to access data stored/transiting country. Choosing a cloud provider with data centers in specific jurisdictions gives you some flexibility in navigating these complicated waters. Given that xDB houses all of your customer data, it should be clear what implications it has for your business to host that data in the Azure cloud.
During large scale development projects, using on-demand lightly reserved can be a fast and effective way to scale up development, QA and CI servers. When working with a worldwide team 24x7 the self-service tools of the cloud providers ensures developers are not waiting for assistance from the help desk to provision virtual machines and the sort.
There is no “right” answer when it comes to choosing the cloud over on premise. Regardless of which approach you choose, give yourself the time to test the proposed deployment architecture and understand the maintenance requirements.
As a final thought, xDB is not the only cloud service for Sitecore. When considering xDB’s residency keep in mind the following other services:
MaxMind provides a web service that Sitecore can use for GeoIP lookups. MaxMind manages the central database of IP’s ensuring the most up to date information. MaxMind can be purchased from the MaxMind website.
ECM Mail Transport
A managed mail transport service is also available to manage blacklist, queues and all of the other details of mailing lists. The mail transport service is also available from the Sitecore App Center.
As you are no doubt aware Sitecore has a pre-build deployment method for the Azure PaaS. The Azure PaaS model offers a lower level of complexity and cost over traditional VM’s. The gory details are on SDN.
Regardless of your final choices, there is a lot of flexibility inherent in Sitecore. For many of the reasons noted previously you may elect to host certain components like Content Management on premise and Content Delivery and xDB in the cloud.
Drop me a line in the comments if you think I missed an aspect of the decision process.