跳过内容

渐进式发布

一个渐进式发布会保留一个频道的 稳定包 在部署另一个更新的同时,保持当前更新 发布目标 将更新推送到一个受控的设备子集上。它在您想要在一次切换整个频道之前进行真实生产验证时非常有用。

渐进式发布控制在一个Capgo频道
配置从渠道的信息页配置的滚动发布目标、百分比、缓存持续时间和自动暂停策略。

渐进式发布的工作原理

如何渐进式发布工作

每个频道都可以有两个包链接:

  • 稳定包 — 分配给频道的正常包。
  • 发布目标 ——逐渐发布的候选包。

发布需要稳定的包。 在控制台中,选择稳定的包之前,分配目标;在公共API中,一个现有的频道可以提供 versionrolloutVersion 在同一个POST请求中。Capgo为每个符合条件的设备做出随机决定,然后使用设备ID和发布ID的哈希值缓存它。 这样做使得同一设备的分组在缓存有效期内保持不变,而不是每次更新检查时都改变。

百分比变化

百分比变化

Capgo在可以的情况下保留现有的决策:

  • 增加百分比 —— 已选中的设备保持选中状态;仅有之前未选中的设备中的随机子集被添加。
  • 降低百分比 —— 已选中的设备子集中的随机设备返回到稳定版本。
  • 设置百分比为 0% —— 不会选择新的设备。已启用滚动目标的设备继续接收该目标,直到您禁用、回滚或更改目标。
  • 暂停 —— 停止新设备进入,已运行启用目标的设备继续接收该目标。
  • 禁用 —— 停止解析滚动目标;更新检查使用稳定版本。
  1. 上传并将测试版本作为频道的稳定版本分配。
  2. 上传候选包而不替换稳定包。
  3. 打开频道的 信息 选项卡,设置候选包为 目标,选择一个小百分比,并启用滚动。
  4. 观察, 日志中监控滚动,并查看频道历史。只在小分组健康后才增加百分比。
  5. 当它准备好时,促进目标升级为稳定。如果它不健康,暂停或回滚。

CLI示例

CLI 示例

开始一个分发包 1.3.0 5%:

终端窗口
npx @capgo/cli@latest channel set production com.example.app \
--rollout-bundle 1.3.0 \
--rollout-percentage 5 \
--rollout-enable

增加它而不重新配置已经选择的设备:

终端窗口
npx @capgo/cli@latest channel set production com.example.app \
--rollout-percentage 25

可以在一个步骤中将上传包设置为分发目标,仅当频道已经有一个稳定的包时:

终端窗口
npx @capgo/cli@latest bundle upload com.example.app \
--path ./dist \
--channel production \
--rollout 5

查看完整 频道 CLI 参考包 CLI 参考 为每个发布选项。

暂停、回滚或推进

标题:暂停、回滚或推进
动作它做什么
暂停停止新设备进入发布。已启用目标的设备保持不变。
恢复允许新合格设备再次进入。
关闭停止解析回滚目标并使用稳定包。
回滚清除目标,禁用回滚,重置百分比为 0%,并将设备返回到稳定状态。
推广context: Capgo 营销网站页面。角色:部分或页面标题。位置:页面 affiliate.astro。消息关键字 `affiliate_step2_title` (Affiliate Step2 Title)。

将回滚目标设置为稳定包,然后清除回滚状态。

一次使用一个终端操作:
# Stop adding devices while you investigate
npx @capgo/cli@latest channel set production com.example.app --rollout-pause
# Make the candidate stable for everyone
npx @capgo/cli@latest channel set production com.example.app --rollout-promote
# Discard the candidate and return to stable
npx @capgo/cli@latest channel set production com.example.app --rollout-rollback

复制到剪贴板

保持目标包可用,直到您推广它或回滚它。作为稳定包或回滚目标链接的包将被保护免于删除。

自动暂停策略

Capgo 每五分钟可以评估一次启用的滚动部署,并在其失败信号超过您的阈值时采取行动。它测量滚动部署目标在所选频道和时间窗口中的安装和失败次数,然后使用威尔逊置信下限,而不是原始失败率。

自动暂停默认禁用。配置这些字段在频道的 信息 tab 或使用 channel set:

  • 失败率阈值 以基点(500 = 5%)。阈值是触发策略所需的。
  • 时间窗口 分钟(默认值:60)。
  • 置信度 之间 01 (默认: 0.95).
  • 可选的最小尝试次数和失败次数,以避免基于小样本的操作。
  • 冷却 分钟(默认:60),防止重复操作。
  • 动作: pause, rollback,或 notify.

pause 停止新发布的曝光 rollback 清除目标并返回稳定状态,并 notify 发送发布警报而不改变发布分发。

终端窗口
npx @capgo/cli@latest channel set production com.example.app \
--auto-pause-enabled \
--auto-pause-failure-rate-bps 500 \
--auto-pause-window-minutes 60 \
--auto-pause-confidence 0.95 \
--auto-pause-min-attempts 100 \
--auto-pause-min-failures 5 \
--auto-pause-action pause \
--auto-pause-cooldown-minutes 120

API 和控制台控制

API和控制台

您可以通过 公共频道API 或控制台:

  1. 打开一个应用,然后 频道.
  2. 上下文:Capgo发布频道功能名称。页面/区域:Capgo解决方案营销页面。角色:短的UI标签或导航项。见于:页面解决方案/白标签.astro。消息键`solutions_white_label_visual_cell2_value`(解决方案白标签视觉单元2值)。
  3. 选择频道。 打开.
  4. 信息 使用 渐进式发布

对于通用渠道路由和设备优先级,请参见 渠道对于紧急包恢复,请参见 回滚实时更新.