什么是 CI/CD
CI/CD(持续集成、持续交付)是一种通过自动化流水线实现短周期、高频率交付软件的开发实践。在 DataBuddy 中,CI/CD 使数据工程师能够像管理软件代码一样管理数据工作流:通过 Bundle 将工作流配置文件化、版本化,结合 Git 实现多环境的自动化部署。
核心能力
能力 | 说明 |
Bundle 包管理 | 将工作流、任务、参数等资源定义为 YAML 配置文件,实现 Infrastructure as Code(基础设施即代码) |
多环境部署 | 通过 Targets 配置(dev / staging / prod)实现一套配置多环境部署,每个环境可使用独立的 Workspace 和变量 |
CLI 命令驱动 | 提供 databuddy bundle 系列命令,支持初始化、验证、部署、运行、销毁等完整生命周期操作 |
变量覆盖 | 支持通过 --var 参数在命令行中动态覆盖变量值,无需修改配置文件 |
Git 联动 | 支持将 Bundle 项目托管到 Git 仓库,结合 CI/CD 流水线(GitHub Actions / GitLab CI)实现自动化部署 |
版本追溯 | 每次部署自动记录部署状态和 Git 元信息,支持回溯和审计 |
关键概念
理解 CI/CD 模块,需要熟悉以下核心概念:
Bundle :DataBuddy 的资产包,包含工作流配置(YAML)、代码文件(Notebook / SQL / Python)和部署元信息。等同于 Databricks 的 Asset Bundles。
Target :部署目标环境,如 dev(开发)、staging(预发布)、prod(生产)。每个 Target 可独立配置 Workspace、变量和权限。
Resource :Bundle 中定义的资源实体,当前支持 Workflow 类型,工作流中可包含 Notebook、SQL、Python、嵌套工作流、数据质量等多种任务类型。
Profile :本地身份认证配置,存储在
~/.databuddycfg 中,包含 Workspace 地址和认证凭据。databuddy CLI :DataBuddy 提供的命令行工具,用于 Bundle 的全生命周期管理。
适用场景
场景 | 适用方式 | 推荐功能 |
多人协作开发 | 每人使用独立 dev Target,代码合并后统一部署到生产 | |
多环境隔离部署 | 开发 / 测试 / 生产三套环境,通过 Target 变量切换 | |
Git 自动化发布 | Push 到特定分支自动触发部署,代码审查通过后自动上线 | |
工作流配置版本化 | 将工作流配置纳入 Git 版本管理,可追溯、可回滚 |
架构概览
DataBuddy CI/CD 的整体工作流程如下:
阶段 | 操作 | 说明 |
1. 安装 CLI | curl ... | sudo sh | 安装 databuddy 命令行客户端 |
2. 登录认证 | databuddy auth login | 跳转到 DataBuddy 登录页完成身份认证 |
3. 初始化 Bundle | databuddy bundle init | 选择模板(SQL / Notebook / Minimal)创建 Bundle 项目 |
4. 定义资源 | 编辑 YAML + 代码 | 在 resources/workflow/ 中定义工作流,在 src/ 中编写代码 |
5. 验证配置 | databuddy bundle validate | 校验 YAML 语法和资源引用 |
6. 部署 | databuddy bundle deploy -t dev | 将 Bundle 内容部署到目标环境 |
7. 运行 | databuddy bundle run workflow <key> | 在目标环境中运行工作流 |
子功能导航
子功能 | 说明 | 文档 |
实践教程 | 端到端演示 Bundle 开发和 Git 联动的完整流程 | - |
Bundle 包定义 | YAML 配置文件的结构、字段、多环境配置详解 | |
Bundle 命令 | CLI 命令完整参考,含安装、认证、部署、运行等 |
推荐学习路径
如果您是首次使用 CI/CD 功能,建议按以下顺序阅读:
1. 了解核心概念 :本文
2. 动手实践 :使用 Bundle 开发(端到端完成一次部署)
3. 掌握配置语法 :Bundle 包定义
4. 查阅命令参考 :Bundle 命令
5. 集成 Git 流水线 :Git 联动开发