跳过主要内容

Capgo: 回滚管理指南

了解如何使用流程化更新、自动恢复选项和稳定性最佳实践高效地管理应用程序回滚。

马丁·多纳迪厄

马丁·多纳迪厄

内容营销人员

Capgo: 回滚管理指南

回滚管理对于修复导致崩溃或错误的应用程序更新至关重要。使用 应用程序更新 __CAPGO_KEEP_0__ Capgo快速恢复到稳定版本,无需等待应用商店审批。这里是如何做到的 Capgo 简化回滚管理:

  • 快速恢复: 回滚平均仅需114毫秒。
  • 自动更新: 无需人工干预 - Capgo 会自动处理更新和回滚。
  • 安全流程: 全程加密确保安全更新。
  • 易于设置: 安装包并在几分钟内配置您的应用程序。 @capgo/capacitor-updater 快速恢复到稳定版本,无需等待应用商店审批。这里是如何做到的简化回滚管理:
  • Update Channels: Control updates with staging, beta, and production environments.
  • Manual & Automated Rollbacks: Choose between hands-on or automatic recovery based on your needs.

Quick Setup Steps:

  1. Install @capgo/capacitor-updater and sync your project.
  2. Configure capacitor.config.json for updates.
  3. Set up update channels (staging, beta, production).
  4. Test rollback functionality before production deployment.

Capgo ensures your app stays stable and user-friendly by addressing issues instantly. Whether you prefer manual control or automated triggers, Capgo offers a reliable safety net for your Capacitor 应用。

设置 Capgo 回滚管理

Capgo

To manage rollbacks effectively with Capgo, you’ll need to install its core package, configure your app’s settings, and set up update channels. This ensures smooth deployments and a reliable safety net for handling issues.

为了有效地管理回滚,需要使用Capgo,需要安装其核心包,配置应用程序设置,并设置更新通道。这确保了顺利的部署和可靠的安全网来处理问题。

__CAPGO_KEEP_0__ @capgo/capacitor-updater 开始通过添加 Capacitor project__CAPGO_KEEP_0__ 项目中。

npm install @capgo/capacitor-updater
npx cap sync

安装完成后,更新 capacitor.config.json 文件以启用更新功能。以下是一个示例配置:

{
  "plugins": {
    "CapacitorUpdater": {
      "autoUpdate": true,
      "updateUrl": "https://api.capgo.app/updates",
      "privateKey": "your-private-key-here",
      "version": "1.0.0",
      "directUpdate": false
    }
  }
}
  • 设置 autoUpdatetrue 允许自动更新。
  • 保持 directUpdatefalse 确保在部署之前更新被验证。

接下来,链接您的应用到Capgo的更新系统。注册账号在 capgo.app,然后使用CLI:

npx @capgo/cli app add your-app-id

此步骤将您的项目连接到Capgo,启用版本跟踪和用户分段,以便精确回滚管理。

With this initial setup complete, you can configure update channels to control and monitor deployments.

设置更新通道

更新通道有助于管理更新的分发,允许进行彻底的测试和快速回滚。

要创建通道,请使用 Capgo 的 CLI 工具。首先设置三个关键通道以实现高效的回滚管理:

npx @capgo/cli channel add staging
npx @capgo/cli channel add beta  
npx @capgo/cli channel add production

每个通道都有特定的用途:

设置目的示例值
通道名称标识更新流prod, beta, staging
版本模式定义允许的版本格式1.0.*
用户访问指定哪些用户接收更新specific-group-id
更新频率决定更新何时分发立即、计划

在生产环境中使用稳定的版本模式,如 1.0.*,而在测试环境中可以使用更灵活的格式进行测试。

为了进一步优化回滚管理,设置用户分段。这样可以在回滚时针对特定用户组进行操作,减少干扰同时有效地解决问题。

通过定义基于错误率、性能指标或用户反馈的触发器来自动回滚。这些触发器确保问题能够及时解决,而无需人工干预。

在部署到生产环境之前,测试回滚功能在测试环境中。这个步骤确保回滚系统在真实环境中正常工作。

最后,整合您的更新频道与您的 CI/CD管道。 这种自动化流程简化了部署和回滚,保持您的工作流程高效,同时为未知问题提供了安全网。

