Adobe Commerce Patching Automation工作流概述

本主题提供了有关如何使用Adobe Commerce Patching Automation执行修补程序操作的高级概述。

术语

  • 操作 — 服务执行的主要操作:

    • 应用
    • 还原
  • 阶段 — 工作流的三个阶段:

    • 初步检查
    • 修补
    • 验证
  • 环境 — 应用修补程序的Adobe Commerce云环境。

操作

Patching Automation支持两个主要的​操作,用于管理Adobe Commerce云环境中的修补程序:

  • 应用操作 — 通过安全、经过验证的进程将修补程序更改添加到代码库。 通过将修补程序文件放置到m2-hotfixes文件夹中来应用修补程序。

  • 还原操作 — 通过从m2-hotfixes文件夹中删除修补程序文件,从代码库中移除先前应用的修补程序。

IMPORTANT
还原操作仅适用于最初通过Patching Automation应用的修补程序。 使用此服务无法还原手动或通过其他方法应用的修补程序。

阶段

Patching Automation工作流使用始终按此顺序执行的三个​阶段,以确保安全可靠地应用修补程序:

  • 初步检查 — 验证修补程序兼容性和环境就绪性。
  • 修补 — 在集成环境中应用或还原修补程序。
  • 验证 — 验证修补程序应用程序并执行运行状况检查。

阶段详细信息

第1阶段:初步检查

初步检查阶段将验证修补程序是否可以安全地应用到您的环境。

发生的情况:

  • 生产环境保护 (仅限生产环境):

    • 检查存储是否处于维护模式
    • 验证cron作业是否已禁用
    • 在不满足条件时阻止修补
    • 满足条件时显示确认对话框
  • 修补程序验证 — 验证修补程序文件有效且兼容

  • 环境评估 — 检查环境准备情况和资源

  • 冲突检测 — 标识与现有代码的潜在冲突

  • 依赖关系检查 — 验证Adobe Commerce版本兼容性

阶段2:修补

修补阶段在临时集成环境中应用或还原修补程序。 在此阶段,服务会创建一个临时集成环境以安全地应用修补程序,确认其成功部署,并验证它是否通过了运行状况检查 — 然后再对实际环境进行任何更改。

此方法提供:

  • 安全 — 保持目标环境不变,直到集成环境成功部署并通过其运行状况检查
  • 回滚功能 — 如果检测到问题
  • 隔离 — 用于每个修补程序操作

阶段2a:集成环境创建

分支创建 - Patching Automation将创建一个名为{target-environment}-CAPS-{patch-id}的临时集成环境分支

环境设置 — 集成环境是作为目标环境的子项创建的

代码同步 — 集成环境继承目标环境的确切代码状态(相同的代码库)

无数据克隆 — 集成环境不接收目标环境数据(数据库、媒体或其他存储内容)的副本 — 仅使用代码库来应用和验证修补程序

资源要求 — 您的云项目的总存储容量已在合同中定义。 (通过您的帐户页面或magento-cloud subscription:info查看。) 每个环境的磁盘分配是通过.magento.app.yaml/.magento/services.yaml中的disk属性单独配置的。 有关详细信息,请参阅管理磁盘空间。 如果修补操作因存储限制而失败,请检查集成环境的磁盘使用情况(magento-cloud db:size / magento-cloud mount:size)是否与其配置的分配一致。

暂存2b:集成环境中的修补程序应用程序

安全测试 — 该修补程序应用于集成环境,而不是直接应用于您的目标环境

文件管理 — 修补程序文件放在m2-hotfixes文件夹中

Git操作 — 已提交更改并将其推送到集成环境分支

环境激活 — 激活集成环境以部署修补的代码

运行状况检查 — 激活后,Patching Automation会在继续合并之前确认以下内容:集成环境部署成功且运行正常,应用程序启动,并且其数据库和缓存连接可访问。

NOTE
如果您的项目使用外部GitHub存储库,该服务将使用Patching Automation GitHub应用程序自动处理身份验证。 除安装应用程序外,无需其他凭据。

阶段2c:合并回目标环境

同步检查 — 在合并之前,服务将确认集成环境仍处于活动状态、与目标环境保持同步且运行正常。 如果在修补过程中目标已更改,则操作将在此处停止,而不是合并

环境签出 — 服务在本地签出您的目标环境

合并操作 — 集成环境分支已合并到目标环境中

冲突处理 — 如果发生合并冲突,则该操作将失败并报告为错误 — 它不会自动解决

部署 — 将合并的更改部署到目标环境

验证 — 服务验证合并是否成功,以及环境是否同步

集成环境生命周期

在修补阶段,集成环境具有特定的生命周期:

  • 创建 — 在修补阶段开始时创建
  • 活动时段 — 在修补程序应用和测试期间保持活动状态
  • 清理 — 在合并之前,如果操作在修补阶段失败,将立即删除。 在合并后,无论验证是否通过,在验证阶段期间均被删除

阶段3:验证

验证阶段将确认修补的应用程序成功启动并通过运行状况检查。

发生的情况:

  • 应用程序运行状况检查 — 验证应用程序是否启动并正确运行,以及是否可访问其数据库和缓存连接
  • 清理 — 删除临时集成环境并更新作业状态以反映已完成。 环境的活动在您的项目活动信息源中保持可见。
IMPORTANT
与阶段1和阶段2不同,此运行状况检查在​ 之后运行,修补程序已合并到目标环境中。 ​如果失败,则不会自动回滚合并。 您的目标环境可能处于中断状态,需要手动干预(例如恢复修补程序)才能恢复。 请参阅疑难解答,以了解发生这种情况时应采取的措施。

成功指标

应用操作:

  • “作业已成功完成” — 应用了修补程序,并且未出现问题
  • “修补程序已应用” — 修补程序已存在(无需操作)
  • 已成功将修补文件放置到m2-hotfixes文件夹中
  • 所有验证检查都通过
  • 应用程序运行状况检查成功

还原操作:

  • “作业已成功完成” — 修补程序已还原且没有问题
  • “修补程序已还原” — 修补程序已还原(无需操作)
  • 已成功从m2-hotfixes文件夹中删除修补程序文件
  • 所有验证检查都通过
  • 应用程序运行状况检查成功

生产环境保障

在生产环境中应用或还原修补程序比在其他环境中应用或还原修补程序风险更大,因此Patching Automation包含两个特定于生产环境的保护措施。

开始前确认

在生产环境中开始任何应用或还原操作之前,系统会提示您确认对话框中的操作。 此确认步骤可防止在生产环境中意外启动作业。

建议的前提条件

Adobe建议在修补生产环境之前启用维护模式并禁用cron作业。 默认情况下,Patching Automation验证是否同时满足这两个条件,如果任一条件都不满足,则会通过通知阻止操作。 如果您了解在没有维护模式或启用cron作业的情况下继续处理的风险,请在UI中选中覆盖复选框以绕过此检查。

  • 维护模式 — 建议启用
  • Cron作业 — 建议禁用

相关主题

recommendation-more-help
commerce-operations-help-tools