DataOps,MLOps,AIOps怎么选?大数据团队应该采用什么样的运营方式?
两年前,由于我领导的运维团队效率低下,我& quot赢了& quot耻辱勋章。我有数据科学和机器学习的背景,所以我们很自然地从工程团队的同事那里学到了DevOps。
至少我们是这么认为的。
这在当时对我们来说是不可思议的,因为我们的数据科学家就坐在数据工程师旁边。我们遵循了所有好的敏捷实践,并且每天都有一个常务会议来讨论阻碍我们的因素。没有什么状态是& quot向墙那边扔砖头& quot。我们紧密合作,我们的科学家和工程师相亲相爱。但进展缓慢,团队成员很沮丧。
过了两年,我终于明白了DevOps的真正含义。这在数据团队中既相同又不同。
在讨论以数据为中心的运营之前,我们先从软件说起。他们有太多的相似和对比。请对我有耐心.
自从2000年末DevOps流行以来,软件行业一直痴迷于各种Ops术语。十年前,从软件开发到部署的方式就已经被革新了。软件工程师开发应用程序,然后交给操作和维护工程师。应用程序在部署的过程中经常失败,这导致团队之间的摩擦很大。
DevOps实践的目的是使部署过程更加顺利。这个想法是将自动化视为构建和部署软件应用程序的一等公民。
这种方法彻底改变了整个行业。许多组织开始通过组建跨职能团队来管理整个SDLC。该团队将构建基础设施(基础设施工程师),开发应用程序(软件工程师),构建CI/CD管道(DevOps工程师),部署应用程序(每个工程师),然后持续监控和观察应用程序(站点可靠性工程师)。
在一个大型团队中,不同的工程师有各自的主要职能。但是在一个较小的团队中,一个工程师经常扮演多个角色。理想情况下,许多团队成员可以执行多种功能,这样就可以消除瓶颈和对关键人员的依赖。所以实际上.
DevOps与其说是一项工作职能,不如说是一种实践或文化。您应该在构建任何软件时使用它。
随着DevOps的兴起,各种op应运而生。
软件开发世界中存在的各种op,由作者制作。
SecOps以安全为核心,GitOps致力于持续交付,NetOps确保网络能够支持数据流,itOps专注于软件交付以外的运维任务。但总的来说,这些Ops的基石都来自DevOps承诺的愿景:
"以最低的错误率尽可能快地交付软件
五年前,每个人都主张& quotDataisthenewOil & quot。世界各地的领导人开始投入大量资源组建大数据团队,挖掘这些宝贵的资产。对于这些团队来说,交付的压力是巨大的。毕竟,我们怎样才能实现& quot新油& quot?随着业务的迅速扩张,分析团队也经历了同样的悲痛。
然后我们实现了一切。
数据科学家已经成为21世纪最性感的职业。我们正处于数据和分析的黄金时代。每位高管都有一个仪表盘。该仪表板包含来自整个组织和嵌入式预测模型的数据。每个顾客都有基于他们行为的个性化推荐。
然而,现在添加一个新功能需要几周甚至几个月的时间。数据模式混乱,没有人知道我们使用的活跃用户定义是来自信贷团队还是营销团队。我们在将模型投入生产时变得小心翼翼,因为我们不确定它会带来什么损害。
因此,以数据为中心的社区站在了一起,承诺不会因为管理不善而效率低下。此后,各种以数据为中心的运营应运而生.
以数据为中心的团队诞生的各种Ops:DataOps、MLOps、AIOps都是作者制作的。
为了理解所有这些不同的操作,让我们来看看数据在组织中是如何流动的:
通过客户和软件程序之间的交互生成数据。软件将数据存储在应用程序的数据库中。分析团队基于这些来自不同团队的应用程序数据库构建ETL。分析团队为业务用户构建报告和仪表板,帮助他们做出数据驱动的决策。然后,数据工程师将原始数据、合并的数据集(来自分析团队)和其他非结构化数据集集成到某种形式的数据湖中。然后,数据科学家利用这些海量数据集建立模型。然后,这些模型使用用户生成的新数据进行预测。然后,软件工程师将预测结果呈现给用户,如此循环往复.我们知道DevOps的诞生是因为开发团队和运维团队的摩擦。所以可想而知,运维、软件、分析、AI四个团队之间的互动会有多痛苦。
为了说明这些不同的运营是如何解决上述流程的,这里有一个图表,它描绘了在整个时间轴上每个工作职能所执行的一些任务。
时间轴上各工作职能执行的任务图由作者生成。
理想情况下,X-Ops文化应该在项目开始时就被采纳,并贯穿整个过程。
实施。总体而言之,以下就是每种Ops的具体含义:
DevOps更快地交付软件
一系列旨在消除开发和运维团队之间障碍的实践,以便更快地构建和部署软件。它通常会被工程团队所采用,包括DevOps工程师、基础设施工程师、软件工程师、站点可靠性工程师和数据工程师。
DataOps更快地交付数据
一系列旨在提高数据分析质量并缩短分析周期的实践。DataOps的主要任务包括数据标记、数据测试、数据管道编排、数据版本控制和数据监控。分析和大数据团队是DataOps的主要操作者,但是任何生成和使用数据的人都应该采用良好的DataOps实践。这包括数据分析师、BI分析师、数据科学家、数据工程师,有时还包括软件工程师。
MLOps更快地交付机器学习模型
一系列设计、构建和管理可重现、可测试和可持续的基于ML的软件实践。对于大数据/机器学习团队,MLOps包含了大多数DataOps的任务以及其他特定于ML的任务,例如模型版本控制、测试、验证和监控。
附加:AIOps利用AI的功能增强了DevOps工具
有时人们错误地将MLOps称为AIOps,但它们是完全不同的。以下说明来自Gartner(高德纳,美国咨询公司):
AIOps平台利用大数据、现代机器学习以及其他先进的分析技术,直接或间接地增强IT运维(监控、自动化和服务台),具有前瞻性、个性化以及动态的洞察力。
因此,AIOps通常是利用AI技术来增强服务产品的DevOps工具。AWSCloudWatch提供的报警和异常检测是AIOps的一个很好的例子。
存在的一种误解是:为了达到这些Ops所承诺的效率,需要从选择正确的技术开始。事实上,技术并不是最重要的。
DataOps、MLOps和DevOps的实践必须是与语言、框架、平台和基础设施无关的。
每个人都有不同的工作流程,该工作流程应该由相应的原则来决定,而不是你想要尝试的技术,或者最流行的技术。技术先行的陷阱是,如果你想用锤子,那么一切对你来说都像是钉子。
所有的Ops都具有相同的7个首要原则,但是每个原则又都有其细微的差别:
DevOps通常会担心网络和应用程序的安全性。在MLOps领域,金融和医疗保健等行业通常需要模型的可解释性。DataOps需要确保数据产品符合GDPR/HIPPA等法规。
工具:PySyft能够解耦模型训练过程中的私有数据,AirClope能够匿名化数据。AwesomeAIGuidelines能够基于AI的原则、标准和规范进行管理。
该原则源于敏捷方法论,它专注于以可持续的方式不断地产生业务价值。产品经过迭代设计、构建、测试和部署,以最大程度地实现快速失败并不断学习。
软件系统通常是确定性的:代码每次都应该以完全相同的方式运行。因此,为了确保可重现性,DevOps只需跟踪代码即可。
然而,机器学习模型经常会因为数据漂移而被重新训练。为了重现结果,MLOps需要对模型进行版本控制,DataOps需要对数据进行版本控制。当被审计师问到“产生这个特定的结果,需要使用哪个模型,需要使用哪些数据来训练该模型”时,数据科学家需要能够回答这个问题。
工具:实验跟踪工具,比如KubeFlow、MLFlow、SageMaker,它们都具有将元数据链接到实验运行中的功能。Pachyderm和DVC可用于数据版本控制。
软件测试包括单元测试、集成测试和回归测试。DataOps需要进行严格的数据测试,包括模式变更、数据漂移、特征工程后的数据验证等。从ML的角度来看,模型的准确性、安全性、偏差/公平性、可解释性都需要测试。
工具:像Shap、Lime这样的库可用于可解释性,fiddler可用于解释性监控,greatexpectation可用于数据测试。
机器学习模型的持续部署由三个组件构成:
第一个组件是触发事件,即触发器是数据科学家的手动触发器、日历计划事件和阈值触发器吗?第二个组件是新模式的实际再培训。生成模型的脚本、数据和超参是什么?它们的版本以及它们之间的联系。最后一个组件是模型的实际部署,它必须由具有预警功能的部署管道进行编排。工具:大多数的工作流管理工具都具有此功能,比如AWSSageMaker、AzureML、DataRobot等。开源工具有Seldon、Kubeflow等。
自动化是DevOps的核心价值,实际上有很多专门针对自动化各个方面的工具。以下是一些机器学习项目相关的资源:
AwesomeMachineLearning
https://github.com/josephmisiti/awesome-machine-learning
AwesomeProductionMachineLearning
https://github.com/ethicalml/awesome-production-machine-learning
软件应用程序需要监控,机器学习模型和数据管道也需要监控。对于DataOps来说,重要的是监控新数据的分布,以发现是否有任何数据和/或概念的漂移。在MLOps领域,除了模型降级之外,如果你的模型具有公共API,那么监控对抗性攻击也是至关重要的。
工具:大多数工作流管理框架都具有某种形式的监控。其他流行的工具包括用于监控度量指标的Prometheus,用于数据和模型监控的OrbitbyDessa。
采用正确的X-Ops文化来加快数据和机器学习驱动的软件产品的交付。请记住,原则胜过技术:
培养跨学科技能:培养T型个人和团队(弥合差距,协调问责制)尽早实现自动化(足够):集中在一个技术栈上并实现自动化(减小工程过程的开销)以终为始:在解决方案设计上提前投资,以减少从PoC到生产的摩擦原文链接:
https://towardsdatascience.com/what-the-ops-are-you-talking-about-518b1b1a2694
延伸阅读:
关注我并转发此篇文章,即可获得学习资料~若想了解更多,也可移步InfoQ官网,获取InfoQ最新资讯~
上一篇:茁壮成长是什么意思(小一)