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

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

时间:2023-03-14 15:01:17 科技观察

在DevOps席卷软件工程世界之前,一旦他们的应用程序启动并运行,应用程序就像一个黑盒子,开发人员无从知晓。工程师往往等到客户或相关用户抱怨“网站访问速度慢”或503页面过多时,才发现系统何时中断。不幸的是,这会导致同样的错误反复出现,因为开发人员缺乏对应用程序性能的洞察力,并且不知道在出现故障时从哪里开始调试他们的代码。解决方案呢?现在广泛采用的DevOps概念是一种新方法,需要开发人员(Dev)和运营团队(Ops)在软件部署和开发过程中进行协作和不断迭代。到2015年左右,Netflix、Uber、Airbnb等面向数据的大公司都采用了持续集成/持续部署(CI/CD)原则,甚至构建了开源工具来促进数据团队的成长,DataOps诞生了.事实上,无论数据工程师是否意识到,他可能已经将DataOps流程和技术应用到堆栈中。在过去的几年里,DataOps作为一个框架在各种规模的数据团队中越来越受欢迎,它可以快速部署数据管道,同时仍然提供可靠、值得信赖、随时可用的数据。DataOps可以使任何企业受益,这就是为什么我们整理了一份指南来帮助消除对它的误解。在本指南中,我们将解释以下问题。什么是数据运营?DataOps是一种混合数据工程和数据科学团队以满足企业数据需求的方法,类似于DevOps帮助扩展软件工程的方式。与DevOps将CI/CD应用于软件开发和运营的方式类似,DataOps需要一种类似于CI/CD、自动化优先的方法来构建和扩展数据产品。同时,DataOps使数据工程团队更容易为分析师和其他下游用户提供可靠的数据来推动决策。DataOps与DevOps尽管DataOps和DevOps有许多相似之处,但两者之间也存在重要差异。关键区别在于,DevOps是一种将开发和运营团队聚集在一起以提高软件开发和交付效率的方法,而DataOps则侧重于打破数据生产者和数据消费者之间的孤岛,让数据更可靠、更有价值。多年来,DevOps团队已成为大多数技术企业不可或缺的一部分,弥合了软件开发人员和IT人员之间的鸿沟,促进了软件无缝、可靠地发布到生产环境中。随着DevOps在企业中越来越受欢迎,支持它们的技术栈也开始变得越来越复杂。为了控制系统的整体健康状况,DevOps工程师利用可观察性来监视、跟踪和分类事件,以防止应用程序停机。软件可观察性由三个支柱组成。日志记录:记录在给定时间戳发生的事件,同时为发生的特定事件提供上下文。指标:一段时间内测得的数据的数字表示。Trace:代表分布式环境中相互关联的事件。总而言之,可观察性的三大支柱使DevOps团队能够预测未来的行为并信任他们的应用程序。同样,DataOps原则可帮助团队打破孤岛并更有效地工作,以在整个企业范围内交付高质量的数据产品。随着公司开始从各种来源获取大量数据,DataOps专业人员也在使用可观察性来减少停机时间。数据可观察性是企业充分了解其系统中数据健康状况的能力。它通过监控数天、数周甚至数月未检测到的事件并发出警报,减少数据停机(数据不完整、错误、丢失或其他不准确的时间段)的频率和影响。与软件可观察性一样,数据可观察性包括其自身的一组支柱。新鲜度:数据是最新的吗?最后一次更新是什么时候?分布:数据是否在可接受的范围内?它是否符合预期的格式?Volume:数据都到齐了吗?表中是否有重复或删除的数据?架构:什么是架构,它会改变吗?对架构的更改是主动的吗?沿袭:哪些上游和下游依赖关系连接到给定的数据资产?谁依赖这些数据做出决策,这些数据在哪些表中?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.更快地获得分析见解DataOp可自动执行通常需要数小时才能完成的工程任务,例如测试和异常检测。因此,DataOps为数据团队带来了速度,促进了数据工程和数据科学团队之间更快的协作。更短的数据产品开发周期可降低成本(在工程时间方面)并允许数据驱动的企业更快地实现其目标。这是可能的,因为多个团队可以在同一个项目上并肩工作以同时交付结果。根据我的经验,DataOps促进不同团队之间的协作可以带来更准确的见解和分析,从而改进决策并提高利润。当DataOps完全实施后,团队可以实时访问数据并调整他们的决策,而不是等待数据可用或请求临时支持。4.降低运营和法律风险随着公司努力通过民主化访问来增加数据的价值,道德、技术和法律方面的挑战将不可避免地增加。通用数据保护条例(GDPR)和加州消费者隐私法案(CCPA)等政府法规改变了公司处理数据的方式,并使将数据直接交到更多团队手中的工作变得更加复杂。DataOps——特别是数据可观察性——可以通过提供更多的可见性和透明度来帮助解决这些问题,包括用户对数据的操作、数据输入到哪些表以及谁有权访问上游或下游的数据。在公司中实施DataOps关于DataOps的好消息是,采用现代数据堆栈和其他最佳实践的公司可能已经将DataOps原则应用到他们的管道中。例如,越来越多的公司正在招聘DataOps工程师来推动基于数据的决策制定——但这些职位描述可能包括公司数据工程师已经处理的职责。DataOps工程师通常负责:开发和维护可以部署、测试和记录的自动化设计脚本、流程和库。与其他部门合作,将源系统与数据湖和数据仓库集成。为测试数据管道创建和实施自动化。在影响下游利益相关者之前主动识别并修复数据质量问题。通过引入自助服务工具或实施业务人员培训计划,提高整个企业的数据意识。熟悉数据转换、测试和数据可观察性平台,以提高数据可靠性。即使其他团队成员目前负责这些功能,拥有一个专门负责构建DataOps框架的角色也可以提高可靠性并简化采用这些最佳实践的过程。无论团队成员的角色如何,就像没有应用程序可观察性就无法拥有DevOps一样,没有数据可观察性就无法拥有DataOps。数据可观察性工具使用自动监控、警报和分类来识别和评估数据质量和可发现性问题。这会带来更健康的管道、更高效的团队和更快乐的客户。参考链接:https://dzone.com/articles/is-dataops-the-future-of-the-modern-data-stackv