维旺迪旗下的 CANAL+ 集团是全球内容创作和发行的主要参与者,在 50 多个国家拥有近 2400 万订阅用户,在各大洲拥有 7500 名员工。 CANAL+在法国拥有近1000万用户,在非洲拥有近700万用户。 它是法语非洲地区领先的电视运营商,也是英语和葡萄牙语非洲地区付费电视领导者 MultiChoice 的最大股东。
CANAL+ 是电视频道制作和营销领域的主要参与者,拥有 116 个内部制作的线性和非线性频道。 它还聚合了Netflix、Disney+、Paramount+等各大主题频道和全球内容平台。
CANAL+ 每年在内容上投资近 34 亿欧元,是体育节目(法国足球和橄榄球的主要资助者)、电影(法国和波兰的主要资助者)和电视剧(每年包括 14 种以上语言的 50 多个原创电视剧)领域的主要参与者。
CANAL+ 在其子公司 STUDIOCANAL 的支持下,在欧洲 7 个国家拥有 10 家制作公司,是欧洲领先的故事片和电视剧制作和发行商。 该图书馆拥有来自 60 多个国家的近 7,000 种图书。 最后,凭借其 myCANAL 应用程序,该公司也是数字领域的主要参与者,该应用程序的国际部署正在加速,迄今为止已覆盖约 30 个地区。
疫情期间,CANAL+ 的电视流媒体服务需求激增,人们可以通过 myCANAL 平台通过机顶盒、智能手机、平板电脑、智能电视和笔记本电脑访问这些服务。 使用量的急剧上升在疫情结束后仍持续存在,流量持续增长,对 CANAL+ 的技术架构提出了更高的要求。
CANAL+ 的 HTTP 缓存峰值达到每秒约 50,000 个请求。 此外,其重播服务的 60% 流量发生在晚上 8:30 至 9:15 之间。
同时,myCANAL 通过添加来自 Netflix、Disney+、Paramount+ 和其他第三方服务的内容为观众提供越来越多的选择。 在法国,myCANAL平台目前提供超过100,000条内容。 过去几年,CANAL+ 除了提供标准高清视频外,还开始提供越来越多的 4K 分辨率视频。这种转变不仅增加了流量,还增加了 CANAL+ 需要处理的格式数量和元数据数量。
来自不同播放器的如此广泛的内容进一步增加了路由和缓存的复杂性。 平台需要根据用户的兴趣和特权,在正确的时间,并根据权利人施加的法律约束,展示和推荐正确的内容。
当观众与 myCANAL 互动时,CANAL+ 的基于云的内容交付系统会利用微服务进行 API 调用,以检索有关内容的相关元数据,例如标题、剧集和评论者的评分。 它采用了一种称为反应流的技术,用于实时处理数据管道。 它使用三个非 SQL 数据库: Cassandra 用于批量写入操作,Redis 用于批量读取操作,Elasticsearch 用于与索引和数据交叉引用相关的所有操作。 一切都托管在 Amazon Web Services (AWS) 上。
CANAL+ 使用 F5 NGINX Plus 为 myCANAL 微服务提供单一入口点: NGINX Plus 充当第 7 层请求路由器和 HTTP 缓存,并支持微服务的动态发现。 作为第 7 层请求路由器,NGINX Plus 负责将所有请求路由到正确的微服务。 鉴于微服务经常更改其 IP 地址和端口,NGINX Plus 对通过 DNS 动态发现的支持至关重要。 NGINX Plus 作为 HTTP 缓存,保护 CANAL+ 平台,仅当标题发生变化时才会更改内容的 URL。
NGINX Plus 的灵活性和可扩展性帮助 CANAL+ 满足了疫情期间激增的需求。 “我们必须扩展我们的基础设施,而 NGINX 让我们做到了这一点,”数据编辑和建议团队负责人 James Mensah 说。 “我们稍微增加了 NGINX 实例和路由器的数量。”
myCANAL 最初部署在法国,但后来扩展到其他国家,使用相同的代码,但每个市场都有不同的实例。 CANAL+ 目前在波兰、意大利和非洲大部分地区提供 myCANAL 服务。 “NGINX 是国际扩张的重要组成部分,因为我们在为每个国家部署平台时,会利用路由能力路由到正确的平台,”Mensah 解释道。 “我们有一组路由器,其中 NGINX 路由器位于顶部,我们根据一些显示用户来自哪里的标头进行路由。”
他说,CANAL+ 在我们的 NGINX 配置文件中实现了很多逻辑来决定请求应该发往何处,因为我们有很多平台。 对于我们来说,能够编写一些代码是非常强大的,所以如果这个标题有这个值,然后有一个根据标题路由请求的地图。” CANAL+ 不需要使用 F5 的支持服务,因为详细的 NGINX Plus 文档提供了它所需的所有指导。
NGINX 路由功能还支持迁移到新的 myCANAL 平台,该平台只有具有正确功能的设备才能访问。 “我们 [需要] 根据用户的设备逐步迁移用户……并且我们通过 NGINX 配置控制迁移,”Mensah 解释道。 团队所要做的就是在 NGINX 配置中添加规则,根据请求标头中记录的用户所使用的设备对用户进行路由。 符合条件的设备的用户将被路由到新平台,而其他用户则继续访问当前平台。
CANAL+ 也越来越多地使用由 F5 NGINX Ingress Controller 支持的 Kubernetes 集群。 “五年前项目开始时,我们只使用了 [AWS] EC2 标准实例,”Mensah 指出。 “但现在我们越来越多地在 Kubernetes 容器上部署我们的应用。”
他说这种云原生架构具有高度的可扩展性。 “我们可以随时快速扩大规模,”门萨解释道。 虽然早上通常人流较少,但白天人们会集中使用 myCANAL 应用,高峰期是在晚上 8:00 到 9:00 之间。 “因此,我们知道在那些非常特殊的时刻我们需要扩大规模,”门萨补充道。 “对于某些应用,我们需要几乎两倍的实例数量。 但是当我们不需要这些实例时,我们就不想为此付费,所以我们使用云。”
CANAL+ 继续在地域上扩张,同时为其平台添加新功能。 例如,它旨在为观众提供第三方内容以及自己的内容的推荐。
NGINX Plus 的可靠性和可扩展性使得 CANAL+ 可以使用相对较少的服务器来处理每秒多达 50,000 个请求。 这使得 CANAL+ 能够控制其 AWS 足迹,从而节省成本。
可扩展的 HTTP 缓存使 myCANAL 能够几乎立即(少于 1.5 秒)响应用户访问内容的请求,从而确保引人注目的用户体验。
NGINX Plus 为 CANAL+ 提供了其路由器和缓存的可视性,以便其执行数据分析并相应地优化其部署。 CANAL+ 使用 Datadog 可观察性软件,该软件与 NGINX 集成。借助 NGINX Plus,CANAL+ 可以跟踪和监控客户的导航步骤、页面浏览量、视频点击量以及其他有价值的使用数据。