为了账号安全,请及时绑定邮箱和手机立即绑定

五个DevOps和MLOps开发者必知的开源工具🔥🚀

解释:
这个标题通俗易懂,直接点明了文章的主题,即五个对DevOps和MLOps开发者来说非常有用的开源工具。同时,使用了中文的口语表达习惯,使得标题更加贴近目标读者群的语言习惯。

DevOps 和 MLOps 在今天的软件行业中变得非常重要,能够确保机器学习和开发工作流程的无缝集成、部署和管理。开源在这些领域中扮演着重要角色,提供了灵活性、成本效益,以及出色的社区支持。

DevOps 是软件开发(Dev)和 IT 运维(Ops)的融合。它侧重于构建工作流程并监控软件部署,以确保项目快速响应、适应用户需求,并随时准备好供用户使用。同时,MLOps,或称机器学习运维(ML Ops),是 DevOps 原则的扩展,专注于机器学习项目。它侧重于学习、部署和维护机器学习模型,以确保系统的稳定运行。

在这篇文章中,我将向您介绍5款开源工具,这些工具将提升您的DevOps(开发与运维的集成)和MLOps(机器学习与运维的集成)实践水平,以2025年为目标。

咱们开始吧!🚀

超好玩的跳舞 GIF 来自 tv2norge
由 tv2norge 提供的跳舞 GIF

此处为空内容
此处省略部分内容


KitOps - AI 流水线中缺失的一环

kitops

KitOps 将你的机器学习项目的各个部分,如代码、数据集、配置和模型,打包成一个叫做 ModelKit 的包。它提供了一个轻量级的解决方案,可以在 Docker 或 Kubernetes 等平台上部署你的应用程序。

KitOps 通过将您的 AI 或 ML 项目打包成一个 ModelKit 来运作。ModelKit 可以推送到模型仓库并和您的团队共享。他们可以轻松拉取项目以验证数据集或部署模型。

下面来看看 KitOps 工作流是什么样的

使用KitOps之前,您需要先按照此安装指南在您的机器上安装其CLI,并确认已正确安装并可以正常使用。

版本

全屏模式退出全屏

通过使用 kit init 命令,可以在当前文件夹中创建一个 Kitfile。此文件将作为您的 AI 项目蓝图,定义您的模型、数据集和依赖关系。一旦 Kitfile 创建并配置好,使用 kit build 根据 Kitfile 中的配置构建 ModelKit。

要将你的 ModelKit 推送到 KitOps 注册表,可以使用 kit push 命令。

执行以下命令来推送kit到指定的registry:

    kit push 替换为实际的registry_url

点击这里进入全屏,点击这里退出全屏

从注册表中拉取你的ModelKit,可以使用kit pull命令。

运行这个命令来从指定的仓库拉取资源包。
kit pull <registry_url>

全屏 退出全屏

为什么使用KitOps?

为什么要用KitOps?

✅ KitOps 将整个项目的组件打包成一个可共享的资源,便于拉取和部署。

✅ 模型工具包可以轻松部署在任何云容器中。

✅ KitOps 让你可以编写 Python 脚本,帮助你自动化或管理机器学习工作流。如果你主要用 Python,这简直是最简单的选择。

使用KitOps,您无需为基础设施挑战烦恼。它使流程变得简单,让您能够更专注于自己的AI或ML项目,而不必操心部署细节。

你可以从他们的官方文档了解更多关于KitOps的信息,并理解它如何适应你的使用场景。

这个项目在Github上获得了607个 star,并且每天都在改进和简化机器学习的工作流。你可以加入我们的社区,一起交流和学习。

查看KitOps

Kubernetes — 你的生产就绪的容器管理工具

Kubernetes

Kubernetes,通常称为 K8s,是一个用于自动化项目部署到容器内、扩展和管理容器的编排平台。此工具最初由 Google 开发,但现在由云原生计算基金会(CNCF)负责维护。多年来,K8s 已成为当今云原生环境中容器编排的标准工具。

Kubernetes 提供了一套解决方案来帮助简化管理现代分布式系统的复杂性。它能让开发者专注于编写应用代码,而不是纠结于部署的复杂性。

要搭建一个 Kubernetes 集群,你需要创建一个 YAML 配置文件,指定你希望部署应用的位置,配置文件类似下面的样子。

apiVersion: apps/v1
kind: Deployment
metadata:
  name: my-app
spec:
  replicas: 3
  selector:
    matchLabels:
      app: my-app
  template:
    metadata:
      labels:
        app: my-app
    spec:
      containers:
      - name: app-container
        image: my-app-image:latest
        ports:
        - containerPort: 80

进入全屏 退出全屏

您也可以通过 Kubernetes 命令(比如 kubectl get podskubectl get services)来管理并监控集群,扩展或缩小它们的规模,以及解决可能出现的问题。

Kubernetes的几大超赞特性:

✅ Kubernetes封装了应用程序的基础设施层,使其可以在本地数据中心、云提供商和混合环境中轻松部署。例如,如果你的应用程序已经在本地数据中心运行于Kubernetes集群,你可以轻松地将该应用程序部署到AWS、Azure或Google Cloud,因为Kubernetes会在背后处理网络和存储的差异。

✅ Kubernetes 有一个自我修复机制。当 pod 或服务出现问题时,它会重启或迁移故障 pod 中的工作负载到健康 pod。这让你的容器运行更加顺畅,无需手动修复错误,并避免了“周五生产崩溃”的尴尬时刻。

Kubernetes 是一个既强大又多功能的工具,用于在云环境中管理容器中的工作负载。它是 DevOps 或 MLOps 工具箱中的一个重要工具。

