“DataOps”这个名字有一个积极的属性,它传达了这样一个信息,即数据分析可以实现通过DevOps而进行的软件开发。也就是说,当数据团队使用新的工具和方法时,DataOps可以在质量和周期时间上产生一个数量级的改进。DataOps实现这些收益的具体方式反映了数据团队(相对于使用DevOps的软件开发团队)的独特人员、流程和工具特征。这是我们对DataOps和DevOps之间明显的和细微差异的深入探讨。
DataOps 中测试的双重性
DataOps 中的测试在价值和创新管道中都有作用。在 价值管道中,测试监视流经数据工厂的数据值以捕获异常数据或标记超出统计规范的数据值。在创新管道中,在部署新分析之前进行测试验证。
在DataOps 中,测试针对数据或代码。在最近的一篇博客中,我们使用图 9 讨论了这个概念。流经价值管道的数据是可变的,并受制于统计过程控制和监控。测试特别针对不断变化的数据。另一方面,价值管道中的分析(仪)是固定的,只能使用正式的发布流程进行更改。在价值管道中,分析(仪)被固定和控制,目标是尽量减少任何可能影响数据工厂的服务中断。
在创新管道中,代码是可变的,数据是固定的。分析被修改和更新直到完成。一旦设置了沙箱,数据通常不会改变。在创新管道中,测试针对的是代码(分析),而不是数据。在将新代码提升(合并)到生产中之前,所有测试都必须通过。一个好的测试套件可以作为自动化形式的影响分析,在部署之前对任何和每个代码更改进行运行。
一些测试同时针对数据和代码。例如,确保数据库具有正确行数的测试有助于您的数据和代码协同工作。最终,数据测试和代码测试需要在一个集成管道中结合在一起,如图 5 所示。DataOps 使代码和数据测试能够协同工作,从而保持高品质。
图 9:在数据运维DataOps 中,分析(仪)质量是数据和代码测试的函数
DataOps 的复杂性 — 沙盒管理
当工程师加入软件开发团队时,他们的第一步就是创建一个“沙箱”。沙箱是一个隔离的开发环境,工程师可以在其中编写和测试新的应用程序功能,而不会影响正在并行开发其他功能的团队成员。软件开发中的沙箱创建通常很简单——工程师通常会从队友那里收到一堆脚本,并且可以在一两天内配置一个沙箱。这是使用DevOps 团队的典型心态。
从工具和数据的角度来看,数据分析中的沙箱通常更具挑战性。首先,与典型的软件开发团队相比,数据团队总体上倾向于使用更多的工具。数据工程、数据科学、商业智能BI、数据可视化和治理数以千计的工具、语言和供应商。如果没有大多数软件开发团队所特有的集中化,数据团队自然而然地会因分散在整个企业中的不同工具和数据岛而产生分歧。
图 10:“沙箱”是一个孤立的开发环境,数据专业人员可以在其中编写和测试新的分析(仪),而不会影响团队成员。
DataOps的复杂性——测试数据管理
为了创建用于分析的开发环境,您必须创建数据工厂的副本。这需要数据专业人员复制可能具有安全性、治理或许可限制的数据。复制整个数据集可能不切实际或成本高昂,因此需要一些思考和审慎措施来构建具有代表性的数据集。一旦采样或过滤了太多字节的数据集,就可能需要对其进行清理或编辑(删除敏感信息)。数据还需要基础设施,由于技术障碍或许可限制,这些基础设施可能不容易复制。
图 11:测试数据管理的概念是 DataOps 中的首要(或一级)问题。
测试数据管理的概念是DataOps 中的首要问题,而在大多数DevOps 环境中,它是事后的想法。为了加速分析(仪)开发,DataOps 必须使用所需的数据、软件、硬件和库自动创建开发环境,以便创新与敏捷迭代保持同步。
DataOps 以两种方式连接到组织机构
DevOps 致力于帮助开发和运营(信息技术)团队以集成方式协同工作。在DataOps 中,这个概念如图 12 所示。开发团队是分析师、科学家、工程师、架构师和其他创建数据仓库和分析的人员。
在数据分析中,运营团队支持和监控数据管道。这可以是 IT,但也包括客户——创建和使用分析(仪)的用户。DataOps 将这些团队聚集在一起,以便他们可以更紧密地合作。
图 12:数据运维DataOps 结合了数据分析开发和数据运营。
自由与中心化
DataOps 还将组织机构从另一个维度整合在一起。大量数据分析开发发生在企业的偏远角落,靠近业务部门,使用 Tableau、Alteryx 或 Excel 等自助服务工具。这些从事去中心化、分布式分析创建的本地团队在向用户提供创新方面发挥着至关重要的作用。给这些具备创造力的小组赋能可以保持企业的竞争力,但坦率地说,缺乏自上而下的控制会导致无法管理的混乱。
在一组人(例如 IT)的控制下集中分析开发,将给组织赋能,使组织能够标准化指标、控制数据质量、实施安全和治理并消除数据孤岛。问题是过于集中会扼杀创造力。
图 13:数据运维DataOps 将集中式和分布式开发结合在一起
DataOps的一项重要优势是它能够协调在数据分析的分散和集中开发之间往返穿梭--集权和自由之间的紧张关系。在DataOps 企业中,新的分析源自本地创新领域并进行改进。当一个想法被证明有用或值得更广泛地传播时,它会被提升到一个集中的开发团队,该团队可以更高效、更稳健地大规模实施它。
DataOps 将局部(本地化)开发和集中式开发结合在一起,使组织能够在保持本地化(局部)开发的同时获得集中化的效率——即创新之矛的尖端。DataOps 将企业整合到两个维度中,如图 14 所示——开发/运营以及分布式/集中式开发。
图 14:数据运维DataOps 将团队聚集在两个维度 - 开发/运营以及分布式/集中式开发。
DataOps 为组织中的核心团队带来了三个创新周期:集中的生产团队、集中的数据工程/分析/科学/治理开发团队,以及使用自助服务工具的团队及分布到离客户最近的业务线。图 15 显示了创新的连锁周期。图 15:DataOps 在生产、中央数据和自助服务团队之间带来三个创新循环。
图 15:DataOps 带来了生产、中央数据和自助服务团队之间的三个创新循环
企业示例——数据分析生命周期的复杂性
在高层次上检查了 DataOps 开发过程后,让我们看看企业环境中的开发生命周期。图 15 说明了从开始到生产的分析进程的复杂性。分析首先由个人创建和开发,然后合并到团队项目中。完成单元验收测试 (UAT) 后,分析(仪)进入生产。DataOps 的目标是在个人开发环境中创建分析(仪),并进入生产环境,接收用户的反馈,然后通过进一步的迭代不断改进。由于人员、工具、代码、版本、手工规程流程/自动化、硬件、操作系统/库和目标数据的差异,这可能具有挑战性。图 15 中的列显示了这四种环境中每一种的不同特征。
如果没有DataOps,在这四种完全不同的环境中将分析(仪)推向生产是挑战艰巨的。它需要手工操作和脚本的拼凑,而这些脚本本身就很难管理。人工过程容易出错,因此数据专业人员通过长时间工作来弥补,错误地依靠一厢情愿和英雄主义来取得成功。所有这些都会导致不必要的复杂性、混乱并且浪费了大量的时间和精力。图 15 中显示的生命周期进展缓慢,加上进入生产环境的严重错误,数据分析团队几乎没有时间进行创新。
数据分析(仪)开发生命周期的复杂性
DataOps的实施
DataOps简化了数据分析(仪)创建和操作的复杂性。它使数据分析(仪)开发与用户优先事项保持一致。它简化并自动化了分析(仪)开发生命周期——从沙箱的创建到部署。DataOps 控制和监控数据工厂,因此数据质量保持高水平,使数据团队专注于增加价值。
您可以通过实施这七个步骤开始使用DataOps。您还可以采用DataOps 平台,该平台将在您现有工具和基础架构的环境中支持DataOps 方法。
DataOps 平台可自动执行构成DataOps的步骤和流程:沙箱管理、编排、监控、测试、部署、数据工厂、仪表盘、敏捷性方法学等。DataOps平台专为数据专业人员构建,其目标是将他们所需的所有工具、步骤和流程简化为易于使用、可配置的端到端系统。这种高度自动化消除了大量手动工作,让团队腾出时间来创建新的创新分析(仪),从而最大限度地提高组织数据的价值。
(篇幅有限,仅展示部分内容)
扫描下方二维码,获取全文阅读
- FIN -
更多精彩推荐
DataOps:不仅仅是数据的DevOps | 收藏
一文读懂 | 数据中台如何为企业赋能?
对话智领云CTO宋文欣:读懂云原生时代的数据中台
“云原生数据中台”正在成为智领云的一个重要标签
为什么说数据管理的下一步是DataOps | 内附视频回放
👇获取全文内容,点击“阅读原文”