迁移生产站点 production-migration

使用此工作流将商定的页面列表移动到Edge Delivery Services,即提供网站的Adobe Experience Manager服务。 从每个模板的示例页面开始,确定其内容和设计如何映射到新站点,并仅在示例在作者将使用的编辑器中工作后导入更多页面。 如果对您来说是新术语,例如块、默认内容或预览,请参阅如何构建和更新您的网站和塑造内容结构。

对于一些演示页面或第一次评估,请使用较小的演示和试用工作流。 在发布之前,它们不需要生产站点所需的检查。

同意范围和目标 scope

迁移负责人和架构师同意范围和目标。 您需要获得授权才能读取源、修改目标存储库并将内容和资源写入目标。 同意哪些人签署结果以及哪些人授权发布。 如果某些页面需要登录,请使用专用只读帐户设置受保护的网站身份验证。 如果源阻止自动访客,请在编目之前与其管理员安排访问权限。 查看具有机器人保护的Source站点。

记录:

输入
要保留的决定
Source清单
域、页面URL、区域设置、文档、资产以及排除或弃用的内容。
代码
存储库、工作分支、审核策略和版本所有者。
内容目标
项目使用的两个存储选项中的哪一个。
设计
保留源外观或应用新设计。 命名批准的引用和版本。
行为
导航、表单、搜索、商务、同意、分析、个性化以及其他必须运行的集成。 识别其所有者。
URL策略
要保留的目标路径、重定向、规范URL、语言关系和链接。
恢复
代码基线、内容备份和恢复过程以及覆盖或发布的权限。

页面导入会复制每个页面的内容和设计。 集成和CMS功能在源的服务器上运行,如搜索、表单处理、个性化规则和内容继承,因此导入操作在每页上都只复制其输出。 将它们列在​ 行为 ​下,并决定每个项目在新站点上的工作方式。 请参阅限制。

控制台工作区一次只能在一个站点上工作。 在具有多个站点的程序中,同意其订单,并在使用​ 切换站点 ​打开下一个站点之前,推送和上传每个站点的工作。

重新启动在Experience Manager上运行的网站 relaunch-aem-site

您的团队决定重新启动后,工作流程与任何其他源的工作流程相同。 这些点特定于Experience Manager源:

  • 您的其他站点:​代理读取源站点的页面,并且不更改源。 它仅写入新站点的Git存储库和您选择的内容目标,因此贵组织的其他Experience Manager站点会保持原样运行,源站点也会保持原样运行,直到您在版本中切换其域为止。 通过Experience Manager创作,上传操作将页面写入/content/{site-name},并将图像写入站点的Assets文件夹下,并替换该路径上已存在的任何页面,因此请同意创作实例的管理员。 查看上传内容。
  • 代理如何读取源:​代理读取每个页面时,浏览器会渲染它,而不是读取源的组件、模板或存储库。 因此,组件、体验片段和内容继承不会延续:它们的输出会显示在每个页面上。 确定在新网站上保留一次的共享内容。 查看项目剩余工作。
  • 内容存放位置:​对于任何源,目的地都是您的选择;请参阅内容的存储位置以及作者如何编辑内容。 Experience Manager创作需要一个Experience Manager as a Cloud Service创作实例,因此在其他位置运行的创作实例不能作为目标。
  • 存储库:​如果您的代码位于通过Cloud Manager连接的存储库中,则控制台也可以与其配合使用。 查看使用其他Git主机。
  • 您团队的决定:​语言、市场之间的继承和审批工作流是您团队的决定。 导入会为您提供其源路径上的页面,而不是这些结构。 在编录之前,将其与其他范围决策一起记录。

准备和编录 prepare

  1. 如果内容进入Experience Manager创作,请遵循共享控制台设置,或Experience Manager创作设置。 重用现有项目的配置,而不是重新创建它。
  2. 要求代理为授权站点编目: Scope site https://www.example.com。 站点目录将发现页面并将它们分组为模板(共享布局的页面)和块变体。
  3. 在Planning视图中查看目录。 更正模板和块分组并调查失败的URL。
  4. 将搜索到的URL与您同意的页面列表进行比较。 添加发现错过的页面,并明确决定失败、跳过、重复或排除的URL。
  5. 为每个模板和重要变体选取一个示例页面。 通过大量交互覆盖长内容、异常图像、区域设置和页面。

编录会读取源,但不会导入任何内容。 状态为​ complete ​的运行仍可以有失败的页面;请参阅结果和状态。 在继续下一步之前,请为每个作用域中的URL提供一个模板或批准的排除项。

代理如何大规模迁移 migration-at-scale

