大数跨境
0
0

干货 | 难对齐、难保障、难管理?一文了解字节跳动如何解决数据SLA治理难题

干货 | 难对齐、难保障、难管理?一文了解字节跳动如何解决数据SLA治理难题 字节跳动数据平台
2022-05-16
1
导读:快来get解决数据SLA治理问题的正确姿势




扫码进入官方交流群

群内定期进行干货分享

技术交流、福利放送


字节跳动数据平台


基于字节跳动分布式治理的理念,数据平台数据治理团队自研了SLA保障平台目前已在字节内部得到广泛使用,并支持了绝大部分数据团队的SLA治理需求,每天保障的SLA链路数量过千,解决了数据SLA难对齐、难保障、难管理的问题。本文将分为上、下篇发布。上篇主要介绍数据SLA的应用场景、核心概念以及申报签署流程。


文 | 录铸  来自字节跳动数据平台开发套件团队


背景介绍

SLA(Service Level Agreement):服务级别协议,对互联网公司来说是网站服务可用性的保证。数据SLA,即数据可用性保证,一般以数据产出时间作为SLA。
在海量数据任务开发场景中,因业务多样化、数据量大、数据任务复杂等问题,导致数据任务链路依赖复杂、链路长、跨团队节点依赖多,因此,在实际开发运维过程中,任务负责人为保证自身数据准时产出,会遇到如下困难:
  • 沟通成本高:任务负责人尝试与上游任务负责人约定SLA,但由于上游任务数多(可至上千个),且跨越多个团队,沟通成本非常高

  • 权责不清晰:由于链路复杂,如何制定SLA?谁来负责保障SLA?

  • 运维压力大:无法及时发现上游任务延迟,导致下游任务负责人承担绝大部分运维压力,且运维效果较差,往往发现延迟已经错过了补救的时间。

为解决上述问题,字节跳动数据平台通过自研的SLA保障平台,规范并推进各业务团队进行任务链路治理,有效保障数据的SLA,数据SLA达标率达到99.1%。
理想的一组任务的完成时间与对应SLA之间的关系如下图所示,即各个任务及其上游任务都在对应的SLA之前完成,这也是平台的治理目标。


应用场景

SLA保障平台除了解决上文的困难外,对不同的用户还有以下使用场景:
  • 数据业务方:“我们团队的业务很依赖一份重要数据,希望能对其进行保障,希望上游能承诺SLA”
  • 数据负责人:“我们团队有很多对外承诺SLA的数据,希望能有一个平台对SLA进行集中管理,并能提供一些统计大盘、风险分析等内容”
  • 数据治理方:“我们希望能提升团队内核心数据的数据质量,对齐进行SLA管理,及时发现风险,并进行事故复盘和改进,最终不断优化数据质量”
根据以上不同角色需求,SLA保障平台提出自身解决方案。针对团队数据治理需求,平台提供完善的治理看板能力;针对任务链路复杂导致的SLA难达成,平台通过各项优化,简化了SLA达成流程;针对下游任务运维压力大的问题,平台优化通知体系,及时播报SLA状态。
那么,SLA保障平台有哪些核心模块?平台是如何运转的呢?

核心概念介绍

01 - 角色

  目前SLA保障平台的核心角色有三类,分别是:
  • 申报人:即SLA提申报的人,一般是数据业务方,其提申报的目的是保障业务数据的SLA;

  • 管理员:满足数据治理方的需求设置的角色,负责申报的审核、批准、管理、统计、登记、复盘等,其目的是不断优化所属团队的数据质量。
  • 任务负责人:即待保障SLA数据链路中的任务owner,负责确定及签署所负责任务的SLA,平台会按照其签署的SLA进行保障;

02 - 任务

即产出数据的任务,通过数据任务的元信息,可构建整条数据生产链路的完整DAG。在本平台中,所涉及的任务元信息一般需要包含以下内容:


03 - 申报单

申报人提起的一次申报内容,被称为一个“申报单”,一个申报单一般包含的核心内容如下:


申报签署流程详解

SLA保障的前提是先达成SLA协议。在SLA保障平台中,以申报单签署的形式达成SLA协议。平台核心特点是优化了SLA达成的流程,先通过“系统卡点计算”减少待签署任务的数量,再通过“SLA推荐计算”自动签署部分任务,最后为剩下的待签署任务智能提供合适的SLA,进一步降低签署成本。

在申报签署环节中,各个环节的变化将通过通知模块传递信息给相应负责人,实时通知降低信息交流成本,加速了SLA的达成。

01 - 流程简介

