我找不到太多关于在 Google Cloud Composer 与 Docker 上运行 Airflow 的区别的信息。我正在尝试将我们目前在 Google Cloud Composer 上的数据管道切换到 Docker 上,以便仅在本地运行,但我正在尝试概念化其中的区别。
问问题
2695 次
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 对您来说是一个很好的解决方案。
此外,我想与您分享使用Docker和GCP Cloud Composer设置 Airflow 的教程。
于 2020-07-07T08:54:22.870 回答