Orchest项目开发环境搭建与工作流指南

Orchest项目开发环境搭建与工作流指南

orchest orchest/orchest: 是一个基于 Kubernetes 的 CI/CD 平台。适合自动化部署和管理应用程序。特点是支持多种语言和框架,可以与其他 DevOps 工具集成。 orchest 项目地址: https://gitcode.com/gh_mirrors/or/orchest

前言

Orchest是一个基于Kubernetes的数据科学工作流编排平台,本文将为开发者详细介绍如何搭建Orchest项目的开发环境以及开发工作流程。通过本文,你将掌握从环境准备到代码修改、测试验证的完整开发流程。

开发环境准备

必备软件安装

开发Orchest项目需要以下软件环境:

  1. 编程语言环境

    • Python 3.x:项目主要开发语言
    • Go语言:用于orchest-controller组件开发
  2. 容器与编排工具

    • Docker:构建项目镜像
    • minikube:本地Kubernetes集群
    • kubectl:Kubernetes集群管理工具
    • helm:Kubernetes包管理工具
  3. 前端开发工具

    • Node.js和npm:前端开发基础
    • pnpm:更高效的Node.js包管理工具
  4. 开发辅助工具

    • pre-commit:代码提交前检查
    • Google Chrome:集成测试运行环境

可选推荐工具

  • k9s:Kubernetes集群终端管理界面
  • jq:JSON数据处理工具
  • gron:使JSON数据可grep搜索

依赖项配置

安装完基础软件后,需要配置开发环境:

# 安装pre-commit钩子
pre-commit install

# 安装前端开发依赖
npm run setup --install && pnpm i

# 安装Orchest CLI工具
python3 -m pip install -e orchest-cli

# 安装文档构建依赖
python3 -m pip install -r docs/requirements.txt

开发集群配置

建议使用minikube创建本地开发集群,并将代码仓库挂载到集群中:

# 删除已有集群
minikube delete

# 创建新集群并挂载代码仓库
minikube start \
  --cpus max \
  --memory max \
  --addons ingress metrics-server \
  --mount-string="$(pwd):/orchest-dev-repo" --mount

开发模式安装Orchest

镜像构建要点

  1. Docker环境配置:确保使用minikube的Docker守护进程

    eval $(minikube -p minikube docker-env)
    
  2. 镜像标签管理:构建镜像时使用正确的标签非常重要,控制器会根据标签管理集群

# 设置镜像标签为最新版本
export TAG="$(orchest version --latest)"

# 构建最小化镜像集
scripts/build_container.sh -M -t $TAG -o $TAG

安装Orchest

使用开发模式安装,避免从远程拉取资源:

orchest install --dev

安装完成后,可以通过以下方式访问:

  • Linux:使用minikube ip获取的IP
  • macOS:运行sudo minikube tunnel后访问localhost

开发工作流程

增量开发模式

对于前端(webserver)、API服务和认证服务的开发,可以使用热重载模式:

# 启动前端开发服务器
pnpm run dev

# 切换到开发模式
orchest patch --dev

这种模式下,代码修改会立即生效,无需重新构建镜像。

镜像重建流程

当修改了不支持热重载的服务时,需要重建镜像:

  1. 确保使用minikube的Docker环境
  2. 重建特定服务的镜像
    scripts/build_container.sh -i 服务名 -t $TAG -o $TAG
    
  3. 删除对应的Pod使其重建
    kubectl delete pods -n orchest -l "app.kubernetes.io/name=服务名"
    

完整重装流程

当进行大规模修改或切换分支时,建议完全重装:

# 卸载Orchest
orchest uninstall

# 切换分支
git switch 新分支

# 重建镜像
eval $(minikube -p minikube docker-env)
export TAG="$(orchest version --latest)"
scripts/build_container.sh -M -t $TAG -o $TAG

# 重新安装
orchest install --dev

代码提交与PR指南

提交前检查

确保:

  1. pre-commit检查通过
  2. 单元测试和集成测试通过
  3. 在非开发模式下验证过修改

创建PR注意事项

项目采用gitflow工作流:

  • 主分支:master(稳定版)
  • 开发分支:dev(集成最新开发)
  • PR应合并到dev分支而非master

最佳实践

  1. Python依赖管理:使用pip-tools管理依赖,修改requirements.in后运行pip-compile生成锁定版本
  2. 多节点开发:使用提供的脚本简化多节点环境下的开发
  3. 环境清理:避免频繁使用minikube delete,以保留Docker缓存加速重建

通过本文介绍的工作流程,开发者可以高效地进行Orchest项目的开发和测试。掌握这些方法后,你将能够快速迭代和验证你的代码修改。

orchest orchest/orchest: 是一个基于 Kubernetes 的 CI/CD 平台。适合自动化部署和管理应用程序。特点是支持多种语言和框架,可以与其他 DevOps 工具集成。 orchest 项目地址: https://gitcode.com/gh_mirrors/or/orchest

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

倪俪珍Phineas

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值