在 Netflix,我们使用亚马逊网络服务 (AWS) 满足我们的云基础设施需求,例如计算、存储和网络,以构建和运行我们喜爱的流媒体平台。我们的生态系统使工程团队能够大规模运行应用程序和服务,利用开源和专有解决方案的组合。反过来,我们的自助服务平台允许团队更有效地创建和部署,有时是自定义的工作负载。这种多样化的技术环境会从各种基础设施实体生成大量丰富的数据,数据工程师和分析师通过这些数据进行协作,为工程组织提供可操作的见解,形成一个持续的反馈循环,最终增强业务。
我们做到这一点的一个关键方法是实现高度精选的数据源的民主化,这些数据源会公开 Netflix 各个服务和团队的使用情况和成本模式。数据与洞察组织与我们的工程团队紧密合作,共享关键的效率指标,使内部利益相关者能够做出明智的业务决策。
这就是我们的团队平台 DSE(数据科学工程)发挥作用的地方,它使我们的工程合作伙伴能够了解他们正在使用哪些资源、他们如何有效和高效地使用这些资源以及与其资源使用相关的成本。我们希望我们的下游消费者使用我们的数据集做出具有成本意识的决策。
为了以可扩展的方式满足这些众多分析需求,我们开发了一个由两部分组成的解决方案:
* **基础平台数据 (FPD)**:此组件为所有平台数据提供了一个集中式数据层,具有一致的数据模型和标准化的数据处理方法。
* **云效率分析 (CEA)**:此组件构建在 FPD 之上,提供了一个分析数据层,提供跨各种业务用例的时间序列效率指标。
**基础平台数据 (FPD)**
我们与不同的平台数据提供商合作,获取他们拥有的相应平台的库存、所有权和使用情况数据。以下是如何将此框架应用于 Spark 平台的示例。FPD 与生产者建立数据契约以确保数据质量和可靠性;这些契约允许团队利用共同的所有权数据模型。标准化的数据模型和处理促进了可扩展性和一致性。
**云效率分析 (CEA 数据)**
一旦基础数据准备就绪,CEA 就会使用库存、所有权和使用情况数据,并应用适当的业务逻辑来生成不同粒度的成本和所有权归因。CEA 中的数据模型方法是进行分隔并保持透明;我们希望下游消费者了解为什么他们会在自己的名称/组织下看到资源出现,以及如何计算这些成本。这种方法的另一个好处是能够快速调整,因为引入了新的或业务逻辑的更改。
* 出于成本核算目的,我们将资产解析为单个所有者,或者在资产是多租户时分配成本。但是,我们也为不同的消费者提供不同聚合级别的使用情况和成本。
**数据原则**
作为效率指标的真实来源,我们团队的宗旨是提供准确、可靠且可访问的数据、全面记录以应对效率领域的复杂性,以及明确的服务级别协议 (SLA) 以在延迟、中断或更改期间与下游消费者设定期望。
虽然所有权和成本可能看起来很简单,但由于业务基础设施的广度和范围以及平台特定功能,数据集的复杂性相当高。服务可能有多个所有者,成本启发式方法对每个平台都是独一无二的,并且基础设施数据的规模很大。当我们致力于将基础设施覆盖范围扩展到业务的所有垂直领域时,我们面临着一系列独特的挑战:
**适应大多数的几种规模**
尽管数据契约和标准化的数据模型将上游平台数据转换为 FPD 和 CEA,但通常每个特定平台都会有一些程度的自定义。作为集中式真实来源,我们始终感受到将处理负担放在何处的压力。决策涉及与我们的数据生产者和消费者进行持续的透明对话、频繁的优先级检查以及作为该领域的知情负责人与业务需求保持一致。
**数据保证**
对于数据正确性和信任度,至关重要的是,我们必须对管道中每一层的健康指标进行审核和可见性,以便快速调查问题和根本原因异常。由于上游延迟和所需的转换才能使数据准备好供使用,因此在确保正确性的同时保持数据完整性变得具有挑战性。我们持续迭代我们的审核并纳入反馈以改进和满足我们的 SLA。
**抽象层**
我们重视人胜于流程,工程团队为组织的其他部分构建自定义 SaaS 解决方案的情况并不少见。尽管这促进了创新并提高了开发速度,但在理解和解释使用模式以及以对业务和最终消费者有意义的方式归因成本方面,可能会产生一些难题。凭借来自 FPD 的清晰的库存、所有权和使用情况数据,以及分析层中的精确归因,我们旨在为下游用户提供指标,无论他们是否利用和构建内部平台或直接在 AWS 资源之上。
**展望未来**
展望未来,我们旨在继续将平台加入 FPD 和 CEA,努力在来年实现几乎完整的成本洞察覆盖。从长远来看,我们计划将 FPD 扩展到业务的其他领域,例如安全性和可用性。我们的目标是通过预测分析和机器学习转向主动方法,以优化使用情况和检测成本异常。
最终,我们的目标是使我们的工程组织能够在构建和维护无数服务时做出注重效率的决策,这些服务使我们能够享受 Netflix 作为流媒体服务的体验。