当前位置: 首页 > 科技观察

DataOps是现代数据堆栈的未来吗?_1

时间:2023-03-12 13:55:46 科技观察

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