Orange Digital is a subsidiary of France Telecom - Orange supplying digital services to EE in the UK and Orange across Europe. Orange Digital maintains the websites Orange (www.orange.co.uk), Orange World, and the Orange Business site, as well as a number of EE’s digital assets.
Attracting a loyal audience of over 4.5 million users on web and 2.3 million users on mobile, Orange Digital provides users with an engaging multi-platform experience. The company is geared around innovation, creativity and being a positive place to work, utilising leading-edge technologies - particularly enterprise-level cloud and open source solutions.
Managing web services for Orange and Everything Everywhere, Orange Digital is committed to delivering a highly relevant experience for users. This includes a wide range of content including news, sports, weather and location-based services, movies and music, as well as user services like email and messaging, account and details management, billing, contract changes and online sales.
Coping with such a varied range of content is a mammoth undertaking, particularly as connection speeds increase and peoples' expectations grow.
Orange Digital was previously running its services on a MySQL database using in-house servers. However, as the number of users grew and the range of services and content expanded, the company started to look for alternative combinations of hosting, database and application technologies that would be more stable, secure and scalable.
'Simply put, we needed a new database that would be able to scale and cope with our performance and availability demands,' explained Neil Jennings, Lead Enterprise Architect at Orange Digital.
'We deal with a vast number of types and sources of data, most of which are connected in some way shape or form. For instance, editorial staff may add news reports, but these need to be based on user and device information so that the right content is sent to the user in the correct format, depending on their personal preferences and their device.'
This means that not only does Orange Digital have to cope with a lot of content, but there is even more metadata attached - targeting handsets, users, types of data, video, feeds, text and more. This was compounded by the prospect of having to start incorporating information from T-Mobile as well, as part of the Everything Everywhere joint venture.
Under these circumstances, Orange Digital started to look for alternatives, both in terms of database and delivery platform. After some deliberation, research and testing, the company settled on abandoning hosting the data itself and instead moved to Amazon's cloud-based web service.
Along with the move to Amazon, Orange Digital decided to use a non-relational database to store content and metadata. After experimenting with several options Orange Digital chose MongoDB due to its strong performance, ease of use but the decision was primarily due to replication, auto sharding, failover and disaster recovery features which are especially relevant on a cloud based infrastructure where hardware failures do happen. Orange Digital solutions are designed to assume that failure will happen and must gracefully cope with failure.
'We tried several different databases, but the incredible performance, horizontal scalability and automatic backup and failover functionality made MongoDB the natural choice for us - and makes life easier for our developers,' added Jennings.
Ease of use
At any point in time, Orange Digital's original database could contain upwards of six billion rows of attributes, but with MongoDB each post or user and its metadata can be stored as a single document. As the schema changes on the live database, MongoDB can accommodate these changes without costly schema migrations, allowing new services to be incorporated seamlessly.
Although MongoDB needed more time to be configured and set-up initially, that investment has paid dividends thanks to its superior flexibility and capability.
'Using a document-based framework gives us the right balance between the previous complexity of MySQL's relational model and the pure key value store of other NoSQL databases,' explained Phil Butterworth – Principal Database Engineer.
'Intuitive mapping from the domain model to JSON documents and complex querying capabilities lets us cross-reference user information and metadata with other content, functions that were either not possible in the previous database or were costly to perform.'
Although MongoDB has been a positive move for the developers, the change to a non-relational database required some adjustment. To this end, MongoDB has been invaluable in helping with this change in approach, providing fast and accurate responses to any queries the team had.
'Moving to MongoDB has required a mindset shift for our developers. Unlike traditional databases, non-relational databases like MongoDB mean that you have to think about how data is used, rather than how it's stored,' added Butterworth.
'The best thing has been that, from the get-go, MongoDB's engineers have been very quick to help and have a developer-first approach, giving helpful, professional advice.'
MongoDB performance was a key differentiator in Orange Digital's choice.
Although it began with a fairly low volume of information to be stored, this has grown massively over time. The horizontal scalability that MongoDB offers means that as the volume of data, variety of content and data sources have all grown, it has taken this in its stride without impacting performance.
Orange Digital uses lots of caching to reduce load, and currently handles around 10 to 15 writes per minute and approximately 450 reads per minute, although load testing has shown it to be capable of much more if needed. This ensures that there is plenty of room to scale with the orders of magnitude increase in demand expected from a growing number of users and the data bandwidth that 4G adoption will offer.
'MongoDB works like a high performance storage engine. Queries are blazingly fast, certainly the fastest in our tests and there is clearly plenty of headroom for more performance when we need it,' added Butterworth.
Automatic failover and recovery
The rapid growth of content and users has reinforced the need for effective, automatic failover and recovery.
As such, as part of the process of migrating to Amazon and MongoDB, Orange Digital will be virtualizing everything in order to help deliver a scalable, and most importantly, stable system.
According to Jennings, MongoDB in combination with AWS EC2 can be configured for 'proactive self-healing and automatic failover', a feature that will become 'even more important as we offer 4G services, which will raise the bar again in the expectancy of users for performance and stability'.
Orange Digital uses a single MongoDB replica set, which allow servers to act independently and enable high availability. The team can rest safe in the knowledge that MongoDB will automatically fail over should one of their servers fail.
Deployment platform: Amazon Web Services
Server hardware configuration: 4x HDD in RAID 10 configuration
Replica Sets: 1 replica set - 4 EC2 instances, 3 local storage (RAID10) + 1 EBS (hidden) for snapshot backups
Application Language: PHP
The combination of migrating to MongoDB and Amazon has exceeded the expectations of the team at Orange Digital.
'Quite frankly we were blown away by the performance of MongoDB. During load testing the system was handling 800 requests per second, each one generating about 147 read queries for a total of 117,600,' said Jennings.
'Between the move to Amazon and by opting for MongoDB, we've saved about £2m over the last three years in database and platform licenses and hardware.'
“Our content is highly personalised for individual customers allowing them to see more of what they like. This transition is helping enable Orange Digital, and, by extension, Everything Everywhere to shape its business decisions around user content delivery and services.”
'MongoDB is now our default choice for any new project and we only look elsewhere if it isn't fit-for-purpose,' concluded Jennings.
'This means the lead time for new implementations is cut massively, particularly as we don't need to worry about the inevitable incremental schema change process that occur during such projects.'
The next big task for the team is to centralise content and information scattered across the different systems.
'This will give us more control over our content and allow us to develop even greater levels of personalisation and user configuration than we've been able to offer to date.'