随着企业拥抱数字化转型,并将关键的基础设施和应用程序迁移到云端,作为关键组成部分的“数据云”已经开始成形。这些数据云建立在多云数据基础设施(如Databricks或Snowflake的数据平台)之上,使企业能够摆脱应用程序和存储竖井的束缚,在内部、私有、公共和混合云环境中共享数据。
伴随而来的数据量突飞猛进。大数据应用越来越多地从人工智能(AI)、机器学习(ML)和物联网(IoT)等各种技术中生成和吸收更多不同类型的数据,数据本身的性质正在从根本上改变数据集的体积和形状。
随着数据从约束中解放出来,数据生命周期的可见性变得模糊,传统的质量控制工具很快就会过时。
坏数据和好数据一样容易通过数据管道
对于典型的企业,数据监测和管理仍然由来自不同时代设计的工具来处理。这些工具原本被设计用来监视竖井式的静态数据,当然它们做得很好。然而,随着大数据、云计算和数据仓库/数据湖/数据管道等新技术开始进入主流,数据需求发生了变化。
传统的数据工具从未被设计用来对今天这种复杂的连续数据管道进行质量控制。这些管道将数据从一个应用程序移动到另一个应用程序,从云到云。然而,数据管道经常将数据直接输入到客户体验和商业决策软件中,这带来了巨大的风险。
“错误的机票价格”是一个很好的例子,可以说明糟糕的数据如何逃过人们的注意并破坏业务目标。错误的货币转换、人为输入错误,甚至是软件故障,都经常导致错误的票价,以至于一些旅游达人专门寻找这些“抄底”票价来“薅羊毛”。
错误的数据同样可能导致不正确的信用评分、发送到错误地址的货物、产生产品缺陷等等。市场研究公司Gartner发现:企业认为,糟糕的数据质量平均每年造成1500万美元的损失。
管道数据的安全检查员和清理人员在哪里?
当开发人员急于应对大规模维护和管理动态数据的挑战时,大多数人首先想到了他们用来构建现代软件应用程序的DevOps(开发运营)和CI/CD(持续集成/持续部署)方法。然而,要将这些实践移植到数据中,有一个关键的挑战:开发人员必须理解数据的弹性与应用程序和基础程序不同。
随着应用程序越来越多地采用来自云的数据湖、数据仓库和流数据源的数据管道,需要对这些数据源的质量进行持续监控,以防止出现中断。
我们必须问,谁负责在数据进入数据管道之前的数据检查,谁负责出现数据泄漏或错误数据时的混乱的数据管道清理。到目前为止,典型的业务处理管道问题和中断的方法是一种纯粹的反应性方法,在应用程序中断后修复。
为什么企业需要数据DevOps
今天典型的多云、数据驱动的企业希望用敏捷技术来扩展数据平台,特别注意的是将DevOps(开发运营)方法移植到数据业务中。
软件领域的DevOps之所以能够成功,是因为有一个强大的安全网络SRE(Site Reliability Engineering 站点可靠性工程)与之一起成熟起来。SRE的原则确保组织可以在部署后监控软件的行为,确保在实践中满足生产的应用,而不仅仅是理论。如果没有SRE,对于业务关键型应用程序和基础设施来说,依赖敏捷方法风险太大,而且容易出错。
数据业务同样需要类似方法保障,有人称之为DRE((Data Reliability Engineering 数据可靠性工程))。一些组织已经对他们的数据软件进行了开发/阶段测试,但标准的开发/阶段测试仅仅是对动态大数据的质量检查。数据具有无法通过传统测试实践进行管理的特性。对于初学者来说,测试数据比较困难,因为数据是动态的。在你的管道中流动的数据——通常是通过应用程序获取的实时信息生成——甚至在开发或管道部署时可能是不可用的。
如果只依赖于开发/阶段测试,那么大量的不良数据可能会流经数据管道,从而导致中断和错误,而质量控制工具直到出现问题后才能够发现问题。
数据DevOps和数据可靠性工程入门
对于已经接受敏捷和DevOps实践的组织来说,开发数据DevOps能力不应该是一个沉重的负担。关键在于根据当今庞大、不断变化、高容量、云计算数据的独特特点,打造新的角色和能力。
如果遵循下面的六个步骤来奠定适当的质量控制基础,企业组织将会很好地控制失控的数据。
1.接受数据DevOps并明确定义角色
与传统的静态数据(以及支持它的系统)相比,现代数据带来了不同的挑战,所以一定要清楚地将数据DevOps角色与密切相关的职位区分开来。例如,数据工程师不是质量控制专家,也不应该是。他们有不同的优先事项。数据分析师和其他软件工程师也是如此。
2.确定DRE将如何以及在何处匹配业务流程
DRE应该与DataOps(数据运营)/DevOps(开发运营)团队紧密合作,但该角色应该在数据团队中创建。为了确保持续的质量,DRE必须参与数据创建和管理过程中的所有关键步骤。
3.提供帮助DevOps团队成功的工具
数据DevOps应该有自己的一组工具、专业知识和最佳实践,其中一些来自相关领域(比如软件测试),其他的开发是为了应对移动中的高容量、高基数数据的独特挑战。
4.确定如何编写及维护质量检查和控制
许多数据质量程序失败的原因是,用于编写质量检查的遗留工具和自己开发的工具难以处理复杂性。这些工具本身很复杂,难以使用,最终成为搁置的软件。随着数据的发展,必须考虑更新和维护数据质量检查的过程,依靠直观的工具来轻松地完成工作。
5.开始映射过程
随着数据DevOps团队的发展,不要忘记规划流程。确保数据DevOps团队知道发生数据中断时应遵循的程序。DRE可能需要引入其他专家,如数据工程师、数据分析师甚至业务利益相关者,他们可以解释数据,并消除质量问题对合法变更的歧义。
6.为成功的补救措施描绘一幅清晰的画面
大数据补救是一个独特的挑战。对于动态数据,某些类型的补救是没有意义的。例如,如果正在纠正导致http请求失败或页面加载缓慢的问题,那么这些进程就会丢失。
现代数据驱动的应用程序需要数据DevOps来确保关键任务数据的可靠性
现代云计算、数据驱动的企业需要可靠、高质量的数据来满足其业务目标。然而,现代环境中数据的复杂性意味着,企业不仅需要DevOps用于IT和应用程序,还需要DevOps用于数据。数据DevOps是一门学科,需要方法对连续数据进行质量监控。
对于大多数企业来说,控制数据的下一步就是采取步骤,确保持续质量的任何步骤。将数据质量控制作为优先事项,拥抱数据DevOps,并开始规划如何将这些新功能与您现有的DevOps、数据和测试团队相适应,这样就有机会领先于竞争对手。