TheOpen.com: How to serve 1 bn requests to 200k concurrent users with 100% uptime?
The Open Championship is one of the largest sporting events in the world with a truly global audience. During the week of the Championship the official website, www.theopen.com, receives over 8 million unique users, who consume 850 pages of content and stream 180,532 hours of video and audio. As the lead digital technical partner to the R&A, we need to build and maintain the infrastructure which has the capacity and resilience to serve over 1 billion server requests whilst ensuring 100% uptime of the website all while serving 200k concurrent users at any time.
To deliver on this commitment we identified a Content Management System (CMS) that will provide us the flexibility and scalability required for this unique technical challenge. Our choice was Sitecore. Sitecore delivers the scalability and flexibility required, whilst allowing us to separate the content management from content delivery on individual machines. To support this complex infrastructure the natural choice for hosting was Amazon Web Services (AWS) where we created multiple machines to serve the wide selection of services required to maintain the platform.
To allow content managers across several locations to seamlessly maintain the site we use a stand-alone CMS machine. We chose the best configuration to serve multiple content editors and implemented the latest code practice for Sitecore. Having the machine run with the pre-live data we can test the content before going live. The website is visited by users from over 200 countries, meaning we need to implement personalization and geo-restrictions services which is another strong point of Sitecore. Sitecore allows us to deliver multiple data sources of the same components which results in the delivery of multiple versions of the same page to ensure the best user experience. We are also able to create users with different roles and rest safely that articles are published correctly.
For the content delivery, we use multiple machines which are balanced based on a performance-focused strategy. This is made possible as Sitecore offers horizontal scaling. If we experience spikes in traffic, we can scale machines in a matter of minutes to ensure user experience isn’t affected. The data is stored across multiple geographical regions guaranteeing up time in case of AWS datacenter failure.
So how do we serve 1 billion requests? We use a Content Delivery Network, provided by Akamai, that wraps around our platform. How does it work? It caches your HTML for pages/requests. Putting these rules in Sitecore on each page/request gives you the power of serving content from the Sitecore Servers only when there are changes and the rest of the time it will be shown from cache. Another strong point is the serve stale cache in case the website is not responding. Akamai will show the last working version and gives you the time to fix the issue. This ensures a 100% uptime.
Viorel PETREA Senior Developer