什么是任务运维中心
先从一段不太正经的推理开始:
根据某百科的官方解释,运维主要目的是确保网站、软件服务的安全和稳定运行。
那么“任务运维”就是确保任务的安全、稳定运行。
那么”任务运维中心“就是辅助任务运维人员进行离线任务管理和实例运维的工作,帮助运维人员提高运维效率,及时发现问题并提供诊断建议,确保任务的安全、稳定运行。
2.任务运维中心能干什么
2.1 发送报警
什么时候会需要运维人员出马?
- 任务出错的时候
- 任务运行变慢的时候
- 任务应该运行却没有运行的时候……
但是运维人员又不能一天到晚盯着任务看,所以任务运维中心就提供“报警”功能,在出现异常的时候,及时的把告警信息发送给运维人员,喊他们来处理异常。
2.1.1 值班组
与报警功能相关的第一个问题,就是报警发送给谁?
任务运维中心支持设置值班组,创建值班组后,可以添加值班人员,并设置值班规则,指定主值班人与备值班人以及连续值班天数和值班时间。
2.1.2 基线运维
与报警功能相关的第二个问题,就是什么时候发送报警?
- 任务出错的时候
- 任务运行变慢的时候
- 任务应该运行却没有运行的时候
针对第二个问题,我们提出“基线运维”模块,先来介绍一下基线是什么,以及与之密切关联的“关键路径”又是什么。
基线:即时间线,在基线运维场景中,通过设定几条时间线(即基线),并将线上任务关联到这些时间线上,当这些任务的实例或上游实例运行失败,或者这些实例的预计产出时间超过对应的时间线时,系统会触发报警通知给值班人员。
预警时间:如果系统计算出基线上最晚产出实例的完成时间超过预警时间时,会触发基线报警。
破线时间:指基线任务中所有实例都必须在该时刻前运行成功,是挂载在该基线上的任务的实例产出时间的承诺时间。建议预警时间设置比破线时间早半小时,相当于留给运维人员一个处理的时间,破线时间相当于是底线。
关键路径:关于关键路径,可以用下图来说明。此例子中,基线根据数仓分层进行设置,任务A-E分别是挂载在2点基线上的任务。
所以我们可以看到,基线的作用其实就是批量监督任务,把一批任务挂在一根基线上,那么基线就会不断去计算基线上这些任务的预计完成时间,一旦计算到预计完成时间超过预期的时间,就会向值班人员发出基线报警。
值班人员在收到报警信息后,就要去排查到底是哪个任务延迟了,这时候就需要查看关键路径,向上溯源,最终精准找出问题的源头。
任务运维中心支持基线运维,通过权限授权,运维人员可以在运维配置中创建与管理基线。将相关任务与基线关联后,在基线运维模块,就可以查看任务的执行时间情况,例如下图中就是“数仓3点基线”上挂载任务的相关实例运行情况。不同颜色表示实例不同状态,运维人员可以直观高效地查看任务执行情况,并对异常实例进行相关操作。
2.2 定位问题
现在我们已经收到了报警,并且知道是哪个任务出了问题,那么接下来就要想办法知道任务究竟出了什么问题,是因为代码错误,还是资源不足,还是DQC异常,抑或是平台bug呢。
2.2.1 智能诊断
为了能够帮助运维人员快速定位问题,我们推出了“智能诊断”功能。如果你想快速体验这一功能,可以前往周期实例列表,选择状态为失败的实例,就能看到一个放大镜的图标,点击即可进入智能诊断页面。
智能诊断的详情页面展示异常节点,以及异常处理建议。例如下图,就是针对数据同步节点运行失败所提供的诊断结果与处理建议。
2.3 解决方案
2.3.1 重跑
当我们发现任务出了问题,并且定位到了失败原因,通过修改代码、重新发布上线后,还需要将原先运行失败的问题进行重跑操作。如果实例状态是失败、终止,则支持实例重跑/批量重跑。
重跑的操作步骤包括:
选择需要重跑的节点,系统支持自动勾选失败、终止及撤销节点;
进行重跑设置,包括通知设置、运行设置等,支持重跑成功或失败时消息通知用户
重跑完成后,周期实例列表会更新实例ID,并支持查看重跑记录。
2.3.2 补数据
补数据的场景主要有:
当任务新建后希望对历史数据进行加工,可通过补数据功能选择历史某个时间段来执行任务;
当任务某个时间段内数据有问题或者任务异常,可通过补数据对历史异常的数据或任务进行重新生成实例并执行,达到修复历史数据的目的。
补数据的步骤包括:
选择源头任务需要补数据的节点
选择下游任务需要补数据的节点
进行补数据运行设置
这里用gl_ods_user_info任务为例,这个任务首次执行时间是2022年7月份的某一天,我想要补这个任务以及他的下游任务2022年6月份的数据,我就可以使用补数据功能。
第一步:选择源头任务要补数据的节点
第二步:选择下游任务要补数据的节点,这里任务有点多,我可以根据实际需要来勾选要补数据的任务节点
第三步:配置补数据设置,我可以设置要补数据的时间范围,计划执行时间、执行队列等参数
第四步:前往补数据任务运维列表,查看补数据实例执行情况
3.总结
下图是从用户日常运维视角来看的产品闭环图。任务运维中心的本质就是为用户打造从发现问题、定位问题再到解决问题的完整、高效的运维链路。尤其是现在企业用户数据爆发增长,数据任务往往具有任务量庞大、调度类型复杂、业务影响范围广等特点,任务运维人员往往肩负巨大压力,一个智能高效的运维平台能够帮助运维人员提高工作效率、最大化减少因故障处理不及时而产生的损失,保障数据任务健康运行。
通过提供强大的基线运维、灵活的告警规则配置、自动化的任务管理和监视等功能,致力于打造一个运维人员轻松从容、运维工作高效敏捷的智能化运维工具。