资源池化 多租户与数据库整合的解决方案
1152
2023-06-08
DataOps是现代数据栈的未来吗?
在DevOps席卷软件工程领域之前,一旦他们的应用程序启动并开始运行,应用程序便如黑盒一般,开发人员无从知晓。工程师往往等到客户或者相关使用者抱怨“网站访问缓慢”或者503页面过多时,才会发现系统何时发生了中断。
不幸的是,这导致相同的错误反复发生,因为开发人员缺乏对应用程序性能的洞察力,并且一旦出现故障,不知道从哪里开始调试他们的代码。
那解决方案呢?现在广泛采用的DevOps概念是一种新方法,它要求在软件部署和开发过程中开发人员 (Dev) 和运维团队 (Ops)之间进行协作和持续迭代。
到了2015年左右,Netflix、Uber 和 Airbnb等大型数据导向的公司已经采用持续集成/持续部署 (CI/CD) 原则,甚至构建开源工具来促进数据团队的成长,于是DataOps诞生了。事实上,如果不管数据工程师有没有意识到这一点,他都可能已经将DataOps流程和技术应用到堆栈中了。在过去的几年里, DataOps作为一个框架在各种规模的数据团队中越来越受欢迎,它支持快速部署数据流水线,同时仍然提供可靠的、值得信赖的、随时可用的数据。DataOps可以使任何企业受益,这就是为什么我们要整理一份指南,来帮助大家消除对有关方面的误解。
在本指南中,我们将解释下面几个问题。
什么是DataOps?
DataOps是一门融合数据工程和数据科学团队以满足企业在数据方面的需求的方法论,类似于DevOps帮助扩展软件工程的方式。与 DevOps将 CI/CD 应用于软件开发和运维的方式类似,DataOps需要一种类似于CI/CD、自动化优先的方法来构建和扩展数据产品。同时, DataOps使数据工程团队更容易为分析师和其他下游使用人员提供可靠的数据来驱动决策。
DataOps与DevOps
虽然DataOps与DevOps有许多相似之处,但两者之间也有重要区别。
其中关键区别是DevOps是一种将开发和运维团队聚集在一起,以提高软件开发和交付效率的方法,而DataOps专注于打破数据生产者和数据消费者之间的孤岛,使数据更加可靠和更有价值。
多年来,DevOps团队已成为大多数科技企业不可或缺的一部分,消除了软件开发人员和IT人员之间的隔阂,促进了软件无缝且可靠地发布到产品中。随着DevOps在企业中越来越受欢迎,支持它们的技术栈开始变得越来越复杂。为了保持系统整体处于健康状况,DevOps工程师利用可观察性来监控、跟踪和分类事件,以防止应用程序停机。
软件可观察性包括三个支柱。
日志:记录给定时间戳发生的事件,同时为发生的特定事件提供上下文。指标:用数字表示一段时间内测量的数据。跟踪:表示分布式环境中相互关联的事件。
总之,可观察性的三个支柱使DevOps团队能够预测未来的行为并信任他们的应用程序。
类似地,DataOps原则可帮助团队消除隔阂并更有效地工作,从而在整个企业内交付高质量的数据产品。随着公司开始从各种来源获取大量数据,DataOps专业人员还利用可观察性来减少停机时间。数据可观察性是企业充分了解其系统中数据健康状况的能力。它通过对在数天、数周甚至数月内未被检测到的事件进行监控和告警,从而降低数据停机时间的频率和影响(数据不完整、错误、丢失或其他不准确的时间段)。与软件可观察性一样,数据可观察性包括自己的一组支柱。
新鲜度:数据是最新的吗?最后一次更新是什么时候?分布:数据是否在可接受的范围内?是否符合预期的格式吗?卷:所有数据都到了吗?表中是否有重复或删除的数据?架构:架构是什么,它有变化吗?对架构的更改是主动进行的吗?沿袭:哪些上游和下游的相关性连接到给定的数据资产?谁依赖这些数据进行决策,这些数据在哪些表中?
DataOps框架
为了更快、更可靠地洞察数据, DataOps团队应用了一个持续的反馈循环,也称为DataOps生命周期。DataOps生命周期是从DevOps生命周期中汲取灵感,但考虑到数据不断变化的特性,它融合了不同的技术和流程。DataOps生命周期允许数据团队和业务团队协同工作,为企业提供更可靠的数据和分析。以下是实际的DataOps生命周期。
规划:与产品、工程和业务团队合作,为数据的质量和可用性设置KPI、SLA和SLI。开发:构建数据产品和机器学习模型,为数据应用程序提供生产力。集成:将代码和数据产品(或其中之一)集成到现有的技术和数据栈中(或其中之一),例如,将DBT模型与Airflow集成,以便DBT模块可以自动运行。测试:测试数据以确保其符合业务逻辑并满足基本操作阈值(例如数据的唯一性或无空值)。发布:将数据发布到测试环境中。部署:将数据合并到生产环境中。操作:将数据运行到应用程序中,例如为机器学习模型提供数据的Looker或Tableau仪表板和数据加载器。监控:持续监控数据中的任何异常并发出警报。
这个循环会不断重复。通过将DevOps的类似原则应用于数据流水线,数据团队可以更好地协作,从而一开始就识别、解决甚至防止数据质量问题的发生。
DataOps的五个最佳实践
与我们在软件开发领域的朋友类似,数据团队也开始效仿,将数据视为产品。
数据是企业决策过程的关键部分,将产品管理思维应用到如何构建、监控和测量数据产品,有助于确保这些决策能基于准确、可靠的信息。在过去几年与数百个数据团队交谈后,我们总结了五个关键的DataOps最佳实践,可以帮助您更好地适应这种“数据即产品”的方法。
1、尽早让有关人员在KPI上达成一致,并定期重新审视它们
既然企业将数据视为产品,那么内部有关人员就是企业的客户。因此,尽早与数据的关键有关人员保持一致,并就谁使用数据、他们如何使用数据以及用于什么目的达成一致是至关重要的。为关键数据集制订服务水平协议(SLA)也很重要。与有关人员就“什么样的数据质量标准才是对的”达成一致,有助于企业避免在哪些是KPI,哪些是无关紧要的指标,以及类似的问题反复讨论。
在和有关人员达成一致看法后,企业应该定期与他们核对以确保优先级仍然一致。Red Ventures的高级数据科学家Brandon Beidel每周与公司的每个业务团队会面,讨论团队在 SLA方面的进展。
“我总是用简单的商业术语来企业对话,并专注于谁、什么、何时、何地以及为什么”,布兰登告诉我们。“我特别想问一些关于数据新鲜度限制的问题,我发现这对业务有关人员特别重要。”
2、尽可能多的任务自动化
DataOps的主要关注点之一是数据工程自动化。数据团队可以将通常需要数小时才能完成的机械任务自动化,例如单元测试、硬编码获取管道和工作流编排。通过使用自动化解决方案,团队可以减少人为错误进入数据流水线的可能性并提高可靠性,同时帮助企业做出更好、更快的基于数据的决策。
3、拥抱“交付和迭代”文化
对于大多数数据驱动的企业而言,速度至关重要。而且,数据产品并不需要百分百完美才能增加价值。我的建议就是构建一个基本的MVP,对其进行测试,评估学习成果,并根据需要进行修改。我的第一手经验表明,通过在生产中使用实时数据进行测试和迭代,可以更快地构建成功的数据产品。团队可以与相关人员协作,监控、测试和分析模式,以解决任何问题并改善结果。如果经常这样做,将会有更少的错误并降低错误进入数据流水线的可能性。
4、引进自助服务工具
DataOps的一个重要好处是消除了数据在业务人员和数据工程师之间的隔阂。为了做到这一点,业务用户需要能够通过自助工具满足自己的数据需求。业务人员可以在需要时访问他们需要的数据,而不是让数据团队来满足业务用户的临时请求(这最终会减缓决策制定的速度)。Intuit的前工程副总裁Mammad Zadeh认为,自助服务工具在跨企业启用DataOps方面发挥至关重要的作用。“数据中心团队应确保数据的生产者和使用者都可以使用正确的自助式基础设施和工具,以便他们能够轻松完成工作,”Mammad告诉我们,“为他们配备正确的工具,让他们直接互动,不要设置任何障碍。”
5、优先考虑数据质量,然后才是扩展规模
在扩展的同时保持高数据质量并非易事。因此,从最重要的数据资产开始——没错,就是有关人员在做出重要决策时所依赖的信息。
如果数据资产中不准确的数据可能意味着时间、资源和收入的损失,请注意这些数据以及通过数据质量功能(如测试、监控和警报)支持这些决策的实施。然后,继续构建企业的能力以涵盖更多数据生命周期。(回到最佳实践第2条,请记住,大规模数据监控通常会涉及自动化。)
企业可以从DataOps中受益的四种方式
虽然DataOps的存在是为了消除数据孤岛并帮助数据团队协作,但团队在实施DataOps时可以实现其他四个好处。
1、更好的数据质量
公司可以在其流水线中应用DataOps以提高数据质量。这包括自动化日常任务,例如测试和引入端到端可观察性,并在数据栈的每一层(从获取到存储到转换到BI工具)进行监控和警报。这种自动化和可观察性的结合降低了人为错误的机会,并使数据团队能够快速主动地响应数据停机事件——通常是在有关人员意识到出现任何问题之前。有了这些DataOps实践,业务人员可以获得质量更高的数据,遇到更少的数据问题,并在整个企业内建立对基于数据的决策的信任。
2、更快乐、更高效的数据团队
平均来说,数据工程师和科学家至少花费30%的时间来解决数据质量问题,而DataOps的一个关键部分是创建一个自动化且可重复的流程,这反过来为数据工程师和数据科学家节省了时间。
将繁琐的工程任务(例如连续代码质量检查和异常检测)自动化可以改善工程流程,同时减少企业内部的技术债务。
DataOps让团队成员更快乐,他们可以将宝贵的时间集中在改进数据产品、构建新功能和优化数据流水线上,以加快企业数据的价值实现的速度。
3、更快地获得分析见解
DataOp可自动执行通常需要花费数小时才能完成的测试和异常检测等工程任务。因此, DataOps为数据团队带来了速度,促进了数据工程和数据科学团队之间更快的协作。更短的数据产品开发周期可以降低成本(就工程时间而言),并允许数据驱动的企业更快地实现其目标。这是可能的,因为多个团队可以在同一个项目上并肩工作以同时交付结果。
根据我的经验, DataOps促进不同团队之间的协作可以带来更准确的洞察和分析,从而改进的决策制定能力,并带来更高的利润。如果充分实现了DataOps,团队就可以实时访问数据并调整他们的决策,而不是等待数据可用或请求临时支持。
4、降低运营和法律风险
当企业努力通过民主化访问来增加数据的价值,道德、技术和法律方面的挑战也将不可避免地增加。通用数据保护条例 (GDPR) 和加州消费者隐私法案 (CCPA) 等政府法规已经改变了公司处理数据的方式,并让公司努力将数据直接交到更多团队这个过程变得更复杂。DataOps——特别是数据可观察性——可以通过提供更多的可见性和透明度来帮助解决这些问题,即用户对数据的操作、数据输入到哪些表以及谁可以访问上游或下游的数据更清楚。
在公司实施DataOps
关于DataOps的好消息是采用现代数据栈和其他最佳实践的公司可能已经将DataOps原则应用到他们的流水线中。例如,越来越多的公司正在招聘DataOps工程师来推动基于数据进行决策——
但这些职位描述,可能包括了已经由公司的数据工程师在处理的职责。DataOps工程师通常负责:
开发和维护可部署、测试和记录的自动化设计脚本、流程和程序库。与其他部门合作,将源系统与数据湖和数据仓库进行集成。创建并实施测试数据流水线的自动化。在影响下游有关人员之前主动识别和修复数据质量问题。通过引进自助服务工具或为业务人员执行培训计划,来提高整个企业的数据意识。熟悉数据转换、测试和数据可观察性平台,以提高数据可靠性。
即使其他团队成员目前正在兼管这些职能,拥有一个专门的角色负责来构建DataOps框架也能提高可靠性,并简化采用这些最佳实践的过程。无论团队成员担任什么职务,就像没有应用可观察性就无法拥有DevOps一样,没有数据可观察性就无法拥有DataOps。数据可观察性工具使用自动监控、警报和分类来识别和评估数据质量和可发现性问题。这会带来更健康的流水线、更高效的团队和更满意的客户。
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。