代理不会通过AI模型发送每个页面。 分别解释每个页面不会扩展到数千页,并且模型每次处理相似页面的方式可能会略有不同。 相反,AI模型会在每个模板的一个示例页面上执行映射,而代理会将该映射转换为在模板的其他页面上运行的代码:

  1. 将页面分组为模板。 站点目录将源站点的页面分组为模板,这些模板是共享布局的页面。 如果您迁移没有目录的页面,则您命名的每个页面都会启动自己的模板。
  2. 迁移示例页面。 对于每个模板,代理首先会迁移一个显示模板典型布局的真实页面,理想情况下,会迁移模板的大部分块和变体。 站点目录为每个模板建议一个。 如果模板的其他页面显示其更多块,请改为选择该页面:仅当导入的页面需要块时,才稍后添加示例页面缺少的块。 AI模型将示例页面的内容映射到默认内容和块,并创建它需要的块或重用现有块。
  3. 生成导入脚本。 代理为模板编写导入脚本:一部分是解析器,用于从源HTML中提取每个块的内容,另一部分是转换器,用于清理整个页面。 脚本是项目的tools/importer/文件夹中的JavaScript文件,在Git中用其余代码进行版本控制。
  4. 优化模式,而不是优化页面。 当您请求更正时,代理会更改生成结果的块或导入脚本,而不是编辑一个页面的输出。 更正随后将应用于模板的每个页面,以后的模板将重用已存在的块。
  5. 批量导入其余页面。 批量导入在模板的其他页面上运行导入脚本,而不用AI模型来解释每个页面。 然后,代理会将导入的页面与其源页面进行比较,修复差异较大的页面的导入脚本,并再次导入这些页面。

在导入所有模板之前,验证每个模板的一些页面。 请参阅批量导入。

这同样适用于内容结构中的更改,例如哪些内容会成为块或页面划分为多个部分:更改导入脚本。 它是代码,会像其余部分一样进行审阅和合并,下次导入时会将它应用于模板的每个页面。 对一个导入页面的编辑将保留在本地模式,再次导入模板将覆盖该模式。

若要更改模板和块本身,例如将页面移动到另一个模板或使一个块成为另一个块的变体,请使用Planning视图或在聊天中询问。 代理在下次生成块或导入页面时遵循这些更改,并且已导入的页面不会更改。 若要合并设计,请参阅重新设置站点样式。 要合并块代码,请参阅重构而不更改结果。

NOTE
控制台中的模板是一组具有相同布局的源页面,代理使用它们来规划和导入它们。 它不是template页面元数据,它将类添加到页面的body元素,以便项目的代码可以不同地设置这些页面的样式。 要将两者保持一致,请要求代理在导入脚本中设置元数据,以便模板的每个页面在导入时都能获得该元数据,例如:“对于文章模板,请将导入脚本中的页面元数据template设置为article,并缩小文章页面的主列。”

验证示例页面 representatives

迁移主管、设计人员和作者一起确定了第一个模板。 从它的一些页面开始。 例如:

仅迁移以下产品页面: https://www.example.com/products/tents、https://www.example.com/products/backpacks和https://www.example.com/products/boots。 将内容存储为/products下的基于文档的内容。 保留批准的文本、链接、元数据和图像含义。 重用项目的块和内容约定。 报告缺少的内容以及导入无法重现的交互。 请勿上传、推送或发布。

将示例URL和路径替换为您自己的,对于Experience Manager创作,假定内容存储在JCR中。

  1. 查看内容结构:代理选择的部分、默认内容、块、变体和部分样式。 作者将编辑此结构中的每个迁移页面,因此请将其放置在示例页面上。 请参阅塑造内容结构。

  2. 将导入的文本、链接、图像、元数据和节顺序与源进行比较。 当模式错误时,请修复导入脚本,而不是页面。 查看代理如何按比例迁移。

  3. 应用源样式或遵循重新设计工作流。 在优化单个块之前检查全局样式。

  4. 与页面导入分开完成共享的页眉、导航和页脚。 代理会迁移它们(包括页脚图像)一次,以便整个网站都可以共享一个页眉和一个页脚。

  5. 将示例页面上传到内容目标,然后编辑、保存、重新打开并预览该页面:

  6. 在导入更多页面之前,请记录从源到输出的商定映射、块模型、设计决策和已知例外。

如果作者无法编辑看起来正确的页面,则该页面仍会失败。 对于Experience Manager创作,您还可以在导入更多内容之前检查块模型、生成的组件配置、转换错误以及图像的存储位置。

塑造内容结构 content-structure

