blog.dopana

Back

每当你写出了一道新菜谱时,你都想在端给客人之前,先尝尝味道是否合适、食材是否齐全。

在软件开发中,我们使用 CI/CD(持续集成 / 持续部署) 来做完全相同的事情。每当开发人员修改代码时,自动测试流水线都会编译它,检查 bug(静态检查/类型检查),运行测试,然后将其部署到生产环境中。

通常,企业会使用 GitHub Actions 等外部工具。但是,如果你是一个大型 SaaS 平台(如网站生成器或云托管服务商),你需要为数百万个客户的代码仓库运行构建和测试,那该怎么办?管理数百万个独立的构建服务器是一场昂贵而复杂的噩梦。

为了解决这个问题,Cloudflare 宣布了一种全新的原生方式,可以直接在其边缘网络上超大规模地运行 CI/CD。以下是其工作原理的通俗解释。

Cloudflare CI/CD 的三大支柱#

Cloudflare 的原生 CI/CD 系统通过结合三个核心工具,取代了废物的外部构建服务器:

  1. Artifacts (代码库库房):一个专门为在数百万个仓库中存储和扩展代码而设计的 Git 原生版本化存储系统。
  2. Cloudflare Workflows (总调度官):调度和运行构建步骤的大脑(例如,步骤 1:获取代码,步骤 2:测试,步骤 3:部署)。
  3. CI SDK (安全沙盒):一个隔离的软件开发包(@cloudflare/ci),在安全、隔离的沙箱(sandboxes)中运行构建和测试。
graph TD
    CodeCommit[📝 开发人员推送代码] --> Artifacts[📦 保存至 Cloudflare Artifacts]
    Artifacts --> Workflows[⚙️ 启动 Cloudflare Workflows]
    Workflows --> Sandbox1["🧪 沙盒 1:运行 Lint 和测试"]
    Sandbox1 -- 成功 --> Sandbox2["🏗️ 沙盒 2:构建与编译"]
    Sandbox2 -- 成功 --> Deploy["🚀 部署到 Cloudflare Workers / Pages"]
    Sandbox1 -- 失败 --> AI[🤖 AI 代理人尝试自动修复代码]

为什么说这是一个颠覆性的创新?#

1. 摆脱 YAML 配置文件陷阱#

你不再需要编写复杂且难以调试的 YAML 配置文件(例如 .github/workflows/main.yml),而是可以使用标准的 TypeScript 语言来编写整个构建流水线。这意味着你可以使用循环、条件判断和普通的代码编写函数来控制你的构建过程。

2. 原生适配 AI(“自我修复”流水线)#

因为流水线作为 Cloudflare 上的工作流脚本运行,所以你可以非常容易地接入 AI 模型。如果测试失败,工作流可以自动将错误日志发送给 AI 代理人,由 AI 代理人修改代码以修复 bug,提交代码,并重新运行测试,而无需人工干预!

3. 为平台商量身定制#

如果你正在构建自己的 SaaS 平台,你现在可以代表你的客户运行 CI/CD 构建,而无需设置任何复杂的 Kubernetes 集群或管理构建节点。Cloudflare 会为你处理所有的资源扩缩容和安全隔离。

总结#

通过直接在 Cloudflare 的全球边缘网络上运行 CI/CD,开发人员可以获得快速、可扩展且原生支持 AI 的交付流水线。平台运营者可以轻松服务数百万个代码仓库,实现从静态 YAML 配置到动态、自我修复的现代化代码自动化的跨越。

参考资料#