云引擎最近支持了 预览环境,可以自动将 Pull request 部署到一个新的环境,每个预览环境有单独的域名,让开发者在线上测试过后再合并 PR。
什么是环境
云引擎的「环境」是分组下一级的概念,是部署的最小单位。所有环境使用相同的分组设置,包括环境变量、实例规格等。
- 生产环境 用来接收和处理线上请求,是一个分组下最重要的环境。
- 预备环境 用来测试代码,开发者可以在修改代码后先部署到预备环境测试,通过后再发布到生产环境。
- 预览环境 是这次新增的一类测试环境。
在预备环境测试的局限
如果生产环境使用了标准版实例,我们会赠送一个预备环境用来测试,但是在预备环境测试代码存在一些局限:一方面每次修改代码后都需要手动部署,不方便且容易出错;另一方面预备环境只有一个,不能同时测试多个改动,如果有多个同时在开发的 PR,同一时间只能部署一个 PR 来测试。
预览环境如何工作
预览环境的生命周期和 PR 绑定,在创建 PR 后,云引擎会自动创建一个预览环境并部署改动,在 PR 有更新后会自动部署最新的改动,PR 合并或关闭后,预览环境也会自动删除。
开发者可以将一个泛域名(如 *.previews.example.com
)作为预览环境域名绑定到一个分组上,在预览环境被部署时,会自动关联到这个域名下的一个子域名,如 pr-3
会自动关联到 pr-3.previews.example.com
。
和其他环境类似,预览环境使用和生产环境相同的环境变量,访问相同的数据。
如何使用预览环境
要开始使用预览环境,请参考文档:使用预览环境,设置完成后,后续创建的 PR 都会自动部署到预览环境。在 GitHub 的 PR 页面可以看到部署状态:
点击 View deployment 可以打开预览链接:
在仓库首页可以看到所有环境:
点击 Environments 可以看到部署历史:
预览环境如何收费
预览环境目前在测试阶段,暂时不收费,执行与体验实例相同的休眠策略。为了避免滥用,需要生产环境是标准版才能创建预览环境,且同时最多只能有 10 个预览环境。