数据工程最佳实践:Netflix 如何保持其数据基础架构的成本效益

数据工程最佳实践:Netflix 如何保持其数据基础架构的成本效益

Netflix无疑是世界上最大的视频提供商,其拥有最大的视频库、最多的客户以及最多的流媒体。据估计,该视频库的规模几乎是与其最接近的竞争对手的四倍。

同时这也可能意味着Netflix拥有世界上最大的数据基础设施。正如Netflix技术博客在2020年7月的一篇文章中所说的那样,其拥有数十个数据平台、数百个数据生产者和消费者、其AWS平台上有10万多个服务器实例,仅其数据仓库就有数百PB。至少,这可以与美国的头部银行摩根大通(JP Morgan Chase)运营的海量数据网相媲美。

控制成本是Netflix的首要任务。然而,Netflix不想采用通常的策略来设定预算和其他限制。Netflix的基础设施完全在部署云中,而云的成本是极具动态性和复杂性的(这就是为什么它催生了一个全新的金融领域,云数据Fin Ops)。此外,根据博客的说法,这种极端的做法与Netflix“自由与责任”的文化背道而驰,而且由于Netflix的数据基础设施遍布全球,因而导致其效率低下。

结果,Netflix走了另一条路。它没有对用户成本设定严格限制,而是决定赋予数据决策者尽可能多的成本透明度。这一战略的核心是一个定制的“数据效率”仪表盘,它为所有Netflix数据用户和团队提供了全面的成本和性能信息。

数据平台的格局

Netflix的数十个数据平台分为两类:分别是静态数据和动态数据。对于静态数据,存储库和系统包括S3数据仓库、Cassandra、Elasticsearch以及上面列出和未列出的其他数据。由于其完全部署在云中,成本主要来自于数据的存储。

Keystone、Mantis、Spark、Presto和Flink是Netflix使用的数据动态技术。这里的成本主要来自数据的计算和处理。通过作业平台日志、API摘录和一个名为Atlas的自定义监控系统来跟踪这些数据,该系统捕获每个数据对象的运行指标,包括CPU使用率、内存使用率、网络吞吐量等。

每个数据平台都包含由不同团队和用户拥有的数千个独立数据对象。对象及其大小的完整列表被存储在S3的一个列表中。

成本可视化

Netflix有几个目标。首先,它希望为每个团队获得一个统一的数据成本视图。这些团队主要是工程和数据科学团队,其次是工程决策者。为此,它需要汇总所有平台的成本,这些成本存储在下图的Netflix Data Catalog中。同时,它需要能够将成本分解为细粒度的单元,例如数据库表、索引、数据作业。

Netflix进行内部测试时,使用AWS计费按服务甚至不同平台划分成本。然而,这种详细程度不足以按数据资源和/或团队提供基础架构成本。Netflix不得不提出更加完善的方案。对于EC2上运行的每个数据对象,都可以确定瓶颈的潜在来源。Kafka数据流可能会遇到网络问题,而Spark作业可能会因缺少CPU或内存而受到限制。基于此,使用Atlas、平台日志和RESTAPI识别每一个瓶颈。在计算用量和成本时,要减去瓶颈。对于S3数据对象,计算要容易得多,因为只需将存储量乘以每个字节的成本即可。

仪表盘

仪表盘按数据平台显示特定团队的每周成本(年化)

Netflix使用云原生Apache Druid数据库构建了其定制的仪表盘。虽然Druid不是一个完整的SQL数据库,但它可以摄取大量的流数据,并对最新的数据提供简单但即时的分析结果。Netflix的仪表盘利用此功能提供不同的实时视图,具体取决于这是针对工程和数据科学团队(上图)、工程决策者(下图)还是其他人。因此,可以按数据资源或团队对成本进行分组。

数据成本按组织层次结构划分

不仅仅是数据,还有节省成本的建议

对于节省潜在成本的场景,Netflix已经开始超越基于仪表盘的洞察。例如,所有的数据都有一个保质期。曾经被大量使用的数据可能会随着时间的推移而老化,从而有理由将其从快速但昂贵的 “热 “存储转移到速度较慢、成本较低的 “冷 “存储,甚至完全删除。然而,Netflix发现,数据所有者往往不善于估计数据何时可以被删除或转移到更冷的存储中。他们需要Netflix帮助确定存储数据的最佳生存时间(TTL)。

自动TTL建议的第一批受益者是存储在Netflix的S3大数据仓库中的数据表的所有者,该仓库的规模有数百PB。Netflix分析了访问日志和前缀到表分区的映射,以确定哪些表正在被访问。然后,它给出一个安全删除每张表的日期的建议,计算节省的成本,然后将这些建议反馈给数据所有者。

为了避免电子邮件过载,Netflix每月只向数据仓库表所有者发送TTL建议,他们可以显著的实现数据存储的节省。

各方面取得的积极成果

据博客文章称,总体而言,Netflix的数据效率仪表盘取得了成功,它提供了“解决效率问题的巨大杠杆”。特别是,仪表盘上的海量数据仓库以及自动表格TTL建议都具有“high ROI”,因为它帮助Netflix将其数据仓库存储被占用的空间减少了10%,这相当于数十PB的存储空间。

据Netflix称,仪表板只面临一个挑战,那就是提供随时间变化的成本趋势视图。主要原因包括数据不一致、数据摄取延迟和数据资源所有者的变化等。

至于接下来的计划,Netflix发现了两个机会:一是“根据使用模式为(数据)资源使用不同的存储类”;二是“识别并积极删除未使用数据资源的上下游依赖关系。”

虽然Netflix拥有庞大的环境和相应的预算来证明建立自己的数据成本和数据效率工具是合理的,但其他公司可能会认为,部署一个多维数据观察平台是一个更容易、更经济、更有成效的价值工程和云成本优化的途径

目前,HongKe提供了一个综合性的平台,可以帮助企业有效节省大量的数据成本。例如,HongKe Pulse通过帮助企业卸载不必要的、过度配置的软件和优化容量规划,每年帮助企业节省数百万美元。

HongKe Torch是我们的数据质量和可靠性解决方案,它提供自动化的持续性数据发现和登记。这确保了所有数据集无论存储在何处,都可以通过集中的资源清单对系统中的所有用户可见。这防止了昂贵的数据孤岛的增长,并消除了冗余数据。它还可以帮助用户轻松找到适合其应用程序的最佳数据集。这创造了一种数据成本效率和重复使用的文化,减少了新数据集和数据管道的扩散,使你的成本得到控制。

发表评论