作者在导入时根据代理选择的结构编辑每个迁移的页面,批量导入会在模板的每个页面上重复该结构。 Edge Delivery Services页面由包含默认内容和块的部分构成;请参阅标记、部分、块和自动阻止。 代理遵循David的模型,并保持设计允许的结构简单明了,因为每个块和变体都是作者需要了解的一件事。

结构
代理在导入时执行的操作
如何驾驶
节
在页面的背景或布局发生更改时拆分页面。 页面各部分之间的空白是间距,而不是部分。
要求它合并作者视为页面一部分的部分,或拆分执行两项工作的部分。
默认内容
保留作者可在文档中键入的所有内容作为默认内容:标题、段落、列表、链接和内联图像。 CSS可按照设计需要进行布局。
在为此类内容创建块的位置,请要求它使用默认内容并使用CSS设置其样式。
块
将块用于重复项、交互式组件和并排固定的布局。 流动和包装的相似项目会变成卡片;列并排保留一组固定的不同内容。 照片背景属于其块,例如英雄。 它在创建项目块之前会重用该项目的一个块。
命名模式应使用的块,或要求它重复使用现有块。 请参阅创建块之前的撰写。
阻止变体
为作者选择的外观的小差异创建一个变体,如cards-compact。 包含不同字段或不同作业的内容将获得自己的块。 可选内容和不同数量的项不会构成变体。
要求它合并仅略有不同的变体,或将字段不同的变体转换为自己的块。
节样式
当节的背景与页面的背景不同、对齐方式不是默认设置或其默认内容位于块旁边时,在节元数据中为其提供样式。 它在该外观之后命名样式,如dark、light-grey或centered。 部分中的文本和按钮从样式中获取各自的颜色,因此,仅使用颜色永远不会创建块或变体。
就区域样式及其名称的列表达成一致,以便作者能够在每个页面上从这些样式中进行选择。

控制结构:

  1. 在迁移之前,请查看​ Planning ​视图中的目录,并更正其中的块名和分组。 请参阅优化目录。
  2. 将项目的块、变体和节样式记录在AGENTS.md中,以便代理在以后的页面和以后的会话中重用它们。 请参阅文档内容惯例。
  3. 检查预览面板的​ 文档视图 ​中的每个示例页面,该视图显示其节、块和默认内容。 查看内容查看次数。
  4. 更正导入脚本中的错误模式,以便批量导入在每个页面上重复进行更正。 查看代理如何按比例迁移。
  5. 要求作者编辑示例页面。 如果他们在使用哪个块、变体或样式上犹豫不决,那么有太多选择。

保留作者很少做出的选择。 设计系统应该做出作者不应做出的决定:当一个块需要多个变体或选项时,询问其中是否属于该设计。

提交前预估 estimate

目录和第一个示例页面会根据网站所需的工作量而不是页面数量为您提供估计值:

  1. 为站点编目。 目录会列出模板、块变体、区域设置以及失败的URL。 请参阅准备和编录。
  2. 验证主模板的示例页面。 记录每个模板所需的内容:新块、对导入脚本的更正、样式以及对内容结构的更改。
  3. 根据示例页面需要调整其余模板的大小。 以后的模板会重用已存在的块,因此请计算每个模板添加的块。 具有自身布局的页面将计为自己的模板。
  4. 添加导入不涵盖的项目:您在范围中的​ 行为 ​下记录的行为,以及您的团队决定和构建的项目工作。

针对每个URL🔗的第一个批次的记录检查估计值。

作为团队工作 collaboration

多个人员可以使用代理处理同一个项目,每个人员都在自己的控制台工作区中。 他们通过Git共享代码,并通过内容目标共享内容。 该控制台不会显示谁正在处理什么内容,也不会将两个人的更改合并到同一页面,因此可以就谁正在处理什么内容达成一致,并继续相互交谈。

有代理而不是没有代理的范围更重要。 单个请求可以更改许多文件,因此当两个人同时更改相同的块或样式时,必须手动解决多个文件之间的冲突。

领导迁移 phases

迁移分阶段运行。 座席在每个任务中执行大部分重复工作,您的团队将做出决策并签署结果。 让某个人(例如迁移主管)运行第一个阶段;其他人在完成块和导入脚本后即可加入。 查看作为团队工作。

可视参与者可从示例页面阶段开始处理样式设置。 请参阅进行可视化更改。

先从一个人开始,然后划分工作 divide-work

第一步为其他所有内容构建奠定了基础:全局样式、第一个块和第一个模板的导入脚本。 让一个人设置它们。 在划分工作之前,请检查这些块是否适合实际内容并且易于作者使用。 请参阅塑造内容结构。