如何执行回滚:Capgo

Capgo的更新验证系统确保您的应用程序保持稳定,其回滚功能则基于此提供了手动和自动恢复选项。了解如何有效地使用这些方法可以帮助您快速恢复功能,当出现问题时。

手动回滚步骤

手动回滚允许您控制选择并应用稳定的版本,使您能够在采取行动之前评估情况。

要开始,请在您的 capacitor.config.json 文件中设置 autoUpdatefalse。 这会停止Capgo自动管理更新,给您完全控制更新过程的权力。

一旦自动更新被禁用,请使用 CapacitorUpdater.download() method to fetch the desired version and CapacitorUpdater.set() to apply it. Here’s an example:

import { CapacitorUpdater } from '@capgo/capacitor-updater'

const version = await CapacitorUpdater.download({
  url: 'https://github.com/Cap-go/demo-app/releases/download/0.0.4/dist.zip',
})
await CapacitorUpdater.set(version); // Sets the new version and reloads the app

After applying the downloaded version using CapacitorUpdater.set(), the app will automatically reload with the restored bundle. To finalize the rollback process, always call CapacitorUpdater.notifyAppReady() to confirm the update is stable.

“Failing to call this method will cause your application to be rolled back to the previously successful version (or built-in bundle)” [2]

If this confirmation step is skipped, Capgo assumes the rollback was unsuccessful and could initiate another rollback to the last known working version.

For situations requiring quicker action, automated rollbacks can handle recovery without manual involvement.

Automated Rollback Triggers

Automated rollbacks are ideal for environments where constant monitoring is critical. They minimize downtime by detecting problems and reverting to stable versions automatically. These triggers are based on health checks and predefined error thresholds.

Set up health checks to monitor essential app functions, such as user authentication or data loading. When these checks detect issues, automated triggers can immediately roll back to a stable version.

为了获取所需的版本并应用它。以下是一个示例: 在应用下载的版本后,使用 应用程序将自动重新加载并恢复捆绑包。为了最终确认回滚过程,请始终调用 确认更新稳定后,才能完成回滚过程。如果忽略此确认步骤,__CAPGO_KEEP_0__ 将假设回滚失败并可能触发回滚到最后一次工作版本。 在需要更快速行动的情况下,自动回滚可以在不需要人工干预的情况下处理恢复。 自动回滚触发器 自动回滚在监控环境中非常理想。它们通过检测问题并自动切换到稳定版本来最小化停机时间。这些触发器基于健康检查和预定义的错误阈值。 设置健康检查来监控应用程序的关键功能,例如用户身份验证或数据加载。当这些检查检测到问题时,自动触发器可以立即回滚到稳定版本。 使用性能指标定义错误阈值来确定是否需要回滚。以下表格突出了需要考虑的关键组成部分:

组件目的实现提示
版本控制跟踪部署历史持续监控进度和结果
错误阈值定义回滚触发器使用特定指标自动回滚
响应协议概述恢复步骤设置即时问题处理的工作流

根据您的应用程序环境和风险承受能力,您可以选择手动或自动回滚.

“A rollback is redeploying a prior version of the code. It is the 在生产环境中,稳定性和安全性至关重要,手动回滚允许您进行细致的评估和控制。另一方面,测试和阶段环境可能更适合自动回滚的速度和效率。结合两种方法确保平衡的策略——自动触发器处理紧急故障,而手动回滚则保留用于需要人类监督的复杂问题. 回滚管理最佳实践 [3]

有效的回滚策略通过结合渐进式部署和详细的回滚后分析来保护用户免受不稳定更新的影响.

分阶段发布和风险减少

分阶段发布作为应用程序更新的安全保障。相反,不要一次性将更改推送给所有用户,而是将更新分阶段发布给较小的用户组。首先选择代表1-5%的用户组。确保这个用户组包括各种设备类型、操作系统和使用行为的多样化组合。监控他们的性能24-48小时,以捕捉任何早期迹象的麻烦。

__CAPGO_KEEP_0__

__CAPGO_KEEP_0__

