Google Cloud Composer 上的 Airflow 与 Docker

Airflow on Google Cloud Composer vs Docker

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

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

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

Cloud Composer 如何受益?

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

  • 一键新建Airflow环境,

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

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

  • 与所有 Google 云服务集成:大数据、机器学习等。 运行 其他地方的工作,即其他云提供商 (Amazon)。

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

预置气流

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

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

此外,我想与您分享设置Airflow with Docker and on GCP Cloud Composer的教程。