实施阶段 implementation-phase
在历程的实施阶段,您将探索用于准备代码和内容以移至AEM as a Cloud Service的工具。
迄今为止的故事 story-so-far
在此历程的上一部分中,您已通过熟悉AEM as a Cloud Service中的更改,并确定您的部署是否已准备好通过准备阶段移至云中。
本文接下来提供了有关如何使用Adobe提供的工具以确保您的代码和内容准备好移动到云的建议。
目标 objective
本文档旨在:
- 向您介绍Cloud Manager,AEM用于向AEM as a Cloud Service部署代码的持续集成和交付框架
- 使用内容传输工具快速掌握
- 描述您必须使用的代码重构工具,以便您可以实现AEM as a Cloud Service代码的现代化
使用Cloud Manager using-cloud-manager
在开始之前,您必须熟悉Cloud Manager,因为它是将代码部署到AEM as a Cloud Service的唯一机制。
Cloud Manager 使组织能够在云中自行管理 AEM。它包含一个持续集成和持续交付 (CI/CD) 框架,使 IT 团队和实施合作伙伴能够在不影响性能或安全性的情况下快速交付自定义或更新。
您可以通过参阅以下资源来熟悉使用Cloud Manager:
-
入门培训历程,了解有关Experience Manageras a Cloud Service入门的自助资源。
-
将 Git 与 Adobe Cloud Manager 集成,了解使用 Single Git 存储库来部署代码的相关信息。
-
Adobe Experience as a Cloud Service 配置,了解有关在 Admin Console 中管理产品和用户访问权限的信息。
使用Adobe提供的工具为您的内容和代码云做好准备 use-tools-to-make-code-and-content-cloud-ready
向Cloud Service过渡的确切步骤取决于您所购买的系统以及所遵循的软件开发生命周期惯例。
下图显示了此阶段涉及的主要步骤,其中涉及转换代码和内容以用于AEM as a Cloud Service:
我们将在以下章节中开始详细介绍您必须使用的工具,以便您能够实现这一点。
内容迁移 content-migration
要将内容从当前AEM实例迁移到Cloud Service实例,您可以使用Adobe的内容传输工具。
利用此工具,您可以指定要从源 AEM 实例传输到 AEM 云服务实例的所需内容子集。
内容迁移是一个多步骤的过程,它需要在不同的团队之间进行规划、跟踪和协作。
有关工具的工作方式以及Adobe建议您如何使用它的完整详细信息,请参阅内容传输工具文档。
代码重构 code-refactor
为开发设置 set-up-for-development
现在应该开始重构现有功能以与Cloud Service兼容。
首先,查看详细说明基本工具的文档,然后开始重构您的代码:
- 在规划期间,最好是列出必须重构才能与AEM as a Cloud Service兼容的区域。 您可以查看开发准则,了解有关如何重构和优化代码以进行Cloud Service的更多详细信息。
- 阅读有关如何在AEM as a Cloud Service中管理配置的信息。
- 了解如何通过下载AEM as a Cloud Service SDK来设置本地开发环境
- 最后,请熟悉AEM as a Cloud Service Java API。
此外,您还可以:
-
观看此视频,了解如何本地安装Dispatcher SDK:
embed -
观看本视频,了解如何配置Dispatcher SDK:
embed
思维方式的改变 a-change-in-mindset
在AEM as a Cloud Service中开发和运行代码需要改变思维方式。 需要注意的是,代码必须是可复原的,尤其是在实例可能随时停止时。在云服务中运行的代码必须意识到它始终在群集中运行这一事实。这意味着始终会有多个实例在运行。
AEM Maven项目需要进行某些更改才能与云兼容。 AEM as a Cloud Service要求将 content 和 code 分离为不同的包,以便部署到AEM中:
-
/apps
和/libs
被视为AEM的不可变区域,因为AEM启动后(即在运行时)无法对其进行更改。 这包括创建、更新或删除操作。 运行时对不可改变区域所做的任何更改尝试都将失败。 -
存储库中的其他所有内容(例如,
/content
、/conf
、/var
、/home
、/etc
、/oak:index
、/system
、/tmp
)都是可变区域,这意味着可在运行时更改这些区域。
通过查阅推荐的包结构文档,您可以了解更多信息。
云迁移工具 cloud-migration-tools
Adobe提供了多种工具来帮助加速某些代码重构任务。 了解这些工具及其解决的问题将降低迁移的复杂性和时间。
- 资源工作流迁移,用于自动迁移资源处理工作流的工具
- Dispatcher Converter,此工具可将您现有的Dispatcher配置转换为适用于AEM as a Cloud Service的格式。
- Repository Modernizer,一种将AEM多模式项目作为输入并将其转换为AEM as a Cloud Service项目的工具
- 索引转换器,一种将索引转换为与AEM as a Cloud Service兼容的表单的工具
- 现代化工具,一套实用工具,可用于将旧版AEM功能转换为AEM as a Cloud Service的现代且受支持的功能。
设置本地开发环境后,请参阅文档以熟悉AEM as a Cloud Service SDK。
计划代码冻结 schedule-a-code-freeze
要管理活动AEM上正在进行的代码开发以及过渡历程中的代码重构任务,Adobe建议您计划一个代码冻结期,直到完成Maven项目重组以与AEM as a Cloud Service兼容为止。
项目重组完成后,您可以基于这个新结构继续新的代码开发。 这可减少Cloud Manager管道在代码部署和测试期间的故障情况。
代码部署和测试的最佳实践 best-practices
Cloud Manager管道支持执行针对暂存环境运行的测试。
遵循以下文档中有关代码质量测试的最佳实践:
- 代码质量测试,该文档描述了编写测试脚本的过程,并说明了建议覆盖率至少为50%的概念。
- 了解自定义代码质量规则,该规则旨在描述Cloud Manager根据AEM Engineering的最佳实践创建的自定义代码质量规则。
准备上线 preparing-for-go-live
准备源系统以进行迁移涉及系统和AEM管理员级别任务。 首先,通过检查修订清理和数据存储垃圾收集任务状态,验证内容存储库是否处于维护良好的状态。 如果您正在运行AEM版本6.3(因为内容传输工具与版本6.3及更高版本兼容),建议先执行离线压缩,然后再执行数据存储垃圾收集。
建议对所有AEM版本执行数据一致性检查,以确保内容存储库处于良好状态以启动迁移活动。
需要系统管理员级别的访问权限才能安装和配置AZCopy
此外,还建议您查看任何未使用的Assets、页面、AEM项目、用户和组,以节省迁移时间。 请参阅内容存储库运行状况部分。
内容存储库运行状况 repository-health
建立生产克隆的访问权限后,继续检查存储库的运行状况。 如上一节中所述,目标是在开始迁移之前清理并压缩源上的存储库。 此步骤可能会节省大量时间,否则,在迁移开始后,将花费大量时间对问题进行故障诊断。
正在收集数据 gathering-data
收集数据可以帮助您规划迁移活动和相关任务。 提取和摄取时间特别有用,因为数据点可以与迁移集的特定大小相关联。 因此,可以推断这些数据点来制定计划:
这些数据点还可以帮助您建立KPI和其他迁移相关任务。
迁移计划 migration-plan
根据您收集的数据点(请参阅上文),您可以创建可集成到宏项目计划中的迁移计划。 此步骤将使所有关键利益相关者能够围绕迁移活动进行可视化和规划。
下表说明了典型的迁移计划:
如上表所示,遵循特定命名格式来标识迁移迭代很有帮助,例如:PRDCLONE (源AEM环境)、AUTHOR/PUBLISH (AEM as a Cloud Service环境)、CSSTAGE-AUTHOR (AEM as a Cloud Service实例)等。
一些影响您的迁移计划的重要详细信息:
所需的提取总数
- 特定环境中的创作提取和Publish提取被视为两个并行提取,因为它们彼此独立。
- 基于特定时间段内存储库增长的增补提取次数。
所需的引入总数
- 将此项目捕获到计划中很重要,因为可以将提取的集摄取到多个Cloud Service环境中。
- 增补摄取的次数。
- 将内容从Source创作迁移到Cloud Service创作实例,并将内容从Source Publish迁移到Cloud ServicePublish是避免将所有创作内容摄取到Cloud ServicePublish的最佳实践。
迁移跟踪器 migration-tracker
您可以使用迁移跟踪器记下初始运行和增补运行的时间。 这些数据点将帮助您在最终充值之前制定现实的内容冻结要求。
该跟踪器还将帮助您:
- 确定需要调整计划或上线时间线的计划员的任何偏差
- 提供可用于所有必要通信的现实状态
- 规划初始或未来的增补迁移
下表说明了一个功能迁移跟踪器:
内容迁移策略和时间表 content-strategyand-timeline
以下部分显示了可用于制定内容迁移策略和时间线的重要步骤和相关任务。
设备 fitment
迁移证明 proof-of-migration
后续内容 what-is-next
在您充分了解如何评估您的AEM安装是否已准备好迁移到云后,当我们了解如何使用所需的工具使其做好准备时,您就可以进入上线阶段。