功能标志可以成为救命稻草。它们允许您立即禁用特定功能,而无需进行全面的回滚 [4].

制定明确的标准来推进滚动发布阶段。例如,您可以根据设备稳定运行的小时数或崩溃阈值来做出决定。一个好的经验法则是在扩大滚动发布之前,至少稳定1,000个设备小时。工具,如Capgo的更新频道,会使此过程更容易,让您可以将更新分配给特定的用户组,例如beta测试者或早期采用者,确保对谁和何时更新有精确的控制

这是滚动发布的示例

滚动发布阶段用户百分比监控持续时间成功标准
初始测试1–5%24–48小时崩溃率小于0.1%且正常运行
早期采用者10–20%48–72小时稳定性能和积极的用户反馈
通用发布100%持续无关键问题和持续性能

一旦回滚稳定,转移注意力到回滚后监控,以确保一切顺利

回滚后监控和诊断

完成回滚后,进行彻底的监控以确认其成功并防止未来问题

设置实时警报并跟踪关键性能指标,如崩溃率、应用启动时间、内存使用率和网络性能。这些指标对于评估稳定性和用户体验至关重要。在生产环境中,目标是达到99.9%的基准稳定性,并确保您立即收到性能低于此水平的警报

继续监控至少72小时以确认应用已恢复到稳定状态。重点关注直接影响用户的指标,如应用启动速度或特性响应速度

使用清晰的升级程序的错误跟踪工具。自动化报告,概述回滚事件,包括原因、受影响用户和解决时间,可以帮助您的团队从每个事件中学习。详细记录这些事件,包括触发器、解决步骤和所学的经验,对于改进流程和培训团队至关重要

A进步式监控方法也可以有效。立即在回滚后开始密集观察,然后随着稳定性的确认逐渐减少。这一方法确保了全面监督与资源利用效率的平衡。

故障排除回滚问题

回滚可能会遇到一些问题,会干扰用户体验。快速识别并解决这些问题的能力是保持一切顺利运作的关键。

修复失败的校验和验证

校验和验证失败是回滚过程中可能遇到的更严重的问题。这些失败表明更新文件在传输或存储过程中可能被损坏或篡改。要解决这个问题:

  • 检查源文件和回滚包的完整性。
  • 如果需要,重新下载或从版本控制系统中重新生成包。

Capgo的端到端加密帮助在传输过程中保护文件,但在本地存储中仍然可能出现问题。如果多个用户受到影响,请清除他们的本地缓存以删除受损的临时文件。您可以通过Capgo的更新通道自动化此过程,通过推送一个小的配置更新强制下载最新的文件。

另外,还要考虑下载时的网络问题。一旦校验和问题解决后,就可以转移到版本冲突和网络挑战上。

处理版本冲突和网络问题

当应用程序的不同部分没有正确同步时,会出现版本冲突。如果发生这种情况,请立即回滚到最后一个稳定的构建,以最小化中断。使用Capgo的更新通道,可以将回滚限制到特定用户组进行测试,然后在更广泛的范围内发布。

详细的日志记录对于诊断这些冲突至关重要。查找错误,如API版本匹配错误或数据库架构问题,以确定问题是否出在后端更改、客户端更新或两者中。

另一方面,网络问题可能会完全阻止回滚尝试。像连接超时、SSL证书错误或代理配置错误这样的问题是常见的罪魁祸首。要解决这些问题:

  • 确保所有更新端点、证书和版本标识符都是最新的。
  • 在用户遇到问题的相同环境中测试网络连接。

在企业环境中,代理和防火墙规则可能会干扰更新。与企业客户合作,确认Capgo的更新端点已在白名单中,并且 安全策略 不会阻止回滚过程。

测试场景实现方法成功标准
版本不符部署不兼容的包版本回滚自动激活
受损包上传损坏的更新检测错误并恢复系统
网络故障模拟网络故障从最后一个稳定版本恢复
API超时引入API响应延迟使用fallback机制处理延迟

通过测试各种场景,如版本不匹配、受损包、网络故障和API超时等,确保回滚机制在真实世界中准备就绪。这一主动的方法在生产环境中出现问题时会增强信心。

结论

