Netflix的IT基础设施完全搭建在AWS之上,尽管AWS一直在降价,但对于完全依赖AWS的Netflix而言,成本依然居高不下。视频编码是重度消耗CPU的业务,通过内部的二级市场,即将未充分利用的计算济源在内部进行二次销售,Netflix减少了92%的编码成本。本文来自Netflix高级SRE,Dave Hann在re:invent 2017大会上的分享,并由科技博客博主Todd Hoff进行了内容整理,LiveVideoStack对其进行了摘译。
文 / Todd Hoff
译 / Ant
Netflix通过内部的现货市场节省了92%的视频编码成本。在2017年的re:Invent大会上,Netflix高级SRE Dave Hann做了“A Day in the Life of a Netflix Engineer”的分享(点击阅读原文访问Dave的演讲视频),介绍了Netflix是如何做到的。
Netflix使用了3个AWS的region,几十万个EC2实例,其中许多实例并未充分使用。
视频编码占Netflix全部CPU技术能力的70%,30万个CPU,以及1000个不同的自动扩展组(autoscaling groups)。
那么,为什么不创造一个二级市场,用于视频编码?
Netflix视频编码流程
从生产商获得视频之后,首先对其进行检查,包括丢帧、变色等各种问题。
视频文件非常大,往往以TB为记,处理这么大的视频文件显然并不明智,于是要将原始视频文件分割成小块,对其并行处理。
视频块送到多媒体处理流水线,那里有大量的编码工作要做。Netflix支持2200种的设备以及多种编解码器,所以需要输出大量不同的格式视频。
视频块编码完成后,将再次进行校验,以确认没有产生任何问题。接下来,将视频块集成在一起,生成完整的视频。最后,再进行一次校验。
在多媒体流水线中超过70个不同的软件进行协作。
Netflix认为静态编码后的视频观看体验超过动态编码,其结果是要生成大量的文件。
《Stranger Things》第二季为8K分辨率,有8幕。原始文件容量数以TB。每一季需要19万个CPU小时来编码,相当于2965个m4.16xlarge实例运营1小时。静态编码需要生成9570个不同的视频、音频和文本文件。
Netflix如何编码?
一种显而易见的方法是,为编码流水线专门保留一部分实例。这种方式的结果好处是,计算资源随时可用。
不过,编码是一种爆炸性的工作负载,这意味着这些保留实例大部分时间并不能充分利用。
这种爆炸性的工作负载可以开启二级市场,用于爆发性的工作负载。
AWS有二级市场,为什么不直接使用?Netflix有大量的保留实例,在一天的内,他们可以自动扩展或缩小10000个实例。当自动缩小后,就有许多未用的资源。
于是Netflix建立了自己的二级市场,用于视频块的编码。工程师工具团队建立了专门的API,实时(以分钟为单位)暴露未用的资源。
通过内部的二级市场节省了92%的编码资源。
云经济学
和AWS一样,Netflix开启自己的二级市场也出于同样的原因:云经济的目标就是提高机器的利用率。利用好保留实例,以榨取其更多价值。CPU一个千分之一秒不在工作都是一种浪费。
越来越显现,AWS(及其友商)将会成为基础设施的吞噬者。
LiveVideoStack招募社区编辑
LiveVideoStack是专注在音视频、多媒体开发的技术社区,通过传播最新技术探索与应用实践,帮助技术人员成长,解决企业应用场景中的技术难题。如果你有意为音视频、多媒体开发领域发展做出贡献,欢迎成为LiveVideoStack社区编辑的一员。你可以翻译、投稿、采访、提供内容线索等。
本文分享自 LiveVideoStack 微信公众号,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本文参与 腾讯云自媒体同步曝光计划 ,欢迎热爱写作的你一起参与!