上线
在此历程的这一可选部分中,您将了解在代码和内容准备好移至AEMas a Cloud Service后,如何规划和执行迁移。 此外,您将了解执行迁移时的最佳实践和已知限制。
迄今为止的故事
在历程的前几个阶段中:
- 您已在中学习如何开始迁移到AEMas a Cloud Service 快速入门 页面。
- 通过阅读 就绪阶段
- 熟悉使代码和内容云可以使用 实施阶段.
目标
本文档将帮助您了解在熟悉历程的先前步骤后,如何执行向AEMas a Cloud Service的迁移。 您将了解如何执行初始生产迁移,以及在迁移到AEMas a Cloud Service时遵循的最佳实践。
初始生产迁移
在执行生产迁移之前,请遵循中概述的迁移步骤的设备和证明。 内容迁移策略和时间表 部分 实施阶段.
-
根据您在克隆上执行AEMas a Cloud Service阶段迁移期间获得的经验,启动从生产环境的迁移:
- Author-Author
- Publish-Publish
-
验证摄取到AEMas a Cloud Service创作层和发布层的内容。
-
指示内容创作团队在摄取完成之前避免在源和目标上移动内容
-
可以添加、编辑或删除新内容,但应避免移动内容。 这同时适用于源和目标。
-
记录 所用时间 对于完全提取和摄取,要估计未来的增补迁移时间表。
-
创建 迁移规划者 (创作和发布)。
增量增补
从生产环境进行初始迁移后,您必须执行增量增补,以确保您的内容在云实例上保持最新。 因此,建议您遵循以下最佳实践:
- 收集有关内容量的数据。 例如:每一周、两周或一个月。
- 确保计划增补,以避免超过48小时的内容提取和摄取。 建议这样做,以便内容增补能够适应周末时间范围。
- 规划所需的增补数量,并使用这些估计在上线日期之前进行规划。
确定迁移的代码和内容冻结时间线
如前所述,您必须计划一个代码和内容冻结期。 您可以使用以下问题来帮助您计划冻结期:
- 我需要将内容创作活动冻结多长时间?
- 我应要求投放团队停止添加新功能多长时间?
要回答第一个问题,您应该考虑在非生产环境中执行试运行所用的时间。 要回答第二个问题,您需要在添加新功能的团队和重构代码的团队之间进行密切合作。 目标应当是确保添加到现有部署的所有代码均已添加、测试和部署到云服务分支。 一般而言,这意味着代码冻结量会较低。
此外,您需要在计划最终内容增补时计划内容冻结。
最佳实践
在规划或执行迁移时,应考虑以下准则:
- 从创作迁移到创作,从发布到发布
- 请求一个生产克隆,该克隆可用于:
- 捕获资料档案库统计信息
- 迁移活动证明
- 准备迁移计划
- 确定内容冻结要求
- 在从生产环境执行迁移时,确定生产环境上的任何规模调整需求
内容传输工具最佳实践
确保上线时,您在生产环境中运行内容迁移,而不是克隆。 一个好的方法是使用 AZCopy 用于初始迁移,然后经常(甚至每天)运行增补提取以提取较小的块,并避免源AEM上的任何长期负载。
在执行生产迁移时,您应该避免从克隆运行内容传输工具,因为:
- 如果客户在增补迁移期间需要迁移内容版本,则从克隆执行内容传输工具不会迁移这些版本。 即使经常从实时作者重新创建克隆,每次创建克隆时,内容传输工具用于计算增量值的检查点也会重置。
- 由于克隆无法作为一个整体进行刷新,因此必须使用ACL查询包来打包和安装从生产环境添加到克隆环境或编辑的内容。 此方法的问题在于,除非从源和克隆中手动删除源实例上任何已删除的内容,否则这些内容将永远不会到达克隆。 这会造成生产环境中已删除的内容不会在克隆和AEMas a Cloud Service上删除。
在执行内容迁移时优化AEM源上的负载
请记住,在提取阶段,AEM源上的负载将更大。 您应该了解:
- 内容传输工具是一个外部Java进程,它使用4 GB的JVM栈
- 非AzCopy版本下载二进制文件,将它们存储在源AEM作者上的临时空间中,占用磁盘I/O,然后上载到占用网络带宽的Azure容器中
- Azcopy 将blob直接从blob存储传输到Azure容器,从而节省了磁盘I/O和网络带宽。 AzCopy版本仍使用磁盘和网络带宽提取区段存储的数据,并将其上传到Azure容器中
- 内容传输工具进程在摄取阶段对系统资源的影响较小,因为它只流式传输摄取日志,而且就磁盘I/O或网络带宽而言,源实例上的负载并不大。
已知限制
请考虑,如果在提取的迁移集中发现以下任何限制,则整个摄取将失败:
- 名称长度超过150个字符的JCR节点
- 大于16 MB的JCR节点
- 任何用户/组具有
rep:AuthorizableID
被摄取,但在AEMas a Cloud Service上已存在
- 如果在下次迭代迁移之前,提取并摄取的任何资源移动到源或目标上的其他路径。
资产运行状况
与摄取上方部分相比 不会 失败,因为存在以下资产问题。 但是,强烈建议在这些情况下采取适当的步骤:
- 缺少原始演绎版的任何资源
- 任何缺少的文件夹
jcr:content
节点。
以上两项均将于以下文件中识别及报告: Best Practice Analyzer 报告。
上线清单
请查看此活动列表,以确保顺利成功地执行迁移。
- 运行具有功能和UI测试的端到端生产管道,以确保 始终最新 AEM产品体验。 请参阅以下资源。
- 将内容迁移到生产环境,并确保相关子集在暂存环境中可用于测试。
- 请注意,适用于AEM的DevOps最佳实践意味着,当内容从生产环境向下移动时,代码会从开发环境向上移动到生产环境。
- 计划代码和内容冻结期。
- 执行最终内容增补。
- 验证Dispatcher配置
- 使用本地Dispatcher验证器,这有助于在本地配置、验证和模拟Dispatcher
- 仔细检查虚拟主机配置。
- 最简单(默认)的解决方案是包括
ServerAlias *
(在虚拟主机文件中) /dispatcher/src/conf.d/available_vhostsfolder
.
- 这将允许产品功能测试、Dispatcher缓存失效和克隆使用的主机别名正常运行。
- 但是,如果
ServerAlias *
不可接受,至少应满足以下条件 ServerAlias
除了自定义域外,还必须允许以下条目:
localhost
*.local
publish*.adobeaemcloud.net
publish*.adobeaemcloud.com
- 配置CDN、SSL和DNS。
- 如果您使用自己的CDN,请输入支持票证以配置相应的路由。
- 如果您没有使用其他CDN,请按照以下文档管理SSL和DNS:
- 管理 SSL 证书
- 管理自定义域名(DNS)
- 为了确保DNS直接转换不会引入意外问题,最好在正式启用并进行UAT测试之前,创建一个测试子域以将生产实例连接到该子域。 因此,如果您的域是example.com,则可以创建一个子域test.example.com并将其应用于生产环境。 在对域进行UAT测试期间,您需要查找适当的链接重定向、缓存和Dispatcher配置等内容。
- 自定义域名简介
- 添加自定义域名
- 管理自定义域名
- 请记住验证DNS记录的TTL集。
- TTL是在请求服务器更新之前DNS记录保留在缓存中的时间。
- 如果您的TTL非常高,则传播对DNS记录的更新将需要较长时间。
- 运行符合您的业务要求和目标的性能测试和安全性测试。
- 切换并确保无需任何新部署或内容更新即可执行实际上线。
- 创建Admin Console用户通知配置文件。 参见 通知配置文件
在执行迁移时,如果您需要重新校准任务,您始终可以引用列表。
后续内容
了解如何迁移到AEMas a Cloud Service后,您可以检查 上线后 页面来保持实例顺利运行。
Business.Adobe.com 资源