一旦团队就各个块达成共识,请划分工作,以便人们更改不同的文件:

  • 按块:​一个人精简卡片块,而另一个人构建轮播。
  • 按模板:​每个人都会细化不同模板的导入脚本。 查看代理如何按比例迁移。
  • 根据专业知识:​开发人员构建集成时,设计人员会优化现有块的样式。

不要同时为两个用户指定相同的块、全局样式或相同的导入脚本,除非他们同意如何进行协调。

以小步骤共享代码 share-code

  1. 同意共享分支,如main或开发分支。 在代码视图中,每个人使用​ Switch分支 ​将其工作区切换到该工作区。
  2. 向座席发出的每个请求都侧重于一个块、模板或任务。 使用​ 创建新PR ​立即推送结果:控制台将您所做的更改推送到新分支,在共享分支中打开拉取请求,然后将您的工作区保留在新分支上。
  3. 经常审核和合并拉取请求。 小更改的冲突减少,审查速度更快,并且保持打开数天的拉取请求会产生冲突。
  4. 在开始新任务之前,切换回具有​ 切换分支 ​的共享分支,并使用​同步 > 提取 > 代码​提取该分支,以便在每个人的合并工作的基础上进行构建。

如果提取不可用,或报告冲突,请参阅如果其他人更改了分支。

频繁的小幅度推送还可以让团队了解代理更改的内容及原因。 要获取每个请求的一个提交,请参阅保留每个请求的记录。

协调内容更改 share-content

内容没有合并。 您的工作区会保留页面的副本,并且上传会将内容目标中的页面替换为您的副本。 如果两个人更改同一页面,则上次上载成功,而另一个人的更改丢失。 将每个页面或页面集一次授予一个人。

要获取其他人上传到您工作区的页面,请执行以下操作:

  • 在内容视图中打开显示云图标的页面。 控制台会将其下载到您的工作区。
  • 在基于文档的项目中,选择​同步 > 提取 > 内容​以从Experience Workspace下载每个页面。 它替换您的本地副本,包括尚未上传的编辑,因此请上传要先保留的编辑。

批量导入 batches

验证示例页面后,使用目录批量导入工作流和批量导入提示。

  1. 使用模板的导入脚本导入小批次。
  2. 检查普通页面和边缘案例。 如果导入脚本错误,请更正脚本并再次导入受影响的页面,然后再继续。
  3. 为每个源URL保留记录:目标、导入状态、错误、注销和任何批准的排除项。
  4. 按模板继续模板。 分别发现、分析、导入、失败、跳过和签出的页面计数。
  5. 在更改共享样式、导入脚本、块模型或块代码时,重新检查之前的示例页面。

一旦作者开始编辑内容目标中的迁移页面,其页面就会成为事实来源。 再次导入或上传这些页面会覆盖作者的工作,并且更正后的导入脚本不会合并这些页面,因此请先与作者达成一致。

完成站点 complete-site

自动导入是交付的一部分。 实施和验证商定的要求,包括:

  • 页眉、页脚、导航、内部链接和错误页面。
  • 图像、下载、字体、资产权限以及任何保留的Dynamic Media引用。
  • 标题、描述、规范URL、结构化数据、重定向、站点地图以及所需的区域设置关系。
  • Forms、搜索、商务、帐户功能、analytics、同意和其他集成。
  • 作者指南、操作所有权、访问和部署配置。

代理实施这些功能的代码端,例如调用搜索或商务API、表单以及加载Analytics和同意的代码的块。 它无法在存储库和内容之外配置系统,例如搜索服务、CDN或Analytics帐户,并且不会决定您的要求。 提供API文档和商定的行为,并为签署结果的每个外部系统指定一个所有者。 有关表单表单提交以及产品页面Commerce页面,请参阅Connect Services和应用程序。

图像和文档 assets

图像到达新站点的方式取决于内容目标:

  • 体验Workspace:​当您在控制台中工作时,导入的页面仍可以引用源站点上的图像。 上传页面时,控制台会将其随页面一起上传的图像(包括从源下载的图像)上传到以带有前导点的页面命名的文件夹中。 然后,它将页面指向上传的副本。 如果图像缺失、格式不受支持或模棱两可,控制台会报告该图像,但不会上传页面。 上传后,它会检查每个图像是否都已到达。 查看上传内容。
  • Experience Manager创作:​在上传内容包时选择​上传图像,然后在/content/dam/下选择一个文件夹。 默认为 /content/dam/site。 查看上传内容。
  • Adobe Dynamic Media:​源从Dynamic Media提供的图像(包括Scene7和具有OpenAPI URL的Dynamic Media)保留在该位置。 导入的页面引用了它们,并且项目的代码呈现它们。

