干货 | 携程前端自动化任务平台TaskHub开发实践

作者简介

工业聚,携程高级前端开发专家,react-lite, react-imvc, farrow 等开源项目作者。

乐文,携程高级前端开发工程师,专注于前端工程化和性能优化。

克旋,携程资深前端开发工程师,关注效率和质量,追求用科学的方式解决问题。

林雄,携程资深前端开发工程师,关注前端新技术应用领域。

团队热招岗位:前端开发资深工程师/专家

本文介绍了前端自动化任务中的难题,讲解了Taskhub如何通过拆分核心和辅助模块来应对这些挑战,并结合两个实际场景展示了Taskhub在提升自动化任务排障效率等方面的表现。最后,讨论了Taskhub使用的RPC BFF框架如何提升整体开发效率,并分享了使用RPC BFF的经验。

  • 一、前言

  • 二、平台背景

  • 三、平台目标

  • 四、TaskHub介绍

  • 4.1 TaskHub平台

  • 4.2 TaskHub引擎

  • 五、使用案例

  • 5.1 度假业务自动化数据录入

  • 5.2 复杂业务场景的自动化改造

  • 六、RPC BFF最佳实践

  • 6.1 收敛类型

  • 6.2 原子化过程

  • 七、结语

一、前言

本文讨论的自动化,是指通过代码的方式,将原本人工完成的相关操作由机器代为处理,如此达到释放人力和提升效率等目标。

然而实现自动化的过程不总是那么顺利,自动化后的效果未必那么理想。可能有的团队会发现自动化脚本尽管释放了业务人员,但成本却转移到开发人员身上。他们需要投入大量时间去更新失效的自动化逻辑,出现问题后的排障时间和难度也随之增加。如果自动化任务的成功率低、问题修复速度慢,那么大量的工作将不得不降级为人工处理,自动化的业务价值无从体现。

我们发现,通过完善自动化任务的相关基建(包括任务调度引擎和任务管理平台等),上述问题可以得到显著的控制和缓解。本文将分享携程旅游研发在这方面的尝试和经验,希望能为其他开发者和团队提供参考。

二、平台背景

旅游内部不少业务都有自动化需求,部分团队已经上线了自己的自动化项目,这些项目由不同的团队维护,但均有相似的痛点:

  • 无法及时关闭自动化任务:由于缺乏有效的控制手段,自动化任务一旦重启就难以中断。

  • 排障效率低下:目前大部分自动化任务是前端自动化任务,前端由于站点更新、网络波动、代理异常等常见原因导致任务无法完成,出错的原因很杂,不能复现场景,难以查找根因。

  • 日志查找困难:现有的日志系统以时间为锚点记录日志,没有划分任务的边界。一次自动化任务产生的日志通常是一个普通请求的2到5倍,需要从大量连续的任务执行日志中找到需要的信息,并且随着任务增加,存储的日志的文件数量也随之增长,查找变得更加困难。

  • 复现困难:任务的入参通常和日志柔和在一起,导致复现问题时难以分析。

  • 日志没有权限限制:任何人都可以查看日志,可能导致敏感信息泄露。

三、平台目标

为了解决自动化的共性问题,减少重复开发,我们希望通过创建一个统一的平台来提升自动化效率和可靠性,具体目标如下:

  • 提高排错效:通过详细的日志记录和辅助工具,低成本快速还原任务场景,便于快速定位和复现。

  • 被动感知任务异:建立实时监控和通知机制,实时检测并推送任务异常信息,减少人为监控负担,完全释放人力。

  • 聚焦业务本身:让开发者专注于核心业务逻辑,不必担心自动化过程中可能出现的性能问题,通过平台提供的工具确保自动化任务高效、稳定地运行。

基于以上目标,我们设计开发出前端自动化任务平台TaskHub,一个能够帮助自动化提效的解决方案。

四、TaskHub介绍

在TaskHub中,我们把自动化脚本的执行,称为任务

任务是无状态的,任务与任务之间没有直接关系。任务的设计目标是实现某一特定的自动化功能。

在自动化过程中,核心是确保任务的正确执行。任务执行过程中产生的副作用不应阻碍任务的执行。因此,我们将TaskHub主要分为两个部分:平台。平台用于记录和管理任务执行过程中的产物,而引擎专门负责任务的执行。

平台:可以方便查看、配置、中断任务。

:负责调度任务执行,是任务执行的核心。

整体设

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值