Cloudflare 发布了一套开发工具,贯通 Web 界面、服务器与数据库连接及部署。开发内部应用的团队可以选择将应用部署到管理员管控的共享环境,而不必为每位员工授予云访问权限。
1. 同时发布开发工具与部署环境
Void 由用于构建应用的开发工具 SDK、负责资源配置与部署的命令行工具 CLI,以及团队共享的部署环境 Platform 组成。原文称,这三款产品以一个 JavaScript 包和 Vite 插件的形式发布。安装命令为 npm install void。
最初的构想是提供一个供用户部署应用的私有平台,但 VoidZero 加入 Cloudflare 后,方向转为任何人都可安装的开源软件。其目标是满足那些鼓励内部应用开发、却不愿扩大员工个人云权限的企业需求。
2. 共享部署环境的运行条件
Void Platform 安装在公司 Cloudflare 账户中的 Workers for Platforms 之上,后者是一项托管多个应用的服务。管理员设置访问权限和资源限额,并通过命令行工具或管理控制台查看部署记录与用量。获准用户可连接该环境并部署应用。
自行运行需要一个已启用 Workers for Platforms 和 R2 的账户。此外,还需准备 PostgreSQL 数据库、所选登录服务提供商的账户,以及应用使用的域名。
可以克隆平台代码,将其与内部系统集成,或修改部署流程。原文也提出可修改代码以适配其他部署平台。不过,这指的是修改代码后加以应用,并不意味着可以直接部署到其他环境。
3. 在部署时配置代码使用的资源
Void SDK 将 Vite 应用变为基于 Cloudflare Workers 的全栈应用。它从应用代码中推断所需的资源连接,并在部署时自动配置数据库、队列等资源。这让工具接手了开发者逐一连接代码与云资源的工作。
开始时,需要在 Vite 配置中添加插件。以下是原文中的示例。
import { defineConfig } from "vite";
import { voidPlugin } from "void";
import { voidReact } from "@void/react/plugin";
export default defineConfig({
plugins: [voidPlugin(), voidReact()],
});例如,导入 void/db 后,开发期间会提供本地数据库,生产部署时则会自动配置 D1。它还提供从数据库到界面贯通数据类型信息的功能。
SDK 功能可以按需组合。例如,将路由处理和界面生成交给现有框架,将资源访问、身份验证等交给 SDK。因此,不必将其视为必须替换整个现有应用架构的工具。
4. 部署命令与两种目标环境
Void CLI 基于 cf 命令行工具构建。其提出的用途包括配合编程智能体排查失败请求、读取部署日志,以及将已完成应用的部署交给智能体。
首次执行 void deploy 时,会要求登录 Cloudflare 账户。随后,它会构建应用、应用数据库结构变更,再配置所需资源并部署。如果不需要团队管理功能,也可以不安装共享平台,直接部署到自己的账户。
5. 减少的部署工作与保留的管理责任
共享环境的好处在于减少为每个项目单独准备账户和资源的工作。相应地,设计访问策略和资源限额、备齐平台运行所需组件的工作仍由管理员承担。这意味着它降低了应用作者的部署负担,但并未消除团队层面的运维责任。
Void 既是连接应用开发与部署的工具,也是一种让团队选择统一运维、而非为每位员工授予云权限的部署环境。
