776 字约 3 分钟
本质关系
云原生开发本质上是一条声明了 service.vscode 的云原生构建流水线。
两者底层运行机制相同——均通过 .cnb.yml 配置,由云原生构建引擎调度执行, 并支持 stages、docker、imports 等配置项。
核心区别
| 区别项 | 云原生构建 | 云原生开发 |
|---|---|---|
| 用途 | 自动化构建、测试、部署 | 远程开发、代码编写 |
| 声明方式 | .cnb.yml 中定义任意触发事件 | 在流水线中声明 service.vscode |
| 默认镜像 | cnbcool/default-build-env | cnbcool/default-dev-env |
| 分配节点 | 构建节点 | 开发节点 |
| 计费 | 云原生构建用量 | 云原生开发用量 |
详细的环境说明请参考构建环境, 节点说明请参考构建节点, 计费说明请参考定价。
云原生开发按钮
为方便使用,仓库分支页面提供了「云原生开发」按钮。 点击后会触发 云原生开发事件(vscode), 系统自动创建一条带有 service.vscode 的流水线,并启动云原生开发环境。
在非 vscode 事件中启动开发环境
不仅 vscode 事件可以创建开发环境,在任何流水线中声明 service.vscode, 都可以启动云原生开发环境。
例如,在分支创建时自动创建云原生开发环境并推送通知:
.cnb.yml
(**):
branch.create:
- services:
- vscode
stages:
- name: 环境已创建
script: echo "$CNB_BRANCH 开发环境已就绪"更多触发方式请参考 自定义环境创建流程。
自动回收与超时
云原生构建流水线最长运行 20h,超时自动销毁。云原生开发最长保持 18h, 此外还有以下回收机制:
- 心跳检测:环境创建后,若
10 分钟内未进入 VSCode 页面, 或关闭页面后10 分钟内无操作,则自动回收。 - 不过夜机制:使用时间超过
8 小时,且处于凌晨 4-6 点期间,则强制回收。
详细说明请参考 工作区回收机制。
代码备份与文件漫游
云原生开发环境采用按需使用、闲置自动销毁策略。为避免代码丢失,提供了以下机制:
- 代码备份:环境销毁时自动备份未提交代码 (包括 stash、未 push 的 commit 和工作区修改), 重建环境时自动恢复。
- 文件漫游:IDE 配置、
.gitconfig等非工作区文件会跨环境漫游,无需重复配置。
详细说明请参考 代码备份和文件漫游。
业务端口预览
云原生开发环境支持访问运行中的业务端口进行预览, 可通过 WebIDE 的 PORTS 面板或 VSCode/Cursor 客户端的端口转发功能访问。
详细说明请参考 业务端口预览。