使用 Dataflow 构建支持生产环境的数据流水线:概览

本文是系列文章中的一篇,可帮助您使用 Dataflow 来改善数据流水线的生产就绪性。本系列文章的目标受众为负责开发、部署和监控 Dataflow 流水线的技术人员。本系列文章假定您对 Dataflow 和 Apache Beam 有一定的了解。

本系列文章使用“生产就绪”一词来表示适合交付业务关键型功能。本系列文章介绍了与一系列通用注意事项相关的最佳做法,例如流水线可靠性和可维护性、流水线性能优化和开发者工作效率。

该系列中的文档包含以下内容:

简介

在计算中,数据流水线是一种通过一系列关联的处理步骤处理数据的应用。数据流水线可以应用于许多用例,例如系统之间的数据迁移、提取、转换和加载 (ETL)、数据丰富以及实时数据分析。通常,数据流水线以批处理的形式运作,在运行时执行和处理数据;或者以流处理的形式运作,在数据可用时连续执行和处理数据

Dataflow 是一种代管式服务,用于运行使用 Apache Beam SDK 开发的批量数据处理和流式数据处理流水线。Dataflow 是一种无服务器产品,可让您专注于(使用代码和 SQL)表达数据流水线的业务逻辑,同时移除或简化了许多基础架构和运营任务。例如,Dataflow 功能包括自动基础架构预配和扩缩、流水线更新以及可重复运行的模板化部署。

与其他应用一样,为 Dataflow 流水线启用生产就绪涉及的不仅仅是编写和运行代码。您需要收集和分析需求、规划改善设计并衡量性能。

为确保流水线的可靠性和可维护性,您必须在开发过程中了解并遵循编程的最佳做法。例如,我们建议您使用现代 DevOps做法(例如持续集成和交付 (CI/CD))将开发者工作站上的 Apache Beam 代码转换为在生产环境中运行的 Dataflow 流水线。对于正在运行的流水线,您可以使用监控、提醒和错误报告功能来排查流水线错误,了解性能和数据问题,以及根据服务等级目标 (SLO) 交付流水线的整体性能。

当您将 Dataflow 与其他代管式 Google Cloud 服务结合使用时,与自行管理的解决方案相比,您可以简化生产化数据流水线的诸多方面。例如,您可以使用 Google Cloud 的运维套件进行监控和错误报告,使用 Cloud Composer 进行流水线编排。

目标

本系列文章描述的最佳做法分为以下阶段:

  • 规划:在开始开发之前应满足哪些非功能性要求?为什么应在规划阶段考虑 SLO,应如何设置 SLO?SLO 应如何为数据流水线的设计提供参考?需要考虑对上游和下游系统的哪些潜在影响?
  • 开发和测试:编写 Apache Beam 代码时应遵循哪些最佳做法?应构建并自动执行哪些测试?流水线开发者应如何使用不同的部署环境来编写、测试和运行代码?
  • 部署:在有新版本可用时,应如何更新已运行的流水线?如何将 CI/CD 做法应用于数据流水线?
  • 监控:应监控生产流水线的哪些方面?如何检测和解决生产环境中的性能问题、数据处理问题和代码错误?

阅读完本系列文章后,您将对上述所有注意事项以及它们在使用 Dataflow 构建生产就绪的数据流水线方面的重要性有更深入的理解。

后续步骤