设置
  • 日夜间
    随系统
    浅色
    深色
  • 主题色

华为云 DTSE 团队通过开源专业服务,助力马来西亚 X 集团平滑迁移上云

2024/10/22 18:06:00 来源:之家网站 作者:- 责编:-

本文来源于《华为云 DTSE®》第五期开源专刊,更多文章请查看:https://bbs.huaweicloud.com/blogs/435823

作者:华为云开发者联盟 DTSE 团队

1 摘要

本文主要介绍了华为云 DTSE 助力马来西亚 X 集团部署开源工作流平台 Apache Airflow 的案例。Airflow 是一款面向数据处理场景,提供以编程方式编写、调度和监控的开源工作流平台,被广泛开发者所使用。本文以马来西亚 X 集团大数据平台中的 Apache Airflow 为背景,提供了一个利用开源工具进行技术支撑的案例。Airflow 本身并未集成华为云云服务能力,通过 API / SDK 集成、兼容性适配、定制化开发等技术,完成 X 集团大数据平台的跨云迁移、脚本编程优化等工作,降低 X 集团平台部署与人力成本,提升编程效率。

2 背景

X 集团是马来西亚最强大的房地产建筑集团之一,旗下有 13 个 BU,涉及房地产、建筑、零售、酒店、休闲、医疗、教育等方面。

X 集团本身的业务是基于 Apache Airflow 进行任务编排的,因此在 DTSE 团队协助其 Group IT 将部署在 Google 的大数据平台进行全面替换时,X 集团希望在华为云上仍然能够继续使用 Airflow。

3 业务场景分析

X 集团同意先由华为云进行 POC 评估,计划 POC 阶段通过后再转入商用阶段。在满足集团希望能在华为云上继续使用 Apache Airflow 进行任务编排的需求时,遇到了如下几个棘手问题。

1.华为云部署 Apache Airflow 难度较大:当前 Airflow 在华为云 CCE 部署并没有成熟方案,且由于 Airflow 本身并未集成华为云云服务能力,因此 X 集团在华为云上需要通过手动方式部署和管理 Airflow 工作流平台,由于没有托管服务,人力与运维成本偏高。

2.缺乏华为云云服务操作器,GCP 无法直接迁移上华为云:由于谷歌对开源的 Airflow 做了一些针对性的云服务适配,其中涉及到 X 集团在 GCP 上部署 Airflow 集群时需要调用的 Big Query 以及 Google Cloud Storage 等,因此该集团从 GCP  迁至华为云后客户业务无法直接运行。

3.DAG 编程复杂导致代码编程工作量过大:DAG 是 Airflow 中的工作流文件,基于 X 集团业务场景进行 DAG 编程时,每个 DAG 中的每个任务都需要附带一个任务传感器,这明显增加了 DAG 编程的代码工作量。

4 解决方案

综合考虑 X 集团业务痛点问题,DTSE 技术团队在 POC 阶段提供 Demo 演示来打消集团疑虑,并持续跟踪该集团转入商用阶段,直至成功割接上线。

4.1 基于 CCE 容器化解决集群部署问题

当前 Airflow 在华为云 CCE 部署并没有成熟方案,并不支持对 Airflow 集群的托管工作。为了解决华为云部署 Apache Airflow 集群问题,DTSE 制定了基于 CCE 的容器化方案,CCE 云容器引擎提供高可靠、高性能的企业级容器应用管理能力,支持 Kubernetes 社区原生应用和工具,应用及自动弹性伸缩,自动化搭建云上容器平台。

DTSE 通过 CCE 云容器引擎协助 X 集团搭建数据分析与数据存储平台,进行 Airflow 集群化一键部署,并对该集团业务系统进行架构优化,支持自动化运维与管理,构建自定义容器镜像,实现实时监控文件变化以及自动安装脚本所需依赖包,避免反复更新 Pod 操作,实现托管功能。

具体方案设计如下:

1.构建 Airflow 容器镜像,包含华为云 Provider 包,将镜像上传至华为云 SWR;

2.构建 config_watcher 容器镜像,监控 ConfigMap 中 requirements.txt 文件的变化,用于安装 Python 依赖包,将镜像上传至华为云 SWR;

3.上传 Airflow 的 Helm Chart 包到 CCE 模板,修改 values.yaml 配置文件,替换容器镜像为 SWR 的容器镜像等,部署 Airflow。

图 1 Airflow CCE 部署架构图