上图为申报签署的一般流程,在实际操作时,如任务链路变化、SLA时间商讨待确认等特殊情况,申报签署流程会有微调。
首先需要申报人填写申报单,在申报人提交后,系统会根据申报单中的申报任务拉取上游的所有任务,构成一个完整的DAG,并进行任务链路分析链路分析的结果是后续算法的前提,也是管理员审批时的重要参考因素,可以让用户快速了解到自身任务在链路中所处的位置及上下游运行情况。
在理想情况下,为保证申报任务顺利推进,需要该任务的所有上游任务都签署SLA才算完成签署。而链路复杂导致的上游任务多、跨团队沟通成本高、SLA难以确定等问题,成了整体SLA达成的最大阻碍。通过“卡点计算”与“SLA推荐计算”可以跨越此阻碍。

02 - 卡点计算

本系统采取一定的“卡点策略”,计算出此DAG中的部分需要被签署的任务,此类任务称为“卡点任务”,这个过程称之为“卡点计算”。计算得到卡点任务后,在签署过程中可以忽略其他任务,从而大大降低签署成本。
一个申报单会关联多个任务(即该申报任务及其上游的卡点任务),同理一个任务也会关联多个申报单,因为在一个DAG中,申报任务可能从任意节点起,因此二者是N:N的关系。

当两个申报单有部分任务列表重合时,如Task4关联了两个申报单,该任务的申报方、治理团队等数据是两个申报单的去重合集,而等级则取所有申报单中最高者。

03 -SLA推荐计算

利用任务及其上下游任务的历史运行信息,再结合推荐算法,得到该任务的推荐SLA,这个过程称之为SLA推荐计算。
在负责人签署SLA之前,SLA推荐算法会智能计算每个任务的推荐的SLA,并以此进一步通过算法自动签署部分待签署的任务,进一步降低签署成本。据平台数据统计,此功能可以自动签署近40%的SLA,是最核心的功能之一。
而对于剩余的待签署任务,会将算法推荐的SLA提供给任务负责人。任务负责人可以直接选择直接用这个SLA签署,也可以自行决定SLA。一般情况下,智能推荐的SLA已经能满足绝大多数的需求,通过推荐SLA,任务负责人更快的做出签署决定,再次降低了签署成本。

04 - 系统保障监控

当一个申报单完成签署之后,平台将对申报单中的任务进行保障服务。保障服务的核心就是通过监控SLA的状态变化及时播报消息通知,为相应负责人及时提供一手资料,以此降低运维成本。对于一个离线任务,评价其SLA主要是依据其完成时间和其所承诺的SLA来判断,SLA的状态分为四种,分别是:
  • 未到SLA:即当前时间,任务未产出,且还未到SLA时间(继续监控);
  • 已达成:即任务已完成,且完成时间在所承诺的SLA之前(发送就绪通知);
  • 已延迟:即任务未完成,且当前时间已在所承诺的SLA之后(发送延迟通知);
  • 已延迟(产出):即任务已完成,但完成时间在所承诺的SLA之后(发送延迟产出通知);
    • 从下图可以看到在任务达成、未达成两种情况下,随着时间的推移,其SLA状态的变化。

SLA的实时状态是数据业务方所需要的重要信息,因此平台会所有任务的SLA进行监控,并在SLA状态变化时实时对相关人员发送通知,相关人员根据收到的通知知晓SLA的具体情况,并能做出应对措施。

在下篇中,重点介绍数据SLA如何进行复盘管理以及平台架构,敬请期待。

开发套件团队正在招人,点击阅读原文了解

产品介绍

火山引擎大数据研发治理套件DataLeap

一站式数据中台套件,帮助用户快速完成数据集成、开发、运维、治理、资产、安全等全套数据中台建设,帮助数据团队有效的降低工作成本和数据维护成本、挖掘数据价值、为企业决策提供数据支撑。后台回复数字“2”了解产品

- End -


扫码进入官方交流群

群内定期进行干货分享

技术交流、福利放送


字节跳动数据平台

【声明】内容源于网络
0
0
字节跳动数据平台
字节跳动数据平台团队,赋能字节跳动各业务线,降低数据应用的门槛为始,以建立数据驱动的智能化企业,赋能各行业的数字化转型,创造更大的社会价值为终。对内支持字节绝大多数业务线,对外发布了火山引擎品牌下的数据智能产品,服务行业企业客户。
内容 217
粉丝 0
字节跳动数据平台 字节跳动数据平台团队,赋能字节跳动各业务线,降低数据应用的门槛为始,以建立数据驱动的智能化企业,赋能各行业的数字化转型,创造更大的社会价值为终。对内支持字节绝大多数业务线,对外发布了火山引擎品牌下的数据智能产品,服务行业企业客户。
总阅读12
粉丝0
内容217