2

我找不到太多关于在 Google Cloud Composer 与 Docker 上运行 Airflow 的区别的信息。我正在尝试将我们目前在 Google Cloud Composer 上的数据管道切换到 Docker 上,以便仅在本地运行,但我正在尝试概念化其中的区别。

4

1 回答 1

7

Cloud Composer是适用于 Airflow 的 GCP 托管服务。Composer 在称为 Composer 环境的环境中运行,该环境在 Google Kubernetes Engine 集群上运行。它还利用各种其他 GCP 服务,例如:

  • Cloud SQL - 存储与 Airflow 关联的元数据,
  • App Engine Flex - Airflow Web 服务器作为 App Engine Flex 应用程序运行,该应用程序使用 Identity-Aware Proxy 进行保护,
  • GCS 存储桶 - 为了提交要在 Composer 上调度和运行的管道,我们需要做的就是将 Python 代码复制到 GCS 存储桶中。在其中,它将有一个名为 DAGs 的文件夹。任何上传到该文件夹​​的 Python 代码都会被 Composer 自动拾取和处理。

Cloud Composer 如何受益?

  • 专注于您的工作流程,让 Composer 管理基础设施(创建工作人员、设置 Web 服务器、消息代理),

  • 一键创建新的Airflow环境,

  • 轻松且受控地访问 Airflow Web UI,

  • 提供日志记录和监控指标,并在您的工作流程未运行时发出警报,

  • 与所有 Google Cloud 服务集成:大数据、机器学习等。在其他地方运行作业,即其他云提供商(亚马逊)。

当然,您必须为托管服务付费,但与您必须自己托管生产气流服务器相比,成本较低。

现场气流

  • 需要完成的 DevOps 工作:创建新服务器、管理 Airflow 安装、处理依赖项和包管理、检查服务器运行状况、扩展和安全性。
  • 从注册表中提取 Airflow 图像并创建容器
  • 创建一个卷,映射本地机器上保存 DAG 的目录,以及 Airflow 在容器上读取它们的位置,
  • 每当您要提交需要访问 GCP 服务的 DAG 时,您都需要注意设置凭据。应创建应用程序的服务帐户并将其下载为包含凭据的 JSON 文件。此 JSON 文件必须链接到您的 docker 容器,并且 GOOGLE_APPLICATION_CREDENTIALS 环境变量必须包含容器内 JSON 文件的路径。

总而言之,如果您不想处理所有这些 DevOps 问题,而只想专注于您的工作流程,那么 Google Cloud composer 对您来说是一个很好的解决方案。

此外,我想与您分享使用DockerGCP Cloud Composer设置 Airflow 的教程。

于 2020-07-07T08:54:22.870 回答