802 字约 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
feature/**:
# 分支创建
branch.create:
- services:
# 声明 vscode service,创建云原生开发环境
- vscode
# 引用密钥仓库文件导入环境变量 企业微信机器人地址
imports: https://cnb.cool/<your-repo-slug>/-/blob/main/xxx/envs.yml
stages:
- name: notify
image: tencentcom/wecom-message
settings:
robot: $ROBOT
content: |
环境创建好啦~
[$CNB_BRANCH]($CNB_VSCODE_WEB_URL)更多触发方式请参考 自定义环境创建流程。
自动回收与超时
云原生构建流水线最长使用时间为 20h,超时后自动销毁。云原生开发最长保持时间为 18h,此外还有以下回收机制:
- 心跳检测:开发环境创建后,如果
10 分钟内未进入 VSCode 页面,或关闭页面后10 分钟内无操作,则自动回收。 - 不过夜机制:如果使用时间超过
8 小时,且刚好是凌晨 4-6 点期间,则强制回收。
详细说明请参考 工作区回收机制。
代码备份与文件漫游
云原生开发环境采用按需使用、闲置自动销毁策略。为了避免代码丢失,提供了以下机制:
- 代码备份:环境销毁时自动备份未提交代码(包括 stash、未 push 的 commit、工作区修改),重建环境时自动恢复。
- 文件漫游:IDE 配置、
.gitconfig等非工作区文件会跨环境漫游,无需重复配置。
详细说明请参考 代码备份和文件漫游。
业务端口预览
云原生开发环境支持访问运行中的业务端口进行预览,可通过 WebIDE 的 PORTS 面板或 VSCode/Cursor 客户端的端口转发功能访问。
详细说明请参考 业务端口预览。