To manage up to 50,000 requests per second, France’s Canal+ Groupe built a new system utilizing AWS containers and microservices, focusing on usability. “The idea was to build a big, single platform that is simpler for our users to connect to and access on all their websites,” said Frédéric Guay, Tactics Manager at Canal+. “The dynamic resolution of our service is a function that only exists in NGINX Plus.”
Canal+ runs a complicated business model at scale, in continuous delivery. All testing and product launches are now run in production. Guay continued, “we managed over one billion clicks last year and will be hitting that number soon this year.” Canal+ sees peaks of approximately 50,000 requests per second for its HTTP caches. In addition, 60% of the traffic for its replay services arrive between 8:30 and 9:15 PM.
There are four main service areas through which the data flows:
- Multiple Catalogs – Each channel has its own catalog, some with over 20,000 offerings. “The aim is to show the right content according to the user’s privileges, at the correct time, according to and within the legal constraints imposed by the rights holders,” Guay said.
- Recommendation Service – It’s simply not possible for users to browse such large catalogs. Based the user’s reading progress status, Canal+ searches its entire content database and returns recommendations, in the familiar form of “you liked that, so you’re sure to like this.”
- Customer Customization – Canal+ offers per‑customer customization services. For example, what content the user is currently watching and how much of that content the user has read.
- Transaction‑Oriented Payment Services – Last, but not least, is the payment for services. The purchase transaction, with the price calculation based on the user’s profile, is sent to the CRM at Canal+ so that the purchase can be followed through customer invoicing and payment.
The addition of non‑linear TV three years ago introduced the need to build a new infrastructure from scratch, as it became clear early on that the old infrastructure could not support the sheer volume of data at the speeds required by customers.
Guay’s team designed a cutting‑edge platform around microservices to retrieve data, using a technology known as reactive stream, which is used to process data pipelines in real time. They use three non‑SQL databases: Cassandra for bulk write operations, Redis for bulk read operations, and Elasticsearch for everything associated with indexing and data cross‑referencing. All of this is hosted on Amazon Web Services (AWS).
Canal+ had been using NGINX Open Source on its old system for several years. But the move to microservices brought new demands that the open source product just did not fill. As the NGINX machines and routers were being configured, Guay’s team realized it simply couldn’t see what the system was doing. Investigating issues in the complex environment became a real problem, because the metrics available in the open source product were not sufficient.
NGINX Plus provides a single point of entry for MyCanal microservices
Canal+ is using NGINX Plus as a Layer 7 request router, an HTTP cache, and for dynamic discovery of microservices. As a Layer 7 request router, NGINX Plus is responsible for routing all requests to the correct microservice. As microservices change IP address and port frequently, NGINX Plus’ support for dynamic discovery through DNS was key.
As an HTTP cache, NGINX Plus protects Canal+’s platforms. Guay’s team created what it calls a “limitable URL”: a resource, such as a piece of content, that always has the same URL until it changes. For example, when a title changes, its URL changes as well. This enables Canal+ to have very effective caches, because when the content changes, so does the URL and this is immediately apparent to the user.
“The key attraction to NGINX Plus focused on three points,” said Guay. First, NGINX’s robust performance is key to lowering their costs while maintaining speed for the massive amounts of traffic flowing through their system.
The second point is the simplicity of configuration, which they find extremely practical. “We sometimes have to do rather complicated things with just a few lines of code,” said Guay. “Today, the dynamic resolution of our service is a function that only exists in NGINX Plus.”
The third point is metrics. NGINX Plus offered necessary visibility into their routers and caches.
“Once the decision was made, moving over from NGINX to NGINX Plus took five minutes,” said Guay. But the full launch took about a month and a half, using the blue‑green technique for deployments.
“We kept one standard NGINX router in blue mode, i.e. in passive mode and one in green (active) mode, and NGINX Plus checks that everything is OK and if everything is OK the blue is destroyed,” explained Guay. Once all the caches were migrated, they moved on to the routers, then brought it all into production.
Guay’s team researched other options, but neither Proxy Buying nor the ELBs from Amazon were able to give them the functionality they needed. Proxy Buying did not fit their working model, and using the ELBs from Amazon would mean returns into full Amazon mode, and require migrating entirely from the NGINX solution than in use.
“Amazon still locks lots of things,” said Guay, and something simple like changing a log format, can’t be done on an ELB. “In both cases we would have been unable to do what we wanted with it,” he said. So Canal+ choose NGINX Plus as a key component to their technology stack.
“The launch of NGINX Plus brought dramatic performance increases that were immediately noticeable,” said Guay. The robust product allows Canal+ to manage fewer servers to process those 50,000 requests per second. This allowed Canal+ to significantly reduce their AWS footprint, thus saving money.
“The limitable URL and scalable HTTP cache creates allows for very, very effective caches and, at the same time, allows the content changes to be visible immediately to the user,” Guay explained.
Metrics For The Win
Guay noticed a huge difference in the available metrics the with the first test of NGINX Plus.
His team makes great use of the cache functions and NGINX Plus provides them information about the state of their caches at any given moment, the ratio of caches, and the error rates.
The metrics now available have been a major benefit, both during the move to microservices and in monitoring their new technology stack which is now in continuous delivery mode.
Ultimately, for Canal+, NGINX Plus is the foundation of the product. “It allows us to understand what happened on the servers and it has been great,” he said.
Canal+ continues to expand its products. “We are scaling with the load, i.e. the more traffic we have, the more services we start, the more we are potentially required to add machines,” said Guay. Their continuous delivery platform makes this possible.
Next, they are expanding to French‑speaking countries around the globe, and NGINX Plus has set them up to scale well past the current one billion clicks. Their international subsidiary is growing rapidly and they are expanding to Réunion, Caribbean, New Caledonia and recently in French-speaking Africa, and Vietnam.
Canal+ Groupe is the leading pay‑TV group in France, ranking first both for its premium‑content networks with the generalist channel Canal+ and associated channels, and its themed networks. It is also the top multi‑channel platform and distributor for pay‑TV offerings in France. Canal+ Groupe has a high international profile, with a presence in pay‑TV in Africa, Poland, and Vietnam. Overall, Canal+ Groupe has over 14 million subscribers worldwide. A free‑to‑air TV operator with three national channels, including France fifth highest rating channel, C8, and in‑house advertising sales division Canal+ REGIE, the Group is also a benchmark player in commercial TV. Through its subsidiary STUDIOCANAL, Canal+ Group is the European leader in production and distribution of feature films and TV series.
Group Canal+ is a wholly owned subsidiary of Vivendi, a global media and content production and distribution group.