部署代码

使用Cloud Manager部署代码

注意

要了解如何在AEMas a Cloud Service中部署Cloud Manager代码,请参阅此处

配置生产管道(存储库、环境和测试环境)后,您便可以部署代码。

  1. 从Cloud Manager中单击​部署​以开始部署过程。

  2. 此时将显示​Pipeline Execution​屏幕。

    单击​Build​以开始该过程。

  3. 整个构建过程会部署您的代码。

    构建过程中涉及以下阶段:

    1. Stage Deployment
    2. 阶段测试
    3. 生产部署
    注意

    此外,您还可以通过查看日志或查看结果来查看各种部署流程中的步骤,以了解测试标准。

    Stage Deployment,涉及以下步骤:

    • 验证:此步骤可确保将管道配置为使用当前可用的资源,例如,配置的分支存在,且环境可用。
    • 构建和单元测试:此步骤将运行容器化生成流程。 有关构建环境的详细信息,请参阅了解构建环境
    • 代码扫描:此步骤将评估应用程序代码的质量。 有关测试过程的详细信息,请参阅了解测试结果
    • 部署到暂存环境

    Stage Testing​涉及以下步骤:

    • 安全测试:此步骤将评估应用程序代码对AEM环境的安全影响。 有关测试过程的详细信息,请参阅了解测试结果
    • 性能测试:此步骤将评估应用程序代码的性能。 有关测试过程的详细信息,请参阅了解测试结果

    生产部署​涉及以下步骤:

    • 申请批准 (如果已启用)
    • 计划生产部署 (如果启用)
    • CSE支持 (如果启用)
    • 部署到生产环境

    注意

    配置管道时,将启用​计划生产部署

    使用此选项,您可以计划生产部署,也可以单击​Now​立即执行生产部署。

    计划的日期和时间以用户的时区来指定。

    单击​Confirm​以验证您的设置。

    确认部署计划后,您的代码部署即告完成。

    当从上述步骤中选择​Now​选项时,将显示以下屏幕。

超时

如果留下等待用户反馈的时间,以下步骤将超时:

步骤 超时
代码质量测试 7天
安全测试 7天
性能测试 7天
申请批准 7天
计划生产部署 7天
CSE支持 7天

部署过程

以下部分介绍如何在阶段和生产阶段部署AEM和调度程序包。

Cloud Manager将构建过程生成的所有target/*.zip文件上传到存储位置。 这些工件在管道的部署阶段期间从此位置进行检索。

当Cloud Manager部署到非生产拓扑时,其目标是尽快完成部署,从而将工件同时部署到所有节点,如下所示:

  1. Cloud Manager确定每个对象是AEM还是调度程序包。

  2. Cloud Manager从负载平衡器中删除所有调度程序,以在部署期间隔离环境。

    除非另外配置,否则您可以在开发部署和暂存部署中跳过负载平衡器更改,即在非生产管道、开发环境和生产管道的暂存环境中分离和附加步骤。

    注意

    此功能预计主要由1-1-1个客户使用。

  3. 每个AEM对象都会通过包管理器API部署到每个AEM实例,并且包依赖关系会确定部署顺序。

    要详细了解如何使用软件包来安装新功能、在实例之间传输内容以及备份存储库内容,请参阅如何使用软件包。

    注意

    所有AEM对象都会部署到作者和发布者。 当需要特定于节点的配置时,应使用运行模式。 要了解有关运行模式如何允许您针对特定目的优化AEM实例的更多信息,请参阅运行模式。

  4. 调度程序对象将部署到每个调度程序,如下所示:

    1. 当前配置将被备份并复制到临时位置
    2. 除不可变文件外,所有配置都将被删除。 有关更多详细信息,请参阅管理调度程序配置。 这会清除目录,以确保不会留下任何孤立的文件。
    3. 对象将提取到httpd目录。 不可变文件不会被覆盖。 在部署时,您对Git存储库中的不可变文件所做的任何更改都将被忽略。 这些文件是AMS调度程序框架的核心文件,无法更改。
    4. Apache会执行配置测试。 如果未找到错误,则重新加载服务。 如果发生错误,将从备份还原配置,重新加载服务,并将错误报告回Cloud Manager。
    5. 管道配置中指定的每个路径都将失效或从调度程序缓存中刷新。
    注意

    Cloud Manager需要调度程序对象包含完整文件集。 所有Dispatcher配置文件都必须存在于Git存储库中。 缺少文件或文件夹将导致部署失败。

  5. 成功将所有AEM和调度程序包部署到所有节点后,调度程序将添加回负载平衡器,并且部署完成。

    注意

    在开发和暂存部署中,您可以跳过负载平衡器更改,即在非生产管道、开发人员环境和暂存环境的生产管道中分离和附加步骤。

部署到生产阶段

部署到生产拓扑的流程略有不同,以便最大限度地减少对AEM Site访客的影响。

生产部署通常遵循与上述步骤相同的步骤,但采用滚动方式:

  1. 部署AEM包以进行创作。
  2. 从负载平衡器中分离Dispatcher1。
  3. 将AEM包部署到publish1,将调度程序包并行部署到dispatcher1,并刷新调度程序缓存。
  4. 将dispatcher1重新放入负载平衡器中。
  5. 调度程序1恢复服务后,从负载平衡器中分离dispatcher2。
  6. 将AEM包部署到publish2,将调度程序包并行部署到dispatcher2,并刷新调度程序缓存。
  7. 将dispatcher2重新放入负载平衡器中。
    此过程会一直持续到部署到达拓扑中的所有发布者和调度程序为止。

紧急管道执行模式

在关键情况下,Adobe Managed Services客户可能需要将代码更改部署到其暂存和生产环境,而无需等待执行完整的Cloud Manager测试周期。

要解决这些情况,可以在​紧急​模式下执行Cloud Manager生产管道。 使用此模式时,不执行安全性和性能测试步骤;所有其他步骤(包括任何已配置的批准步骤)均在正常管道执行模式下执行。

注意

紧急管道执行模式功能由客户成功工程师按计划激活。

使用紧急管道执行模式

在启动生产管道执行时,如果此功能已激活,则可以从对话框中以正常或紧急模式启动执行,如下图所示。

此外,查看在紧急模式下运行的执行的管道执行详细信息页面时,屏幕顶部的痕迹导航会显示一个指示器,指示此特定执行使用了紧急模式。

也可以在此紧急模式下创建管道执行,这可以通过Cloud Manager API或CLI来完成。 要在紧急模式下启动执行,请使用查询参数?pipelineExecutionMode=EMERGENCY向管道的执行端点提交PUT请求,或者在使用CLI时:

$ aio cloudmanager:pipeline:create-execution PIPELINE_ID --emergency
重要

使用--emergency标记可能需要更新到最新的aio-cli-plugin-cloudmanager版本。

在此页面上