4.2 开发对应的操作器完成数据源替换

华为云的 OBS(对象存储服务)可替换 Google Cloud Storage,为用户提供海量、安全、高可靠、低成本的数据存储能力。DWS(数据仓库服务)是一种即开即用、安全可靠的在线数据仓库服务,为用户提供海量数据的存储、挖掘和分析能力;DLI(数据湖探索服务)完全兼容 Apache Spark、Apache Flink、Trino 生态,提供一站式的流处理、批处理、交互式分析的 Serverless 融合处理分析服务。DWS 与 DLI 结合可替换 Big Query,完成数据分析和处理。

技术团队针对 Airflow 缺乏的华为云云服务操作器与该集团的弹性业务场景进行适配,分别开发了 OBS、DWS、DLI 等云服务的操作器,并打包成相应的插件包供开发者使用,大幅度减少开发者适配华为云的开发工作量。

具体方案设计如下:

1.基于 X 集团场景所需云服务功能进行分析,获取云服务的 API / SDK 列表;

2.基于所分析的云服务的 API / SDK 列表,开发适配对应的华为云 Provider 包;

3.通过华为云 Provider 包测试 X 集团业务流程,并为该集团提供 Demo 演示。

4.3 通过参数实现脚本编程优化

DTSE 根据 X 集团业务场景对 DAG 脚本进行改造迁移,DAG 在 Airflow 中表示运行的所有任务的集合,由 python 脚本定义,其中包含了多个 TASK,并定义了这些 TASK 的依赖关系。原本在 DAG 编程时,由于每个 DAG 中的每个任务都需要附带一个任务传感器,导致一个脚本文件中常常会有大量的任务传感器。DTSE 以自身的软件开发经验和能力,深入代码层级,根据 X 集团脚本进行整改优化,让执行 Job 的操作器支持“deferrable”参数来解决任务传感器数量问题,极大程度上减少了整体代码编写量。

具体方案设计如下:

1.为 Job 执行器进行自定义触发器开发;

2.修改 Job 执行器逻辑,添加“deferrable”参数。当“deferrable”参数设置为 True 时表示开启延迟模式,使用触发器来推迟自身,直至 Job 执行成功或失败。

5 总结与建议

通过开源专业服务,X 集团成功将其数据分析与数据存储平台迁移至华为云,降低了其数据平台成本的同时也带动华为云云服务约 20w / 年的资源消耗。在此过程中,我们对 X 集团的数据处理流程进行了深入优化,特别是在 DAG 中完成了 100 多个 Task 改造迁移工作,让该集团的脚本编程效率得到极大提升,显著减少了每个 DAG 中的每个 TASK 至少 50% 的编程工作量,进一步提升了开发运维效率,帮助企业实现降本增效。

这类对开源项目有需求的企业在上云时常常面临如下需求:

1.灵活性和自主性:企业希望依据自身情况进行定制和集成,而不受特定厂商或提供商限制;

2.降低成本:企业预算有限,寻找更经济实惠的解决方案;

3.数据安全和隐私保护:企业希望通过透明且可审计代码的开源产品,理解软件的工作原理,增强对数据安全和隐私保护的信心;

4.单一供应商锁定风险:不希望与某云厂商强绑定;

5.对某开源组件形成依赖:业务上已经用习惯了某开源组件,解决方案架构中希望继续使用该开源组件。

……

结合开源项目特有的成本低、高灵活性和可定制性等优势,让开源项目往往在解决方案中脱颖而出,成为必不可少的一环。DTSE 深入了解 X 集团业务需求,针对该集团痛点提供对应的开源专业服务,引导该集团进行试点验证,进而推广复制,循序渐进的将该集团业务迁移上华为云,实现 X 集团与华为云双赢。

本文介绍了 X 集团将开源工作流平台 Airflow 迁移上华为云的案例,重点展示了开源专业服务中的云服务集成适配服务以及能力定制化服务,为此类型企业提供了一个可参考的范例。

广告声明:文内含有的对外跳转链接(包括不限于超链接、二维码、口令等形式),用于传递更多信息,节省甄选时间,结果仅供参考,IT之家所有文章均包含本声明。

相关文章

关键词:业界动态

软媒旗下网站: IT之家 最会买 - 返利返现优惠券 iPhone之家 Win7之家 Win10之家 Win11之家

软媒旗下软件: 软媒手机APP应用 魔方 最会买 要知