- 云原生数据中台:架构、方法论与实践
- 彭锋 宋文欣 孙浩峰
- 2923字
- 2022-08-23 15:15:23
4.4 DataOps
大部分企业的数据平台建设已经进行到第一阶段或第二阶段,而要顺利过渡到第三阶段,则离不开一个关键方法论——DataOps(数据运维)的帮助。
DataOps与DevOps十分形似,也有着与DevOps类似的软件开发角色,它是数据工程师简化数据使用、实现以数据驱动企业的方法,也是企业顺利实现第三阶段的关键。因此,本节将介绍DataOps的概念,解释为什么它对于企业从数据中获取真正价值、实现数字化运营以及建设数据中台都非常重要。
4.4.1 什么是DataOps
维基百科对DataOps的定义是:一种面向流程的自动化方法,由分析和数据团队使用,旨在提高数据分析的质量并缩短数据分析的周期。DataOps的这一定义会随着时间的推移而变化,但其关键目标非常明确:提高数据分析的质量并缩短数据分析的周期。
在2018年Gartner发布的《数据管理技术成熟度曲线》报告中,DataOps的概念被首次提出(图4-6)。该报告指出,DataOps虽然可以降低数据分析的门槛,但并不会使数据分析变成一项简单的工作。与DevOps的落地一样,实施成功的数据项目也需要做大量的工作,例如深入了解数据和业务的关系、树立良好的数据使用规范和培养数据驱动的公司文化。当然,DataOps将极大提高人们使用数据的效率并降低使用数据的门槛,公司可以更快、更早、更好地使用数据,且成本和风险更低。
图4-6 Gartner对DataOps的定位
4.4.2 DataOps解决的问题
大数据的大多数应用可以分为AI(人工智能)或BI(商业智能)。此处的AI是指广义的人工智能,包括机器学习、数据挖掘以及其他从数据中获取以前未知知识的技术。BI则更多地使用统计方法将大量数据汇总成更简单的报告,方便人们理解。简而言之,AI使用各种数据算法来计算新的东西,BI则是统计人们可以理解的数字。
编写AI或BI程序并不难,你可以基于TensorFlow在几个小时内写一个人脸识别程序,或者使用MATLAB绘制一些数据可视化图形,甚至用Excel也不难实现AI或BI程序。问题在于,要实际使用生产结果来支持面向用户的产品或根据这些神奇的数字来决定公司的命运,你需要做的就不只是手动工作了。
根据Dimensional Research在2017年做的一项调查,对于想要实施大数据应用的公司来说,图4-7中列出的问题最为困难。
图4-7 大数据实施主要困难
在“Hidden Technical Debt in Machine Learning Systems”这篇论文中,Google的数据分析师研究发现,对于大多数机器学习项目,只有5%的时间花在编写ML代码上,另外95%的时间用于设置运行ML代码所需的基础设施(见图4-8)。
图4-8 Google关于机器学习中隐藏的技术债的研究
在这两项研究中,我们可以很容易地看到许多艰苦的工作实际上并不是在编写代码。整个基础设施的准备工作以及高效运行生产级别的代码是非常费时费力的,而且经常伴随着各种风险。在Google的研究中,他们引用了来自Twitter大数据团队的Jimmy Lin和Dmitry Ryaboy的话:“我们的大部分工作可以被描述为‘数据管道工’。”实际上,DataOps的目的就是使管道工的工作更简单和高效。
4.4.3 DataOps的目标功能
DataOps旨在缩短整个数据分析的周期。它的主要使用对象是数据应用开发人员,包括数据工程师和数据科学家。因此,从搭建基础架构到使用数据应用的结果,通常需要实现以下功能。
·部署:包括基础架构和应用程序。无论底层硬件基础设施如何,配置新系统环境都应该快速而简单。部署新应用程序应该花费几秒而不是几小时或几天时间。
·运维:系统和应用程序的可扩展性、可用性、监控、恢复和可靠性。数据应用开发人员不必担心运维,可以专注于业务逻辑。
·治理:数据的安全性、质量和完整性,包括审计和访问控制。所有数据都在一个支持多租户的安全环境中以连贯和受控的方式进行管理。
·可用:用户应该能够选择他们想要用于数据开发和分析的工具,随时拿到他们可用的数据,并根据需要轻松开发和运行数据分析应用。应将对不同分析、ML、AI框架的支持整合到系统中。
·生产:通过调度和数据监控,可以轻松地将分析程序转换为生产应用,构建从数据抽取到数据分析的生产级数据流水线,并且数据应该易于使用并由系统管理。
简而言之,DataOpsi遵循类似于DevOps的方法:从编写代码到生产部署的路径(包括调度和监控)应由同一个人完成,并遵循系统管理的标准。与提供许多标准CI、部署、监控工具以实现快速交付的DevOps类似,通过标准化大量大数据组件,新手可以快速建立生产级的大数据应用并充分利用数据的价值。
4.4.4 DataOps的主要技术
DataOps的主要方法论仍处于快速发展阶段。像Facebook和Twitter这样的公司通常会有专门的数据平台团队(Data Platform Team)处理数据运营并实现数据项目。但是,它们的实现方式大多与公司现有的Ops基础设施集成,因而不适用于其他公司。不过我们可以从它们的成功中学习经验,并建立一个可以由每家公司轻松实施的通用大数据平台。
要构建DataOps所需的通用平台,一般需要以下技术。
·云架构:必须使用基于云的基础架构来支持资源管理、可扩展性和运营效率。
·容器:容器在DevOps的实现中至关重要,在资源隔离和提供一致开发、测试、运维环境中的作用也至关重要。
·实时和流处理:目前来看,实时和流处理在数据驱动平台中变得越来越重要,它们应该是现代数据平台中的“一等公民”。
·多分析引擎:MapReduce是传统的分布式处理框架,但Spark和TensorFlow等框架日常使用越来越广泛,应该进行集成。
·集成的应用程序和数据管理:应用程序和数据管理(包括生命周期管理、调度、监控、日志记录支持)对于生产数据平台至关重要。DevOps的常规实践可应用于应用程序管理,但是数据管理及应用程序与数据之间的交互需要很多额外的工作。
·多租户和安全性:数据安全性可以说是数据项目中最重要的问题,如果数据无法得到保护,数据使用也就无从谈起。该平台应为每个人提供一个安全的环境,使每个人都可以使用这些数据并对每个操作进行授权、验证和审核。
·DevOps工具:该平台应为数据科学家提供有效的工具,以分析数据并生成分析程序,为数据工程师提供大数据流水线的工具,并为其他人提供消费数据和结果的方法。
4.4.5 DataOps与数据中台
DataOps的核心任务是提高数据分析的质量并缩短数据分析的周期,是高效打造数据中台的必经之路,因此可以将DataOps作为数据中台建设必须参考的一个方法论。要建设一个高效的业务IT系统,采用DevOps并不是必要条件,但是绝大部分公司会采取DevOps的方法论和技术体系,因为这是经过实践检验的高效和普适的方式。
与DevOps一样,DataOps的使用与发展也是一个需要正确工具和正确思维加持的持续过程。DataOps的目标是以正确的方式更容易地实现大数据项目,以达到用更少的工作量从数据中获得最大的价值的目的。
在过去几年中,随着云计算和容器技术的成熟,大数据操作的标准化成为可能。加之数据驱动的企业文化被广泛接受,DataOps终于准备好进入大家的视野。我们相信这一运动将降低实施大数据项目的门槛,使每个企业和机构都能够更容易地获取数据的最大价值。
可以看到,DataOps与数据中台需要解决的问题其实是类似的,都希望能够更快、更好地实现数据价值,支持数字化运营,但是二者强调的重点不同:
·数据中台强调的是数据的统一管理和避免重复开发,是数据能力的抽象、共享和复用;
·DataOps强调的是数据应用的开发和运维效率,就像DevOps解放了开发人员的生产力一样,DataOps希望通过提供一整套工具和方法论,来让数据应用的开发和管理更加高效。
不过,虽然如此,但二者都是解决现有大数据平台问题的必经之路。数据中台强调的是战略层次的布局,必须有一个中台来承担所有数据能力的管理和使用;DataOps强调的是战术层面的优化,如何让各个开发和使用实际数据应用的人员更加高效。可以说数据中台描述了最终的目标,而DataOps提供了一条实现这个目标的最佳路径。