Overview
Groupe CANAL+, a subsidiary of Vivendi, is a major player in the creation and distribution of content worldwide, with nearly 24 million subscribers in more than 50 countries and 7500 employees located on every continent. CANAL+ has nearly 10 million subscribers in France and nearly 7 million in Africa. It is the leading television operator in French-speaking Africa and the largest shareholder in MultiChoice, the leader in pay-TV in English- and Portuguese-speaking Africa.
CANAL+ is a major player in the production and marketing of television channels, with 116 linear and non-linear channels produced in-house. It also aggregates major thematic channels and global content platforms such as Netflix, Disney+, and Paramount+.
Investing nearly €3.4 billion in content each year, CANAL+ is a key player in sports programming (the main funder in France for soccer and rugby), films (the leading funder in France and Poland), and series (including more than 50 original series per year in more than 14 languages).
With the support of its subsidiary STUDIOCANAL, which owns 10 production companies in 7 European countries, CANAL+ is the leading producer and distributor of feature films and TV series in Europe. It holds a catalogue of nearly 7,000 titles from more than 60 countries. Finally, it is also a key player in digital with its myCANAL app, whose international deployment is accelerating, with a presence in some thirty territories to date.
Challenge
During the pandemic, CANAL+ saw a big surge in demand for its TV streaming services, which are accessible through the myCANAL platform via set-top boxes, smartphones, tablets, smart TVs, and laptops. The steep rise in usage has persisted beyond the end of the pandemic and traffic continues to grow, placing greater demands on CANAL+’s technical architecture.
CANAL+ experiences peaks of approximately 50,000 requests per second on its HTTP caches. In addition, 60% of the traffic for its replay services arrives between 8:30 and 9:15 PM.
At the same time, myCANAL is offering viewers more and more choice by adding content from Netflix, Disney+, Paramount+, and other third-party services. In France, the myCANAL platform now provides access to more than 100,000 pieces of content. Over the past few years, CANAL+ has also moved to provide more and more videos in 4K resolution in addition to standard HD. As well as increasing the volume of traffic, that shift has increased the number of formats and the amount of metadata CANAL+ needs to juggle.
Providing such a broad range of content from different players further increases the complexity of routing and caching. The platform needs to surface and recommend the right content according to the user’s interests and privileges, at the correct time, and according to and within the legal constraints imposed by the rights holders.
“We had to scale our infrastructure for sure and NGINX let us do that.”
– James Mensah, Team Leader, Data Editorial and Recommendations
Solution
When a viewer interacts with myCANAL, CANAL+’s cloud-based content delivery system utilizes microservices to make API calls which retrieve the relevant metadata about the content, such as the title, the episode, and reviewers’ ratings. It employs a technology known as reactive stream, which is used to process data pipelines in real time. It uses 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. Everything is hosted on Amazon Web Services (AWS).
CANAL+ uses NGINX Plus to provide a single point of entry to the myCANAL microservices: NGINX Plus serves as a Layer 7 request router and an HTTP cache, as well as enabling the dynamic discovery of microservices. As a Layer 7 request router, NGINX Plus is responsible for routing all requests to the correct microservice. Given that microservices change their IP address and port frequently, NGINX Plus’ support for dynamic discovery through DNS is key. As an HTTP cache, NGINX Plus protects CANAL+’s platform, which only changes the URL of a piece of content when the title changes.
The flexibility and scalability of NGINX Plus helped CANAL+ to meet the surge in demand during the pandemic. “We had to scale our infrastructure for sure and NGINX let us do that,” says James Mensah, Team Leader, Data Editorial and Recommendations. “We increased a little bit the number of NGINX instances and routers.”
Initially, myCANAL was deployed in France, but has since been expanded to other countries, using the same code but with different instances for each market. CANAL+ now offers myCANAL in Poland, Italy, and much of Africa. “NGINX is a big part of the international expansion because we use the routing capacity to route to the correct platform as we deploy a platform for each country,” explains Mensah. “We have a set of routers, with the NGINX routers at the top, and we route based on some headers that show where the user is coming from.”
He says CANAL+ has implemented “a lot of logic in our NGINX configuration file to decide where the request should go, because we have many platforms. It was quite powerful for us to be able to write some code, so if this header has this value, and then have a map that routes the request based on the header.” CANAL+ hasn’t had to make use of F5’s support service, as the detailed NGINX Plus documentation provides all the guidance it needs.
The NGINX routing capabilities are also supporting the migration to a new myCANAL platform, which can only be accessed with devices with the right capabilities. “We [need] to migrate users progressively based on their devices … and we are in control of the migration with the NGINX configuration,” Mensah explains. All the team had to do was add rules to the NGINX configuration that route users based on the device they are using, as recorded in request headers. Users on qualified devices are routed to the new platform, while other users continue to access the current platform.
CANAL+ is also making increasing use of Kubernetes clusters, supported by NGINX Ingress Controller. “At the beginning of the project five years ago, we only used [AWS] EC2 standard instances,” notes Mensah. “But now we’re deploying our applications on Kubernetes containers more and more.”
He says this cloud-native architecture is highly scalable. “We can scale up anytime and very quickly,” Mensah explains. Whereas the morning is typically slow, people gravitate to the myCANAL app during the day with peak demand between 8:00 and 9:00 PM. “So we have those very specific times where we know we need to scale,” Mensah adds. “We need almost double the number of some instances for some applications. But when we don’t need the instances, we don’t want to pay for it, so that’s why we use the cloud.”
CANAL+ continues to expand geographically, while adding new features to its platform. It intends to provide viewers with recommendations for third-party content, as well as its own, for example.
Results
Robust and Low-Cost Architecture
The reliability and scalability of NGINX Plus allows CANAL+ to use relatively few servers to process up to 50,000 requests per second. This allows CANAL+ to contain its AWS footprint, thus saving money.
Fast Response Times
The scalable HTTP cache enables myCANAL to consistently respond to a user’s request to access content almost immediately (in less than 1.5 seconds), thereby ensuring a compelling user experience.
Metrics and Insights
NGINX Plus provides CANAL+ with the visibility into its routers and caches it needs to perform data analytics and then refine its deployments accordingly. CANAL+ uses the Datadog observability software, which is integrated with NGINX. Thanks to NGINX Plus, CANAL+ can track and monitor its customers’ navigation steps, their page views, their clicks on videos, and other valuable usage data.
About Canal+
Groupe CANAL+, a subsidiary of Vivendi, is a major player in the creation and distribution of content worldwide, with nearly 24 million subscribers in more than 50 countries and 7500 employees located on every continent.