你可以通过其文档了解更多关于K8s的信息,以及它如何帮助你的部署过程。该项目目前在GitHub上已获得112k的star,并且你可以在这里找到相关培训信息。

查看 Kubernetes

Pulumi — 自动化和管理云中的所有资源,同时确保安全

Pulumi图标 Pulumi (云开发平台)

Pulumi是一个云开发平台,它让开发人员和基础设施(SRE)团队能够使用他们喜欢的编程语言(如.NET、Python、Go、C#和Java)来定义、部署、维护及管理云资源。

要使用 Pulumi,您需要先下载并安装 CLI 工具,然后使用 pulumi new 命令来启动新项目,并用您选择的语言定义云资源。例如,您可以用 Python 定义一个 AWS S3 存储桶,如下:

    import pulumi
    from pulumi_aws import s3

    # 创建一个名为my-bucket的S3桶
    bucket = s3.Bucket('my-bucket')

全屏 退出全屏

另外,你可以使用 pulumi preview 查看你所做的更改,并使用 pulumi up 将这些更改应用到云上。

Pulumi最好的部分是...

✅ Pulumi 让你可以跨多个云提供商(如 AWS、Azure、Google Cloud 和 Kubernetes)管理云上的资源。

✅ Pulumi 拥有一个名为“Pulumi 视觉洞察”的功能,该功能利用 AI 来改善安全、合规性和云基础设施。

✅ Pulumi 使用内置的加密功能安全地管理您的机密数据。

Pulumi的基础设施即代码(IaC)方式可以简化了云资源管理,从而成为像Ansible或Terraform这样的传统IaC工具的选择之一。

更多关于 Pulumi 的信息可以通过其 文档 来了解,以及它如何满足您产品的云需求。该项目目前在GitHub上获得了超过22,000个 star,他们还提供平台工程工作坊系列

访问 Pulumi

Dagger - 几分钟内就能搭建您的工作流 (Dagger)

短刀
看起来像一把短刀

Dagger 让编写 CI/CD(Continuous Integration and Continuous Deployment,持续集成和持续部署)管道变得简单易行。它通过允许开发人员使用如 Go、TypeScript 和 Python 等语言来创建这些管道,从而改进或增强软件开发流程。

Dagger 提供了一种解决方案,可以替代编写复杂的 CI(持续集成)脚本的需求,用于构建软件项目的流水线。要开始使用,安装你偏好的编程语言的 SDK,它提供了访问 Dagger 函数来设计和管理流水线的途径。Dagger 的一个关键优势是可以在本地测试流水线,使你能够识别并解决部署前的问题。这有助于减少生产环境中的调试时间。一旦验证,Dagger 可以无缝地将你的流水线部署到各种 CI 系统中,包括 Kubernetes、Podman 和 OpenShift。

Dagger的一些超酷功能

✅ Dagger 提供了交互式终端,让你在管道失败或突然中断时调试管道问题。这使得修复管道问题变得简单多了。

✅ Dagger 拥有优秀的缓存机制,可以帮助你避免不必要的构建、运行和测试,从而使 CI/CD 流程更快捷。

Dagger 采用独特的方法来构建 CI/CD 流水线。它不仅高效、可靠,还非常易于维护。更多关于 Dagger 的信息,请参阅其文档

目前,Dagger 在 GitHub 上获得了超过 11k 的星标,并且他们还有一个 Daggerverse,你可以用这些功能来提升你的 DevOps 体验。

查看 Dagger

Jenkins — 一个领先的开源自动化工具

jenkins

Jenkins 是一个自动化工具,它通过自动化软件开发生命周期(SDLC)中的构建、测试和部署阶段,来加快和提高软件项目的持续集成和持续交付(CI/CD)的效率和可靠性。

Jenkins 是一个基于 Java 的平台,与任何操作系统兼容,包括 Windows、Unix 类系统、MacOS 和 Linux。因此,要使用它,您需要在您的机器上安装 Java 环境。您可以使用安装 文档 来安装 Jenkins,并配置系统配置和安全设置。Jenkins 拥有许多插件,允许您将其与许多版本控制工具、构建工具和云平台集成,例如。

是什么让Jenkins与众不同?

除了作为最常用的自动化服务器,拥有众多插件之外,以下是使这个工具特别突出的一些独特功能:

✅ Jenkins 让开发人员可以将管道作为代码来编写。你可以编写管道脚本、共享这些代码进行审查、设置版本管理,并在 CI/CD 流程的构建阶段里一起工作。

✅ Jenkins支持跨多台机器的分布式构建,这提升了性能并满足了项目不断增加的技术需求。它会均匀分配工作负载,避免机器崩溃。

Jenkins 是每个开发人员或工程师工具箱中的一个极其有用的工具,因为它可以帮助你实现流水线的、自动化的 CI/CD 过程,从而提高软件的质量和加快开发速度。这里的 CI/CD 指的是持续集成和持续部署(Continuous Integration/Continuous Deployment)。

该项目目前在GitHub上已有超过23k的星,并且你有机会参与他们的线上或线下meetup,尽情讨论DevOps和云计算。

查看Jenkins

这就收工了!

这里有5个你应该知道的开源工具,用于DevOps和MLOps工作流程。本文介绍的每个工具都有其独特的优势,无论你是新手还是领域内的专家,这些工具都可以帮助你更好地进行DevOps和MLOps工作。


如果你觉得这篇文章有帮助,就与你的同事和朋友们一起分享这篇文章。

有其他超棒的开源项目想推荐吗?在评论区留言吧!

读到这里就停下来吧,谢谢你!

如果你喜欢我的内容,关注我TwitterTwitter

查看我用的 SaaS 工具 👉🏼访问这里!

我欢迎合作撰写博客文章和客座撰稿🫱🏼‍🫲🏼 📅联系这里

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消