解释:
这个标题通俗易懂,直接点明了文章的主题,即五个对DevOps和MLOps开发者来说非常有用的开源工具。同时,使用了中文的口语表达习惯,使得标题更加贴近目标读者群的语言习惯。
DevOps 和 MLOps 在今天的软件行业中变得非常重要,能够确保机器学习和开发工作流程的无缝集成、部署和管理。开源在这些领域中扮演着重要角色,提供了灵活性、成本效益,以及出色的社区支持。
DevOps 是软件开发(Dev)和 IT 运维(Ops)的融合。它侧重于构建工作流程并监控软件部署,以确保项目快速响应、适应用户需求,并随时准备好供用户使用。同时,MLOps,或称机器学习运维(ML Ops),是 DevOps 原则的扩展,专注于机器学习项目。它侧重于学习、部署和维护机器学习模型,以确保系统的稳定运行。
在这篇文章中,我将向您介绍5款开源工具,这些工具将提升您的DevOps(开发与运维的集成)和MLOps(机器学习与运维的集成)实践水平,以2025年为目标。
咱们开始吧!🚀
超好玩的跳舞 GIF 来自 tv2norge
此处为空内容
此处省略部分内容
KitOps - AI 流水线中缺失的一环
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,并且每天都在改进和简化机器学习的工作流。你可以加入我们的社区,一起交流和学习。
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 pods
和 kubectl get services
)来管理并监控集群,扩展或缩小它们的规模,以及解决可能出现的问题。
Kubernetes的几大超赞特性:
✅ Kubernetes封装了应用程序的基础设施层,使其可以在本地数据中心、云提供商和混合环境中轻松部署。例如,如果你的应用程序已经在本地数据中心运行于Kubernetes集群,你可以轻松地将该应用程序部署到AWS、Azure或Google Cloud,因为Kubernetes会在背后处理网络和存储的差异。
✅ Kubernetes 有一个自我修复机制。当 pod 或服务出现问题时,它会重启或迁移故障 pod 中的工作负载到健康 pod。这让你的容器运行更加顺畅,无需手动修复错误,并避免了“周五生产崩溃”的尴尬时刻。
Kubernetes 是一个既强大又多功能的工具,用于在云环境中管理容器中的工作负载。它是 DevOps 或 MLOps 工具箱中的一个重要工具。
你可以通过其文档了解更多关于K8s的信息,以及它如何帮助你的部署过程。该项目目前在GitHub上已获得112k的star,并且你可以在这里找到相关培训信息。
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,他们还提供平台工程工作坊系列。
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 体验。
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和云计算。
这就收工了!
这里有5个你应该知道的开源工具,用于DevOps和MLOps工作流程。本文介绍的每个工具都有其独特的优势,无论你是新手还是领域内的专家,这些工具都可以帮助你更好地进行DevOps和MLOps工作。
如果你觉得这篇文章有帮助,就与你的同事和朋友们一起分享这篇文章。
有其他超棒的开源项目想推荐吗?在评论区留言吧!
如果你喜欢我的内容,关注我 在 Twitter 上 Twitter。
查看我用的 SaaS 工具 👉🏼访问这里!
我欢迎合作撰写博客文章和客座撰稿🫱🏼🫲🏼 📅联系这里
共同学习,写下你的评论
评论加载中...
作者其他优质文章