Edge Delivery Services会提供适合每个屏幕的大小和格式的图像。 针对文件类型和大小的限制检查大型文件、视频和SVG图像。

检查示例页面上的文档(如PDF)链接。 每个链接都必须指向新站点上的副本,而不是要弃用的源站点。

URL、重定向和搜索元数据 urls-seo

代理从其源URL获取每个页面的路径。 它会将路径变为小写,删除.html,将尾随/转换为index,并用连字符替换其他字符,例如空格和下划线。 /About_Us.html变为/about-us。 每个以此方式更改或您有意更改的URL都需要重定向。

代理本身不会创建重定向、站点地图或语言替代项。 要求将其作为任务,并查看结果:

  • 重定向:​包含​ Source ​和​ 目标 ​列的redirects电子表格,每个URL一行,不带通配符。 要求代理列出其路径已更改的源URL,作为工作表的行。 请参阅重定向。
  • 页面元数据:​导入会将每个页面的标题、描述和社交图像保留在其元数据块中。 若要同时为多个页面设置元数据,请使用metadata电子表格。 请参阅批量元数据。
  • Sitemap和语言:​存储库中的helix-sitemap.yaml文件,它可以包含每个页面的语言替代项(hreflang)。 查看站点地图。
  • 搜索引擎:​预览和实时网站*.aem.page和*.aem.live对搜索引擎是隐藏的;您的生产域不是。 在直接转换之前检查robots.txt。 请参阅robots.txt。
  • 查询索引:​从仅包含已发布页面的查询索引中读取的页面列表,如文章列表和网站搜索。 请参阅索引。

签出 acceptance

同意站点所有者发布之前必须执行的操作,并在预览站点和实时站点上测试该操作。 网站所有者与测试人员和作者一起对测试结果进行签名。

区域
签核时间
范围
每个作用域内URL都有一个目标或批准的异常。 解析或记录失败和跳过的页面。
内容
文本、链接、资源、元数据和区域设置内容完整且正确。
创作
作者可以编辑典型的字段和块,保存、重新打开并在编辑器中预览结果。
设计
批准的桌面和移动设备布局适用于实际内容,包括长文本和块变体。
函数
导航、键盘交互、表单、集成和经同意的用户旅程均可正常工作。
质量
辅助功能、性能、相关的SEO和安全检查均符合项目商定的要求。 自动辅助工具仅查找规则可以检测的问题,因此还可以使用键盘和屏幕阅读器测试示例页面。 使用PageSpeed Insights测试性能;在GitHub上,Edge Delivery Services对其描述中的测试URL的每个拉取请求运行相同的检查。
运营
根据需要记录并测试存储库审查、内容发布、恢复、监控和支持所有权。

每个自动信号会检查一件事:脚本运行的导入程序状态、内容已转换的生成包、页面看起来与其源相似的视觉相似度分数,以及实验室测试中一个页面加载方式的Lighthouse分数。 生产就绪性需要表中的所有方面。

释放、恢复和移交 handoff

发行版所有者负责协调代码合并、内容发布和域切换,然后确认站点的持续所有者已接管该任务。

  1. 推送签核代码,并根据存储库策略要求对其进行审核。 合并到main中会立即更新实时网站的代码,因此请规划与内容发布的合并。 查看更改如何上线。
  2. 仅将已签署的内容和图像上传到已确认的目标。 查看每个页面和图像的错误。
  3. 验证预览站点*.aem.page上带有预期代码修订版的已保存内容。
  4. 获得站点的发行版批准,然后按照配置的发布和域切换流程操作。 发布功能使页面可在*.aem.live上使用;直接转换功能是通过Adobe管理的CDN或您自己的CDN,在您自己的域中为页面提供的服务。 在直接转换之前完成上线核对清单。
  5. 在发布后检查实时URL、重定向、关键历程和监控。 操作遥测显示真实访客体验网站性能的方式。
  6. 提供项目切换、每个URL的记录、作者示例、签核结果、异常和恢复联系人。

如果发生故障,请保留确切的URL或路径、操作和错误日志。 在更正原因后,重试受影响最小的范围。 不要重新启动成功的批处理,因为有一个页面失败。

推送代码、上传文档、将内容包导入Experience Manager以及发布操作在单独的系统上是单独的操作。 部分失败只能保留部分更改,并且任何回滚都不能撤消所有更改。 通过Git恢复代码,并通过内容目标的版本历史记录或您同意的流程恢复内容和图像。

recommendation-more-help
experience-manager-cloud-service-help-main-toc