刘关张大战Netflix VES

刘关张大战Netflix VES

话说刘备、关羽、张飞三兄弟在桃园结义之后,誓言共谋大业,互相扶持。他们初期的事业如同Netflix最早的视频处理管道一样,从一开始的标准动态范围(SDR)到高动态范围(HDR),不断扩展和改进。

桃园结义:刘备初创系统

在最初,刘备的团队就像是Netflix早期的集中式线性编码系统。刘备三兄弟在桃园结义,誓同生死,开始了他们的创业之路。这就像Netflix最初的视频管道,虽然基础设施简单,但足够应对当时的需求。

 

刘备的军营:解读集中式线性编码系统

话说刘备刚开始创业的时候,他的军营是一个单一的营地,所有的士兵和资源都集中在一起。这就像是Netflix早期的集中式线性编码系统。在这种系统中,所有的视频编码任务都在一个巨大的计算中心完成。每当有一个视频需要处理时,这个视频会被从头到尾地进行编码,一步一步地进行,没有任何并行处理的部分。

刘备的军营每天都有很多任务,士兵们一个接一个地执行任务。每次作战,士兵们必须从营地出发,完成任务后再返回。虽然这种方式可以确保任务的完成,但效率不高,一旦营地遭到攻击,所有的任务都会被迫中断。

 

扩展军队:从单一系统到多功能系统

随着时间推移,刘备的团队不断扩展。关羽和张飞带兵作战,各自成为独当一面的将军。然而,他们的战斗系统仍然是一个巨大的单块结构,所有的功能都紧密耦合在一起。就像Netflix的Reloaded平台一样,尽管稳定性和可扩展性良好,但随着需求的增加,系统的复杂性也随之增加,限制了团队的创新速度。

比如,关羽的计算视频质量(VMAF)功能被紧密地嵌入在视频编码模块中,要重新计算视频质量就必须重新编码,增加了工作量和复杂性。张飞的战斗部署也是如此,所有模块必须一起部署,这增加了更新的风险和难度。

关羽的标准:计算视频质量

随着时间的推移,刘备发现,仅仅完成任务是不够的,还需要确保任务的质量。于是,他让关羽负责制定一个标准,来评估每次作战的效果。这就像计算视频质量(VMAF)一样。VMAF是Netflix用来评估视频质量的标准,通过计算视频在不同设备上的表现,确保用户体验的质量。

关羽在每次作战后,会仔细检查士兵们的表现,并给出评分。他会评估每个士兵的战斗技巧、效率和效果。通过这些评分,关羽可以确定哪些战术最有效,并帮助刘备优化未来的作战计划。


诸葛亮的妙计:复杂性分析服务

刘备的军队越来越大,任务越来越多,单一的营地和评估标准已经无法满足需求。这时候,诸葛亮提出了一个妙计:复杂性分析服务。他建议将所有任务进行分析,根据任务的复杂性,分配不同的资源和策略。这就像Netflix的复杂性分析服务(CAS),它分析视频内容的复杂性,决定最佳的编码策略。

诸葛亮在每次作战前,会对敌情进行详细的分析。他会根据敌人的数量、地形的复杂程度和气候条件等因素,制定不同的战斗计划。如果敌人很多,地形复杂,他会建议使用分散的部队进行游击战;如果敌人较少,地形简单,他会建议集中力量进行快速突袭。通过这种复杂性分析,诸葛亮帮助刘备制定了更加高效的作战策略。

走向微服务架构

正当刘备陷入系统复杂性带来的困境时,诸葛亮提出了妙计,就像Netflix转向微服务架构的决定。诸葛亮建议将整个系统拆分成多个微服务,每个服务专注于单一功能,这样既可以提高系统的灵活性,又能加快功能开发的速度。

微服务分工:重新定义服务边界

在微服务架构下,刘备的团队就像Netflix的Cosmos平台一样,将复杂的任务分解成独立的服务。例如,在旧系统中,视频编码模块包含了分割视频、独立编码、计算质量、组装视频等五个步骤。而在新的Cosmos平台上,这些步骤被拆分成独立的微服务:视频编码服务(VES)和视频质量服务(VQS),每个服务都专注于单一功能。

重建视频处理管道:优化工作流

在新的架构下,刘备的团队通过重新定义工作流,极大地提升了效率。例如,视频检查服务(VIS)负责对输入的视频进行各种检查,复杂性分析服务(CAS)负责分析视频内容的复杂性,生成编码配方,而视频编码服务(VES)则负责具体的编码工作。这就如同刘备在战前的详细部署,各个部队各司其职,最终形成高效的作战体系。

快速迭代:实现持续发布

新的微服务架构允许刘备的团队快速迭代,就像Netflix的Cosmos平台一样。每个服务的代码变更都可以独立测试和部署,大大缩短了从代码合并到功能上线的周期,从以前的数周缩短到30分钟左右。这使得刘备的团队能够迅速响应战场上的变化,持续优化战斗策略。

 

注:本文为解读原Netflix Blog Post The Making of VES: the Cosmos Microservice for Netflix Video Encoding.

点此去原文

 

Back to blog