首页 > 其他分享 >降低数据平台成本 ,Apache Airflow迁移上云案例分享

降低数据平台成本 ,Apache Airflow迁移上云案例分享

时间:2024-10-11 10:02:07浏览次数:8  
标签:Airflow 开源 上云 DTSE 华为 集团 Apache

本文分享自华为云社区《华为云DTSE团队通过开源专业服务,助力马来西亚X集团平滑迁移上云》,作者:华为云开发者联盟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进行任务编排的需求时,遇到了如下几个棘手问题。

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

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

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中txt文件的变化,用于安装Python依赖包,将镜像上传至华为云SWR;

  3. 上传Airflow的Helm Chart包到CCE模板,修改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”参数来解决任务传感器数量问题,极大程度上减少了整体代码编写量。

具体方案设计如下:

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

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

5  总结与建议

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

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

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

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

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

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

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

……

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

 

来源:《华为云DTSE》第五期开源专刊

 

点击关注,第一时间了解华为云新鲜技术~

标签:Airflow,开源,上云,DTSE,华为,集团,Apache
From: https://www.cnblogs.com/huaweiyun/p/18457835

相关文章

  • 大数据-164 Apache Kylin Cube优化 案例1 定义衍生维度与对比 超详细
    点一下关注吧!!!非常感谢!!持续更新!!!目前已经更新到了:Hadoop(已更完)HDFS(已更完)MapReduce(已更完)Hive(已更完)Flume(已更完)Sqoop(已更完)Zookeeper(已更完)HBase(已更完)Redis(已更完)Kafka(已更完)Spark(已更完)Flink(已更完)ClickHouse(已更完)Kudu(已更完)Druid(已更完)Kylin(正在更新…)章节内容上节......
  • 大数据-162 Apache Kylin 全量增量Cube的构建 Segment 超详细记录 多图
    点一下关注吧!!!非常感谢!!持续更新!!!目前已经更新到了:Hadoop(已更完)HDFS(已更完)MapReduce(已更完)Hive(已更完)Flume(已更完)Sqoop(已更完)Zookeeper(已更完)HBase(已更完)Redis(已更完)Kafka(已更完)Spark(已更完)Flink(已更完)ClickHouse(已更完)Kudu(已更完)Druid(已更完)Kylin(正在更新…)章节内容上节......
  • Apache DolphinScheduler-1.3.9源码分析(二)
    引言随着大数据的发展,任务调度系统成为了数据处理和管理中至关重要的部分。ApacheDolphinScheduler是一款优秀的开源分布式工作流调度平台,在大数据场景中得到广泛应用。在本文中,我们将对ApacheDolphinScheduler1.3.9版本的源码进行深入分析,主要分析一下Master和Worker的......
  • Apache DolphinScheduler社区9月进展记录
    各位热爱ApacheDolphinScheduler的小伙伴们,社区9月月报更新啦!这里将记录ApacheDolphinScheduler社区每月的重要更新,欢迎关注!月度MergeStar感谢以下小伙伴上个月为ApacheDolphinScheduler做的精彩贡献(排名不分先后):@Mighten,@ChaoquanTao,@wangxj3,@Xuxiaotuan,@sd......
  • Apache SeaTunnel 9月份社区发展记录
    各位热爱SeaTunnel的小伙伴们,9月份社区月报来啦!这里将定期更新SeaTunnel社区每个月的重大进展,欢迎关注!月度MergeStars感谢以下小伙伴上个月为ApacheSeaTunnel做的精彩贡献(排名不分先后):@ZhangWeike2000,@wuchunfu,@chl-wxp,@hawk9821,@happyboy1024,@jiamin13579,@Cosmos......
  • 30人小企业如何轻松地上云?
    企业上云已经成为一种趋势,但对于没有IT背景真的30人小公司,如何挑选到合适的云盘软件?其实我们可以从需求反推,重点关注以下6点即可:易用性:软件应该直观易用,无需复杂的IT知识即可快速上手。价格:考虑到成本,应选择性价比高的解决方案,避免过高的支出。安全性:数据安全至关重要,需......
  • 大数据-158 Apache Kylin 安装配置详解 集群模式启动
    点一下关注吧!!!非常感谢!!持续更新!!!目前已经更新到了:Hadoop(已更完)HDFS(已更完)MapReduce(已更完)Hive(已更完)Flume(已更完)Sqoop(已更完)Zookeeper(已更完)HBase(已更完)Redis(已更完)Kafka(已更完)Spark(已更完)Flink(已更完)ClickHouse(已更完)Kudu(已更完)Druid(已更完)Kylin(正在更新…)章节内容上节......
  • PHP中的HTTP请求:Apache客户端的高效应用
    在现代Web开发中,PHP作为一种流行的服务器端脚本语言,经常需要与外部服务进行交互。这通常涉及到发送HTTP请求来获取或提交数据。ApacheHttpClient是PHP中一个强大的库,用于发送HTTP请求。本文将介绍如何在PHP中使用ApacheHttpClient来执行HTTP请求。ApacheHttpClient简介Ap......
  • 轻松上云怎么操作?IoT_CLOUD之中移OneNET
    ​ 最近来了很多新朋友,也经常被问:可以多讲些云平台的操作吗?当然可以!文末留言你想要了解的云平台,优先安排~接下来,本文将以Air780E+LuatOS作为示例,教你使用合宙IoT_CLOUD连接中移OneNET物联网云平台。 一、IoT_CLOUD简 1.1IoT_CLOUD特色简介IoT_CLOUD——是合宙专门为了......
  • apache配置默认自动重启
    1.增加环境变量.vi/root/apache-tomcat-8.5.75/bin/setenv.sh[root@app1bin]#catsetenv.shexportCATALINA_OPTS="$CATALINA_OPTS-Xms1600m"exportCATALINA_OPTS="$CATALINA_OPTS-Xmx1600m"exportCATALINA_OPTS="$CATALINA_OPTS-XX:MaxPerm......