ITPub博客

首页 > 数据库 > 数据库开发技术 > 晓谈数据工程5-DevOps、DataOps 和 MLOps

晓谈数据工程5-DevOps、DataOps 和 MLOps

原创 数据库开发技术 作者:flycrown 时间:2024-04-09 13:36:09 0 删除 编辑

这是数据工程概念系列 10 部分中的第 5 部分。在这一部分中,我们将讨论 DevOps 实践的重要性。

内容:
1. DevOps
2. 使用的工具和实际示例
3. DataOps
4. MLOps

一 什么是 DevOps

DevOps 是开发和运营的交叉点,它是一种文化,而不是一种角色,有助于高速、高质量地交付产品。由于其自动化特性,它还有助于带来方法的统一性、更高的安全性和增强的可扩展性。DevOps 实践提高了团队之间的协作水平,并通过监控自动化流程来提高可靠性。下图描述了 DevOps 的不同阶段:

所有团队,包括质量保证和安全团队,都与开发和运营紧密集成。以下是组织可以实施的一些最佳 DevOps 实践:

1.持续集成
这是一种开发人员定期将代码合并到中央存储库并运行自动构建和测试以解决任何错误或集成问题并快速从团队获得反馈以提高质量的做法,从而减少之前的验证时间任何软件更新版本。

2. 持续交付
这是一种将代码发布到测试和预生产环境的实践,可以在其中配置代码以构建部署就绪的工件。通过持续部署,代码的部署是自动化的,可以更快地获取用户反馈并减少运营团队手动流程的开销。设计测试以适应这种实践的初始工作是唯一需要的工作。

3. DevSecOps
这种做法确保我们在管道的每个阶段都纳入安全措施,以确保不存在漏洞并设计测试来识别任何威胁或漏洞。可以实施安全即代码来断言安全策略并阻止错误传播到生产环境。

4. 基础设施即代码
这种做法确保我们使用代码脚本为不同的开发、生产和测试环境配置基础设施,从而实现资源分配和扩展过程的自动化。这使得基础设施更加高效、易于复制和恢复,并且其所处状态更加透明。

5. 监控和日志记录
这种做法可确保我们了解运行应用程序的基础设施的性能和运行状况。监控将有助于识别任何故障,而日志记录将有助于排除故障,并通过观察趋势和模式使性能更加优化。

6. 沟通与协作
这种做法确保所有团队之间有共同的责任感,并为实现共同目标而努力,同时彼此分享专业知识,以帮助促进协作。这可以通过良好的文档、定期会议和多项政策设计来实现,以帮助优化旧流程并带来新观点。

DevOps 工具和实际示例

下图显示了可用于实现 DevOps 各个阶段的不同工具:

以下是其中一些的描述:
1. Docker
Docker 是一个容器化工具,可以帮助您将应用程序打包为必要的依赖项和配置,从而标准化整个开发环境。这使得流程操作系统独立,并有助于提供高效的部署指南,而无需开发和运营团队之间的任何通信开销。并且还可以通过容器让不同版本的应用程序在同一台机器上运行。

2. Kubernetes
Kubernetes 是一个容器编排工具,有助于部署、扩展和管理容器。它包括高可用性和灾难恢复的功能。您可以在本地、云或混合环境中运行 Kubernetes 集群,并使用网络概念在架构的不同子系统之间进行通信

3. Ansible
它是一个配置工具,用于通过 Ansible Playbooks 中的声明性代码(YAML 文件)配置应用程序基础设施。它有助于部署应用程序并自动执行安装/更新软件等 IT 任务。它通过 SSH 连接不同的机器,并且不需要在机器上安装任何代理即可与它们交互。

4. Terraform
它是一个工具,用于通过声明性代码配置部署应用程序所需的基础设施(仅提到所需状态,没有逐步说明)。它还有助于管理现有基础设施并自动适应应用程序的新更改。您还可以自动为开发和生产环境启动不同的复制基础设施

5. Grafana
它是一个用于监控和可观察的开源工具,可以像 Prometheus 一样对日志和其他数据源进行可视化。它还提供警报、仪表板定制、扩展功能和数据查询的插件等功能。

6. GitHub Actions
Github Actions 是 GitHub 的一项功能,有助于自动化不同的工作流程以响应某些 GitHub 事件,例如将代码推送到 GitHub 存储库、添加新的贡献者、将代码合并到主分支或根据计划运行操作。工作流程以 YAML 文件编写并存储在 /.github/workflows 文件夹中。它可用于 CI/CD、发送通知、代码分析和测试。

Netflix 实际示例:
Netflix 是一个非常好的例子,它采用了 DevOps 原则,并以“操作构建的内容”文化创建了软件开发的共享责任模型。他们的目标是确定 DevOps 阶段的痛点和差距,并专注于解决这些问题,而不是瞄准 100% 正常运行时间等目标。

它依靠数据分析算法来提供有关问题何时以及如何出现的见解,并利用它来解决问题,而不是维护控制原则。他们建立了一系列工具来自动执行故障并进行广泛的测试,为看不见的错误做好准备。通过这种方式,他们构建了强大且安全的基础设施,该基础设施具有高可用性,避免了意外故障。

二 什么是DataOps数据运营

DataOps 是一系列实践的集合,专注于打破数据生产者和消费者之间的孤岛,提高数据质量和结果透明度。它提供了数据工程、数据科学和运营团队的协作。它旨在通过更快的方法自动向适当的团队交付正确且可靠的数据。这可以提高数据生产力并增强人类沟通。

三 什么是 MLOps

MLOps 是一种工程原理,允许将 ML 模型开发和部署结合起来,并使流程自动化,以专注于机器学习模型中最相关的部分。它允许机器学习工程师将时间投入到问题陈述和优化解决方案上,而不是处理与生产环境中的交付相关的“技术债务”。

它是一种介于 ML、数据工程和 DevOps 之间的多学科方法,并利用各自的原理来简化机器学习模型生命周期。它支持根据数据或业务目标的变化对模型进行版本控制、监控和重新训练。

MLOps 流程包含以下 3 个阶段:

第一阶段是根据 ML 用例的功能和非功能需求设计 ML 架构,对它们进行优先级排序并找出满足这些需求所需的数据。
下一阶段涉及开发数据工程管道以提取所需的数据并通过测试和验证捕获数据更改以及模型工程。
第三阶段的重点是交付 ML 模型并通过 CI/CD 自动发布更新。我们还监控此阶段模型的性能,并根据新数据或错误触发持续训练。



往期推荐

晓谈企业数据管理一:数据类型

晓谈企业数据管理二:识别数据问题

企业数据管理三:元数据、主数据、参考数据

晓谈企业数据管理四:大数据和数据存储

晓谈企业数据管理五:数据湖和数据仓库

晓谈企业数据管理六:数据治理和云数据管理


原文作者:数据驱动智能;如有侵权,请联系管理员删除。

请登录后发表评论 登录
全部评论

注册时间:2022-11-11

  • 博文量
    331
  • 访问量
    178245