DevOps 和 MLOps 對於確保當今軟體世界中機器學習和開發工作流程的無縫開發、部署和管理變得非常重要。開源透過提供靈活性、成本效益和出色的社群支援在這些領域發揮作用。
DevOps 是軟體開發 (Dev) 和 IT 營運 (Ops) 的結合。它專注於建立工作流程並監控軟體專案的部署,以確保它們快速、可容納使用者並隨時為使用者做好準備。同時,MLOps 或機器學習操作,是 DevOps 原則的延伸,但它專注於機器學習專案。它專注於在機器學習系統中學習、部署和維護模型。
在本文中,我將向您介紹 5 個開源工具,它們將在 2025 年增強您的 DevOps 和 MLOps 實踐。
讓我們開始吧! 🚀
KitOps 將機器學習專案的不同部分(例如程式碼、資料集、配置和模型)組合到一個稱為 ModelKit 的套件中。該工具提供了一個輕量級解決方案,用於在 Docker 或 Kubernetes 等平台上部署應用程式。
KitOps 的工作原理是將您的 AI 或 ML 專案捆綁到 ModelKit 中。 ModelKit 可以推送到註冊表並與您的團隊共用。他們可以輕鬆地提取專案來驗證資料集或部署模型。
要使用 KitOps,您需要使用本安裝指南在您的電腦上設定其 CLI,並確認其已正確安裝。
kit version
使用kit init
指令,您可以在目前資料夾中建立 Kitfile。該文件將充當您的 AI 專案的藍圖,定義您的模型、資料集和依賴項。建立並配置 Kitfile 後,使用kit build
根據 Kitfile 中的配置建立 ModelKit。
若要將 ModelKit 推送到 KitOps 登錄,請使用kit push
指令。
kit push <registry_url>
若要從登錄機碼下載(拉取)ModelKit,請使用kit pull
指令。
kit pull <registry_url>
✅ KitOps 將整個專案的元件打包成一個可共享的資產,以便於拉取或部署。
✅ ModelKit 可以部署在任何雲端容器上,幾乎沒有任何壓力。
✅ KitOps 可讓您編寫 Python 腳本,協助自動化或管理機器學習工作流程。如果 Python 是您選擇的主要語言,那麼這是理所當然的。
透過 KitOps,您無需因基礎設施挑戰而感到壓力。它簡化了流程,因此您可以更專注於 AI 或 ML 專案,而不是其部署工作流程。
您可以從 KitOps 的文件中了解有關 KitOps 的更多訊息,並了解它如何適合您的用例。
該專案在GitHub上有 607 顆星,每天都在改進和簡化機器學習工作流程。你可以加入社區
https://git.new/kitops 檢查 KitOps
Kubernetes(通常稱為 K8s)是一個容器編排平台,旨在自動將專案部署到容器中、對其進行擴展和管理。該工具最初由 Google 開發,但現在由雲端原生運算基金會 (CNCF) 維護。多年來,K8s 已成為當今雲端原生環境中容器編排的標準。
Kubernetes 提供了解決現代分散式系統困難的解決方案。它使開發人員能夠專注於建立應用程式,而不是複雜的部署應用程式。
要設定 Kubernetes 集群,您需要建立一個 YAML 設定檔來定義要部署應用程式的位置,該檔案應如下所示:
apiVerion: 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
您也可以透過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,他們提供培訓,您可以在這裡找到。
https://github.com/kubernetes/kubernetes 檢查 Kubernetes
Pulumi 是一個雲端平台,可讓開發人員和基礎架構 (SRE) 團隊使用您最喜歡的程式語言(如 .NET、Python、Go、C# 和 Java)定義、部署、維護和管理雲端資源。
要使用 Pulumi,您需要下載並安裝CLI 工具,並使用pulumi new
啟動新專案並使用您選擇的語言定義雲端資源。例如,您可以在 Python 中定義 S3 AWS 儲存桶,如下所示:
import pulumi
from pulumi_aws import s3
bucket = s3.Bucket('my-bucket')
此外,您可以使用pulumi preview
查看您的更改,並使用pulumi up
將所述更改應用到雲
✅ Pulumi 讓您可以跨多個供應商(例如 AWS、Azure、Google Cloud 和 Kubernetes)管理雲端資源。
✅ Pulumi 有一項名為「Pulumi Insights」的功能,它使用 AI 來提高安全性、合規性和雲端基礎設施。
✅ Pulumi 透過內建的秘密管理加密來安全地管理您的秘密資料。
Pulumi 的基礎設施即程式碼 (IaC) 方法可以簡化雲端資源管理,使其成為 Ansible 或 Terraform 等傳統 IaC 工具的絕佳替代品。
您可以透過其文件了解有關 Pulumi 的更多資訊以及它如何滿足您產品的雲端要求。該專案目前在GitHub上有 22k+ 星,他們提供平台工程研討會。
https://github.com/pulumi/pulumi 檢查 Pulumi
Dagger 讓編寫 CI/CD(持續整合和持續部署)管道變得容易。它旨在讓開發人員使用 Go、TypeScript 和 Python 等語言建立軟體開發流程,從而改善或增強軟體開發流程。
Dagger 提供了一種解決方案,無需在建立軟體專案管道時編寫複雜的 CI(持續整合)腳本。首先,使用您首選的程式語言安裝SDK ,該語言提供對用於設計和管理管道的 Dagger 功能的存取。 Dagger 的一個關鍵優勢是能夠在本地測試管道,使您能夠在部署之前辨識並解決問題。這有助於減少生產中的除錯時間。經過驗證後,Dagger 可以跨各種CI 系統(包括 Kubernetes、Podman 和 OpenShift)無縫部署管道。
✅ Dagger 提供了一個互動式終端介面,讓您可以在管道失敗或突然停止時進行偵錯。這使得修復管道故障變得更加容易。
✅ Dagger 擁有令人驚嘆的快取系統,可幫助您避免不必要的重建、重新執行和重新測試,從而使 CI/CS 流程更快。
Dagger 採用獨特的方法來建立 CI/CD 管道。它還非常高效、可靠且易於維護。您可以透過其文件了解有關 Dagger 的更多資訊。
目前,Dagger 在GitHub上有 11k+ 顆星,並且他們有Daggerverse ,它具有 Dagger 功能,您可以使用它們來增強 DevOps 體驗。
https://github.com/dagger/dagger 檢查 Dagger
Jenkins 是一個自動化伺服器,可以改善軟體專案的持續整合和持續交付(CI/CD)流程。它的工作原理是透過提高 CI/CD 流程的速度和可靠性來自動化軟體開發生命週期 (SDLC) 的各個階段 - 建置、測試和部署軟體應用程式。
Jenkins 是一個基於 Java 的平台,與任何作業系統相容,包括 Windows、基於 Unix 的系統、MacOS 和 Linux。因此,要使用它,您需要在電腦上安裝 Java。您可以使用安裝文件安裝 Jenkins 並設定係統設定和安全選項。 Jenkins 有許多插件,可讓您將其與許多版本控制系統、建置工具和雲端平台整合。
除了成為領先且最常用的自動化伺服器並擁有如此多的插件之外,以下一些獨特功能使該工具脫穎而出:
✅ Jenkins 允許開發人員將管道建立為程式碼。使用程式碼,您可以定義管道、共享程式碼以供審閱、設定版本控制以及在建置的 CI/CD 流程階段進行協作。
✅ Jenkins 支援跨多台機器的分散式建置,這可以提高效能並滿足專案不斷增長的技術要求。它在機器之間均勻分配工作負載以防止崩潰。
Jenkins 在任何開發人員或 DevOps 工具包中都是非常有用的工具,因為它可以幫助您實現簡化、自動化的 CI/CD 流程,並提高軟體的品質和速度。
該專案目前在GitHub上擁有超過 23,000 顆星,您有機會參加他們的線上或面對面聚會,並探索 DevOps 和雲端。
https://github.com/jenkinsci/jenkins 檢查 Jenkins
這就是一個包裝!
您絕對應該了解以下 5 個用於 DevOps 和 MLOps 工作流程的開源工具。本文介紹的工具各有其獨特的優勢,無論您是該領域的初學者還是專業人士,它們都可以促進您的 DevOps 和 MLOps 之旅。
如果您發現本文有用,請與您的同儕和社群分享。
還有其他很棒的開源專案嗎?將它們放在評論中!
如果你❤️我的內容!在Twitter上聯絡我
檢查我使用的 SaaS 工具 👉🏼存取此處!
我願意在部落格文章和來賓貼文上合作🫱🏼🫲🏼📅在這裡聯繫
原文出處:https://dev.to/astrodevil/5-must-know-open-source-tools-for-devops-and-mlops-developers-29bp