DataOps的概念自首次被提出至今已有8年,并在2018年被Gartner纳入数据管理技术成熟度曲线。从实施上看,当下DataOps仍处在发展初期,鲜少企业或团队能据此真正沉淀一套方法论或技术产品的体系。不过,随着越来越多的企业开启DataOps实践,相信令人“雾里看花”的DataOps方法体系也会逐渐明朗起来。
7月27日晚8点,本月「UGeek大咖说」DataOps专场,我们邀请到趣丸科技资深架构师林嘉俊做客优维直播间,带来了《趣丸科技DataOps的演进与实践》的主题分享,深度为大家解析了趣丸科技DataOps探索之路上的难点、挑战以及企业级的解决方案。
下面就跟着鹿小U一起来回顾本期大咖说的精彩内容!
「直播回顾」
1.什么是DataOps?
开始之前,我们先来了解一下DataOps的基本概念。
DataOps是一种面向数据管理和数据应用的方法论,旨在提高数据团队的效率、协作和交付速度。它结合了DevOps的原则和最佳实践,并将其应用于数据管理和分析领域。传统上,数据团队在处理数据时面临许多挑战,包括数据集成困难、数据质量问题、缺乏协作和沟通等。而DataOps通过自动化、标准化和协作来解决数据团队面临的困难,以实现更快、更可靠的数据交付,从而更高效地提供价值的洞察和决策支持。
如何实现数据高效、高质量的交付?在落地DataOps的过程中,做好四个方面:
- 自动化:通过自动化工具和流程来减少手动操作,提高数据处理的效率和一致性。
- 协作:促进数据团队内部和跨部门间的合作与沟通以确保数据管道的顺畅运行。
- 迭代:采用敏捷开发的方法,将数据处理和分析过程划分为更小的迭代周期,快速迭代和交付数据产品。
- 监控和反馈:建立监控机制,及时发现和解决数据质量问题,并从用户反馈中不断改进数据产品。
做好以上自动化、协作、迭代、监控和反馈四个关键面,就能实现高效、高质量交付的最终目标。
2.关于趣丸科技
趣丸科技利用多年聚焦兴趣社交领域的深厚积累,积极瞄准全球数据基础前沿领域和关键核心技术的研发和创新。趣丸科技的大数据体系历经将近四年的迭代发展,数据涵盖国内外十几个业务APP、财务数据、运营数据及第三方服务厂商数据,目前已经达到PB级的数据规模。通过典型场景的不断打磨,融合数据分析、产品运营、数据研发多方的需求,逐步形成包含离线数仓、推荐算法、模糊归因、精准归因、实时数仓、数据分析等大数据服务和AI服务的大数据平台。
3.趣丸科技大数据平台架构
上图从底部往上看,趣丸科技大数据团队自研的QDOS大数据操作系统集成了主流大数据存储组件、计算组件,提供离线计算、实时计算、图计算、离线分析和实时分析等能力。
平台间数据集成工具将数据开发工具进行整合,形成集数据开发和治理于一体的数据门户。在数据集成上,趣丸科技制定了数据埋点和数据接入规范,整合埋点管理平台,数据交换平台等工具建设一体化的数据接入标准。在数据开发上,趣丸科技整合了数据开发、探索治理等工具,形成一站式数据开发平台,构建端到端全流程研发体系。而大数据平台线上层应用提供数据分析和数据可视化服务,集成了数据可视化工具和数据分析工具,实现数据出口的一致性,在保护数据安全的同时,帮助用户更加高效的进行数据分析。
4.趣丸科技DataOps面临的挑战
众所周知,数据驱动型组织在激烈的竞争和变化加速的外部环境下,往往不得不选择加快业务节奏来增强组织适应变化的能力,这就要求数据的供给必须跟得上,必须不断加快业务需求,以确保数据持续高效、高质量交付。然而,这往往会面临诸多挑战。趣丸科技在DataOps的实践过程中,主要面临着以下问题:
- 低效低质的埋点数据:埋点需求零散、沟通效率低下、数据清洗困难。
- 风险难测的数据变更:数据依赖复杂、数据资产重复、运维成本上升。
- 不断扩大的合规风险:缺乏数据合规性检查和管控。
- 割裂的数据研发体验:开发工具繁杂、频繁切换平台、使用流程复杂。
- 难以推动的链路协作:跨部门数据变更难协同。
以上存在的问题,归根结底DataOps最终要解决的一个问题就是如何持续高效的交付高质量数据。
其一是低效低质的埋点数据。在跨部门、跨团队协作和埋点数据接入时,存在埋点需求的零散、沟通效率低下等问题,不同业务团队上报的埋点数据格式混乱,同时存在数据漏报、重复上报等问题,导致数据清洗困难。埋点数据作为数据源头,其接入效率和数据质量直接影响整个数据链路处理过程的效率,从而最终影响数据交付的效率。
其二是割裂的数据研发体验。随着业务用户的不断深入,趣丸科技大数据团队研发了种类繁多的数据技术组件,以应对日益复杂的数据计算和存储需求。完成一个数据需求的交付,往往需要通过多个数据计算组件的相互协作,这就需要用户在不同的工具之间来回切换,手动串联来完成最终的交付,这不但大幅拖慢了数据研发效率,同时也极易犯错,影响需求交付的质量。
其三是风险难测的数据变更。复杂的数据依赖,让每一次变更的风险评估都变得异常的困难,尤其是关键数据资产的变更往往可能影响大量的下游,这就导致数据维护者不得不复制出一条新的链路出来,满足新的需求,以减少数据变更的风险。但是这种行为也造成了大量相似资产的出现,进而导致运维成本的上升,极易引发各类数据治理的问题。
其四是难以推动的链路协作。数据链路在日积月累之下不断增长,同一条数据链路往往聚集了大量跨部门的数据生产者,这些数据生产者往往有着不同的工作目标。比如说,像数据分析师团队有数据分析的任务,数据开发研发团队有研发的工作目标。在上游数据有变更需求时,往往各团队之间难以协同,如各团队经常会在是否同意变更和变更时间的节点上有各自的意见,这就导致上游数据变更往往难以线下执行。
其五是不断扩大的合规风险。数据使用的合规性有较强的一个背景知识门槛,在企业内不是每个数据生产者都对数据安全和隐私保护法律了如指掌。而由于缺乏数据上线前的合规性检查和管控业务,往往不合规的使用了数据而不自知,导致了合规风险隐患越来越多,而随着数据依赖的不断加深,这些风险的治理也变得越来越困难。
5.DataOps1.0,高效接入高质量的埋点数据
面对诸多困难和挑战,趣丸科技将DataOps1.0的最终目标确定为高效接入高质量的埋点数据。趣丸科技把所有的重心放在解决第一个大问题,即前面提到的埋点数据的接入效率和数据质量将决定数据交付的效率,最终影响数据价值、洞察和决策的支持。为此,趣丸科技制定了一系列的埋点规划和接入规划,从数据源头开始进行数据标准化建设。同时,为了更好的管理埋点需求和降低沟通成本,趣丸科技研发了数据次啊及平台,通过功能引导和协同流程规范化数据接入开发过程,实现透明化交付。
上图是趣丸数据接入功能架构。从下往上看,在工具层通过统一的SDK接入提供完整的埋点生态,同时支持结构化数据,非结构化文本数据以及Kafka数据和第三方开发数据。
在管控层,通过自研的类埋点需求版本管理和协同开发流程,实现需求开发、测试验收的透明化交付流程及CI/CD自动化发布流水线。同时,为了保证数据质量,趣丸科技实现了实时数据采集、监控,提供数据及时性、完整性分析,统计分析客户端debug和自助spl查询等功能,简化数据核验操作。趣丸科技还制定了数据类型,规范约束上报数据的数据格式和数据类型,接入流程,规范划分各方边界,解决上报过程当中跨部门协作的沟通障碍,杜绝无效沟通。同时,趣丸科技还制定了数据上报规范引导应用开发人员快速完成埋点开发。
在上层,趣丸科技通过应用管理来统一管理接入应用的API事件属性及其他的配置信息,方便随时进行查阅和调整。提供数据调试和埋点统计功能,简化应用方实时调试和核验上报数据,同时,还提供上报策略配置功能,实现动态调整,上报周期域名,延迟时间和交换规则。
6.DataOps1.0数据类型规范
在数据类型规范当中,趣丸科技通过事件模型来描述用户行为的标准,并提供了预制事件、预制属性、自定义事件、自定义属性等分类来规范事件类型。通过事件命名,规范属性命名,规范统一数据类型和保留日进行约束,上报数据的格式和类型,从而减少上报数据的章数据率,进而提高数据上报的质量。
7.DataOps1.0接入流程规范
在接入流程规范当中,趣丸科技定义了埋点需求设计、开发、测试、验收的全流程,明确业务产品分析师研发,测试等参与方的职责和各阶段的产出,划分各方边界解决上报过程当中跨部门协作的沟通障碍,杜绝无效沟通。整个数据接入的过程包含以下阶段:
- 一,业务团队提出业务需求。
- 二,数据分析团队根据业务需求提炼和整理埋点需求,并结合埋点规范完成埋点设计。
- 三,经业务研发团队、数据分析团队、数据平台团队三方共同进行需求配上,在这个过程当中,业务研发团队需要关注埋点需求,数据上报是否可以按时实现?数据分析系统关注埋点是否可以满足业务需求,上报的数据是否符合规范。经三方评审通过之后由业务研发团队进行埋点的开发和测试,最终交付给数据分析师团队对上报的数据进行验收,验收通过后发布线上。
趣丸科技也建设了采集平台,采用late的版本管理模式,对需求埋点进行版本管理,将数据接入流程的各个环节采用状态机的方式进行流转,从而提高跨部门、多团队协作的效率。通过事件模型来描述用户行为的标准,提供预置事件属性、自定义事件属性,简化事件模型的创建过程。在交互上制定了事件及属性命名,规范限制数据类型和保留日,从而实现数据类型的标准化,保障商报数据的质量。
对埋点需求的管理,支持埋点需求的编排,提交回退版本切换和发布等操作,使需求变更有迹可循,减少跨部门协作的拉扯,提高协作效率,进而提高数据接入的效率。
8.DataOps1.0采集平台-测试验收
采集平台也为数据分析团队提供了实时客户端调试和资助收口分收口查询功能,方便数据分析师对上调数据进行测试和验收。
方式一:实时数据Debug,生产测试报告
客户端Debug功能允许通过手机扫码的方式接入,通过手机操作客户端APP观察客户端上报的情况,从而确认数据上报的及时性和完整性。
方式二:自助SQL查询
自助SQL查询允许对已接入的数据和用户进行实时查询,使数据分析师能够快速的进行探索分析,从而加快提升价值的洞察和决策的支持。同时,为了提升数据接入效率,趣丸科技统一埋点SDK打造完整的埋点生态,让业务开发只需要关注埋点本身,降低数据接入的学习成本,进而提高埋点开发和测试的效率。
9.DataOps1.0统一埋点SDK
趣丸科技针对ios端、安卓端、web端和服务端提供配套的SDK,业务开发只需要接入SDK就可以调用SDK提供的接口方法,即可完成埋点开发。同时,多个业务使用同一套埋点标准,使SDK的可复用性强。一次接入,多业务受用,不产生额外的学习成本。
此外,SDK自动采集预置属性业务开发,无需自行上报指标口径,统一提高数据质量的同时,数据核对也变得简单高效。趣丸科技在工具层面上提供了实时的采集监控,及时性分析和完整性分析来保障数据的质量,并提供可视化的数据质量概览。
DataOps1.0数据质量保证
在数据流转的过程当中,通过技术规约来保障数据的及时性和完整性,具体的做法如下:
- 第一步,创建一个分布式环境下生成埋点数据唯一ID,来解决重复上报数据的问题。
- 第二步,使用容器化技术,将数据流转链路的各服务进行云原生改造和部署,实现负载能力和横向扩展。
- 第三步,基于k8s探针技术实现异常服务数据的自动恢复服务。
- 第四步,容器化服务网格来确保数据的持续性,同时根据应用分流到不同的网。
- 第五步,采用数据流分层设计,在网光层间,数据按用户分流汇入到kafka,并根据实效性要求交给不同的ET完成数据采集与转换操作,最终完成数据的落地。
- 第六步,基于埋点数据的唯一性,ET服务通过检查点和数据比对实现exactly once。
10.高效接入高质量埋点数据解决方案
- 埋点需求零散:采用类GIT的需求管理模式,提供埋点需求的多版本管理,使需求变更有迹可循。
- 沟通效率低下:制定接入流程规范,划分各方边界,解决跨部门协作的沟通障碍,杜绝无效沟通
- 数据验收复杂:提供实时客户端调试和自助SQL查询工具,简化数据验收工作。
- 数据格式混乱:制定了数据类型规范,统一数据类型和格式,减少上报数据的脏数据率。
- 埋点开发抵效:统一埋点SDK,打造完美的埋点生态,降低数据接入的学习成本。
- 数据重报漏报:技术规约来保障数据的及时性和完整性。
11.DataOps1.0成效
在DataOps1.0阶段,主要成效有四个方面:
- 第一个是数据的标准化。完成数据标准化建设,解决数据脏、乱、差等问题,统一数据上报及落地标准,降低数据清洗与数据处理的难度。
- 第二个是协作沟通改善。建立接入流程规范,通过需求版本管理、协同开发流程、标准发布流水线等来解决跨部门协作的沟通障碍,杜绝无效沟通。
- 第三个是加快开发时间。打造完整的埋点生态,提供统一埋点SDK供业务方使用,让业务开发只需要关注埋点本身,降低数据接入的学习成本,进而提高埋点开发和测试的效率。
- 第四个是数据质量提升。对埋点数据流的底层架构进行优化,实现埋点上报数据exactly once,解决埋点数据重复上报、漏报等问题,进而提高数据质量。
12.DataOps2.0,高效交付高质量数据
下面进入趣丸科技2.0阶段,为了适用业务节奏,趣丸科技将DataOps2.0的重心放在数据开发效率的提升上。趣丸科技整合了数据发开、数据探索、数据治理等工具,形成流一体的一站式数据开发平台,构建端到端全流程研发闭环体系,统一数据开发入口,简化数据开发流程,打通子系统模块间的交互,从而提升开发效率,最终实现高效交付高质量数据的目标。
上图是趣丸科技DataOps2.0大数据体系的基础架构,我们从上往下看:
首先趣丸科技DataOps2.0将敏捷研发、持续集成、持续部署等原则应用于数据开发和管理的过程中,进而实现更叫高效的交付。
具体的做法,首先趣丸科技构建了一站式数据研发平台。DataOps的落地的首要关键就是将数据研发、测试、发布和运维等流程无缝的串联起来,让不同的角色可以在同一个产品当中进行高效的协同,减少数据研发过程当中各个环节的摩擦。从而实现敏捷的数据交付。
关于数据变更,高频的交付高质量的数据,持续集成和持续部署是核心的关键,系统应该具备多版本的控制能力,支持基于变更的链路,集成测试和仿真测试,并通过变更前后的链路数据比对来发现数据变更对下游的影响。进而防止关键变更风险被漏过和被主观的夸大。
而CI/CD是可以极大的去解偶数据生产者和下游消费者的协同依赖,进而让数据变更可被最终的执行,中间这一块是嵌入式的数据管治理管控,系统需要将治理管控策略嵌入到数据研发的各个环节来确保数据质量,数据安全和合规性等策略在数据发布前就受到管控,而不应在事后通过治理来维持数据架构的健康,那具体的做法就是在数据研发过程当中所用到的所有的工具都统一对接数据治理平台,像治理平台主动上报数元数据,这也就是所谓的主动元数据的做法。事后治理往往会带来数据量级的成本上升,且治理需求也会与高速变化的业务需求产生冲突,以至于治理工作难以执行,最终陷入风险越积越多,治理越来越难的恶性循环当中。
最后是数据质量的可观测性。在数据敏捷交付引发数据变更频率激增,要控制数据不可用风险和停机时间,那数据的可观测性就变得异常的重要。这一方面要求系统能够实现端到端的数据质变监控,比如说异常的波动检测任务的超时预测,数据量的异常告警,原端变更、检测和亮度变更,同时还要求系统具备基于机器学习的快速检测数据停机,并给出应对建议的能力。
以上是DataOps2.0大数据体系。那下图是趣丸科技一站式数据开发平台的整体的功能架构。
在基础能力上,趣丸网科技打造了统一的调度中心,由统一调度中心来负责平台数据开发任务的调度。该平台是支持当日100万级离线任务和实施任务的调度。统一的告警中心来负责平台数据开发任务的告警,提供了飞书,邮件,电话,短信等告警方式,支持监控告警策略的定制和触发。提供了统一的权限中心负责平台功能的权限和数据权限的统一管理,提供权限的申请和审批流程。通过统一的运维中心来负责整个大数据集群的管理,云服务器的管理、容器云的管理、数据库管理,以及提供可视化的一些监控以及在线动态扩容等服务,来支撑整个大数据集群。所有服务的运转,通过提供统一的元数据中心来负责管理集团内部各个业务系统、数据仓库原数据,提供数据血源的探查数据质量的监控等服务。通过用户中心来统一管理集团内部人员及外包人员的基础信息,提供sso的单点登录服务。平台的核心能力包括牛皮一体的数据开发能力,开发能力依赖的是统一调度中心及告警中心等基础能力,提供数据开发服务,提供统一的任务运维能力,任务运维能力依托于统一的元数据中心,提供数据血源和数据质量监控服务,提供任务运维在借助告警中心服务发送异常任务的告警消息。
回顾趣丸科技在DataOps的实践过程当中,主要遇到的问题有埋点数据的接入低效,数据研发体验的割裂,数据变更的风险难测,链路协作的难以推进,合规风险的不断扩大等问题。那在DataOps1.0当中,趣丸的主要目标是实现高效接入高质量的埋点数据,再进而去解决埋点数据接入低效的问题。而在DataOps2.0当中,趣丸科技通过研发提效来解决剩余的世界室类问题,进而实现高效交付高质量数据的最终目标。构建一站式数据开发平台,通过整合数据开发、数据探索、数据治理等工具,构建端到端的全流程研发闭环体系,进而提供一站式的服务。通过创联数据研发、测试、发布与运维等各个环节,实现敏捷的数据交付,进而去解决研发体验的割裂感。第二个是将DataOps的持续集成、持续部署的原则应用到数据变更当中,打造多版本控制的元数据管理系统,解偶数据生产者和下游消费者依赖协同依赖,进而让数据变更可被最终的执行。
其三是支持基于变更的亮度集成测试和仿真测试,并通过变更前后的数据链路的数据对比来发现数据变更对下游的影响,进而防止关键变更风险被漏过或被主观的夸大,从而推进整个数据链路的协作。
一站式的子系统通过对接数据治理平台主动上报原数据,这就使治理管控策略嵌入到数据研发的每个环节,从而确保数据质量,数据安全和合规性等策略,在数据发布前就受到管控,而不是事后的治理来维持数据架构的健康。
以上就是趣丸科技高效交付高质量数据的整体的解决方案。DataOps2.0的整体成效:
- 提升服务能力:数据开发门户整合了数据开发、数据探索、数据治理工具集,一站式覆盖数据采集、集成、探索、开发、治理、调用的数据处理流程,数据从接入到服务一站式完成。
- 加快生产效率:子系统间通过信号量机制进行通讯,保证子任务调度的时序性,使得数据生产更为及时,数据准确性更加可靠。
- 自主探索服务:统一计算平台支撑支持多种存储计算引擎,为用户提供便捷的自主数据探索服务。
13.Q&A
Q1:数据安全以及合规性如何实现?
林嘉俊: 前面有提到一个嵌入式的治理管控。嵌入式治理管控的概念是这样的,在数据的开发过程当中,往往会用到很多的工具,会借助很多就是类似于像数据集成,数据开发的工具,然后在其他的一些特殊的计算,我们会用到特殊的工具或者是平台。在需要使用到这些工具的时候,我们可以将这些工具与数据治理平台,有些系统叫做元数据管控平台,进行一个对接,将我们在数据生产过程当中产生的一些元数据,全部打包推送到元数据管控平台或私交治理平台进行统一的管控。然后在元数据那边得到一个数据的管控之后,所有的数据的申请数据的访问,都需要经过这个管控平台进行统一的授权和许可之后才能进行往下的数据访问和数据的服务开发。基于这样的整体流程之后,就可以把本应在事后的治理提到事前来,进而在数据发布前将这个数据进行管控和治理,从而使我们的数据安全得到保障。
Q2:数据如何实现多租户访问?
林嘉俊:上面提到了数据变更的CI/CD,重点来持续集成和持续部署。这要求我们的系统是具备多版本的控制能力的,也就是说,多租户的访问,它可能访问到的数据版本是不一样的,通过数据版本的隔离来实现面向多租户的访问。同时,基于多租户体系的话,我们会将数据在项目管理层级进行资源隔离层级的分割,然后不同的用户进入到不同的项目,就有具备不同的数据权限,从而实现整个多租户的访问。
Q3:数据脱敏要如何实现?
林嘉俊:在整个数据服务的过程当中,是会将所有的服务进行打包,再提供给上层进行访问。在数据服务的过程当中,我们会做一些数据脱敏的操作,因为数据的入口是统一的,数据的出口也是统一的,所以你的数据脱敏全部都在出口那一边做一层隔离处理的机制,就能实现统一的处理了。