拥有可靠的回滚策略对于维持应用的稳定性至关重要 Capacitor 应用,并且 Capgo 提供了工具来使这个过程变得顺畅。它结合了高效的 更新管理 和强大的安全措施来确保您的应用始终可靠且受保护。

Capgo 的独特之处在于其 一键回滚功能,它让您快速回滚到之前的版本,如果出现问题。这种方法可以最小化停机时间并尽量减少对用户的干扰。除此之外,平台还确保遵守苹果和谷歌的要求,同时使用 端到端加密 来保护应用程序在生产环境中的安全。

“Capgo 是开发人员想要提高生产力必不可少的工具。避免对 bug 修复进行审查是黄金的。” - Bessie Cooper [1]

这些功能简化工作流程并提供立即解决方案,应对挑战时。通过CI/CD和semantic-release自动化,Capgo简化回滚流程。无论您面临校验和验证错误、版本匹配错误还是网络中断,Capgo的基础设施和监控工具都有助于您解决问题,避免问题升级到用户。

对于生产中管理Capacitor应用的团队,Capgo提供了安全性、可靠性和简单性所需的回滚策略。已有超过2,000个应用程序信赖该平台,您选择的解决方案既提高了开发人员的效率,也提高了用户满意度。 [1].

当问题发生时,Capgo确保您可以立即解决问题。

常见问题

::: faq

Capgo如何在回滚时确保应用程序更新的安全性?

Capgo采用 端到端加密 以保护应用程序更新的每个阶段,从创建到交付。这样可以确保更新始终受到保护,仅限于授权用户通过严格的访问控制。

为了确保更新的完整性,Capgo使用 加密检查 例如散列和数字签名。这些工具确认更新未被篡改。如果出现问题,平台的自动回滚功能可以快速安全地回滚到较早的版本。这些功能共同确保您的应用程序更新既安全又可靠。 :::

::: faq

使用 Capgo 自动回滚而不是手动回滚的好处是什么?

__CAPGO_KEEP_0__ Capgo 提供了一个比手动回滚更快、更可靠、更无错误的替代方案。当更新后出现问题时,这些回滚可以快速将应用程序恢复到稳定的版本,减少停机时间并保持用户体验的流畅性。

自动化的关键在于它可以从等式中移除人类错误。通过坚持预定义的最佳实践,它每次都确保一致性。这不仅节省了宝贵的时间,还促进了应用程序管理的更稳定和高效的方式。对于使用 Capacitor 的开发人员,自动回滚提供了一个无压力、可靠的方式来处理更新。 :::

::: faq

如何在发布更新到生产环境之前使用 Capgo 测试回滚功能?

要有效地测试 Capgo 的回滚功能,请先设置一个 测试环境。这样可以在测试环境中测试更新,避免在发布到生产环境之前出现问题。请邀请 测试者 To 早期捕捉潜在问题,并确保您有 实时监控 来跟踪性能并快速检测错误。还要定义明确的 回滚触发器,例如达到特定错误率或接收特定用户反馈,以便您知道准确何时回滚更新。

在发布任何更新之前,彻底测试回滚过程。确保它可以无缝地返回到之前的稳定版本,而不会引起额外的问题。模拟失败场景是另一个好方法来验证回滚机制是否按预期工作。最后,利用Capgo的 分析工具 来监控更新性能和用户参与度。这些洞察力可以指导您在何时回滚可能有所必要。 :::

Keep going from Rollback Management with Capgo: Guide

继续使用__CAPGO_KEEP_0__: Rollback Management with Capgo: Guide __CAPGO_KEEP_0__:指南中的回滚管理和版本控制,连接它 回滚 为回滚的实现细节 版本目标 为版本目标的实现细节 更新行为 为更新行为的实现细节 打包 为打包的实现细节, 和 Capgo 实时更新 为Capgo 实时更新的产品工作流程

Capacitor 应用的实时更新

当有 web 层 bug 时,通过 Capgo 直接将修复推送给用户,而不是等待几天的 app store 审批时间。用户在后台接收更新,而原生变化仍然在正常的审批路径中

立即开始

最新博客文章

Capgo 为您提供创建真正专业的移动应用所需的最佳见解。