

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 任务 2：定义识别、收集和存储元数据的流程
<a name="metadata"></a>

在上一个任务中，您验证了大型迁移的初始发现数据、迁移策略和迁移模式。在此任务中，您将确定需要哪些元数据并决定如何收集这些元数据。此任务包括以下步骤：
+ [步骤 1：定义所需的元数据](#metadata-1)
+ [步骤 2：构建元数据存储和收集流程](#metadata-2)
+ [步骤 3：在运行手册中记录元数据要求和收集流程](#metadata-3)

完成本节中的步骤时，请从元数据的角度考虑整个迁移周期。考虑产品组合评估、波浪规划、迁移、测试、转换后活动，然后分析所有可能的用例和相关用例。考虑完成完整迁移过程所需的信息可以帮助您识别该模式的所有元数据。

## 步骤 1：定义所需的元数据
<a name="metadata-1"></a>

在确定所需的元数据属性之前，必须了解迁移模式。例如，在将服务器迁移到 Amazon EC2 以及将数据库迁移到 Amazon RDS 时，您需要不同的元数据。大多数模式是由许多小任务组成的。为了执行迁移模式，您需要知道需要哪些元数据属性，然后收集该应用程序的元数据。您必须在初始化阶段确定并收集所需的元数据，以便在实施阶段可以毫不拖延地高效地执行迁移。

定义元数据属性的人员或团队首先定义执行迁移模式所需的步骤和任务。这些任务决定了需要哪些元数据，因此通过每项任务可以生成所需元数据的全面集合。确定需要哪些元数据的人员通常需要全面了解如何完成迁移模式。可能需要与编写迁移运行手册的人员进行协调。有关更多信息，请参阅[AWS 大型迁移的迁移手册](https://docs.aws.amazon.com/prescriptive-guidance/latest/large-migration-migration-playbook/)。

在大规模迁移期间，有许多流程分布在所有工作流中，它们都依赖于元数据。拥有及时、准确的元数据会对大规模迁移的成功产生广泛而重大的影响。

在此步骤中，您将定义模式或任务，然后使用该定义来标识所需的元数据。

### 确定迁移模式和支持任务的关键组成部分
<a name="metadata-1-components"></a>

在此步骤中，您可以为每个迁移模式或支持任务定义关键组件，例如所使用的操作、源对象、目标对象和工具。然后，您可以根据答案命名模式或任务。

*支持任务*包括产品组合和迁移工作流在迁移期间需要执行的运营活动，例如波浪规划、应用程序优先级划分、依赖关系分析、治理、灾难恢复、性能测试或用户接受度测试。由于您需要元数据来支持这些任务，因此您可以为迁移模式和支持任务执行这些步骤。

1. **操作**-确定迁移策略或支持任务。请记住，一个操作可能有其他与之相关的操作。例如，您可能想要定义迁移操作。示例操作包括：
   + 迁移策略，例如重新托管、平台迁移或搬迁
   + 波浪规划
   + 应用程序优先级划分和依赖关系分析
   + 操作
   + Governance
   + 灾难恢复
   + 测试，例如性能测试或用户验收测试 (UAT)

1. **源对象**-标识要对其执行操作的源对象。示例源对象包括：
   + 波浪
   + 服务器
   + 数据库
   + 文件共享
   + 应用程序

1. **工具**-标识用于执行操作的服务或工具。您可能会使用多个工具或服务。示例工具包括：
   + AWS Application Migration Service
   + AWS DataSync
   + AWS Database Migration Service (AWS DMS)
   + AWS Backup
   + 性能监控工具

1. **目标对象**-确定操作完成后源所在的目标对象、服务或位置。对象、服务或位置的示例包括：
   + Amazon Elastic Compute Cloud（Amazon EC2）
   + Amazon Relational Database Service (Amazon RDS)
   + Amazon Elastic File System (Amazon EFS)
   + Amazon Elastic Container Service（Amazon ECS）
   + 波浪计划

1. **模式名称**-将您对前面步骤的答案组合在一起，如下所示：

   <action><source object> on/to <target object>使用 <tool>

   示例如下：
   + 使用应用程序迁移服务或云迁移工厂（工具）将（操作）波浪、应用程序或服务器（源对象）重新托管到 Amazon EC2（目标对象） 
   + 使用（工具）将平台（操作）文件共享（源对象）重定向 Amazon EFS DataSync （目标对象）
   + 使用（工具）将平台（操作）数据库（源对象）重定向 Amazon RDS AWS DMS （目标对象）
   + 使用 Amazon（工具）对 Amazon EC2（目标对象）上的应用程序（源对象）进行性能监控 CloudWatch （操作）
   + 迁移后使用（工具）在 Amazon EC2（目标对象）上备份 AWS Backup （操作）服务器（源对象）
   + 波浪规划（操作）波浪、应用程序或服务器（源对象）以创建波浪计划（目标对象）

以下是如何记录*模式 1：使用迁移[模式表](discovery.md#migration-patterns)中的应用程序迁移服务或云迁移工厂重新托管到 Amazon EC2* 的示例。


****  

|  |  | 
| --- |--- |
| **Pattern ID** | 1 | 
| **Pattern name** | 使用应用程序迁移服务或云迁移工厂重新托管到 Amazon EC2 | 
| **Action** | 重新托管迁移 | 
| **Source object** | Wave、应用程序或服务器 | 
| **Tools** | 应用程序迁移服务或云迁移工厂 | 
| **Target object** | Amazon EC2 | 

### 确定每种模式或任务所需的元数据
<a name="metadata-1-determine"></a>

既然您已经定义了模式或任务，就可以确定源对象、目标对象、工具和其他业务信息所需的元数据。为了解释此过程，本手册使用*模式 1：使用迁移模式表中的应用程序迁移服务或云迁移工厂重新托管到 Amazon EC2* [作为示](discovery.md#migration-patterns)例。请注意，对于某些模式或任务，某些步骤可能不适用。

1. **分析目标对象** — 从目标对象向后移动，手动创建对象并确定支持该对象所需的元数据。捕获元数据，如下表所示。

   例如，创建 EC2 实例时，必须选择实例类型、存储类型、存储大小、子网、安全组和标签。下表包含在目标对象是 EC2 实例时可能需要的元数据属性的示例。  
****    
[See the AWS documentation website for more details](http://docs.aws.amazon.com/zh_cn/prescriptive-guidance/latest/large-migration-portfolio-playbook/metadata.html)

1. **分析工具**-使用该工具创建目标对象并检查是否存在差异。如下表所示，捕获特定于工具的元数据，如果迁移工具不支持这些属性，则将其从上表中删除。例如，您无法为应用程序迁移服务自定义操作系统类型和存储大小，因为重新托管迁移工具是 like-for-like。因此，如果目标操作系统和目标磁盘大小包含在上表中，则应移除这些属性。在上面的示例表中，该工具支持所有属性，因此无需执行任何操作。

   下表包括这些工具可能需要的元数据示例。  
****    
[See the AWS documentation website for more details](http://docs.aws.amazon.com/zh_cn/prescriptive-guidance/latest/large-migration-portfolio-playbook/metadata.html)

1. **分析源对象**-通过评估以下操作来确定源对象所需的元数据：
   + 要迁移服务器，您需要知道源服务器名称和完全限定域名 (FQDN)，才能连接到服务器。
   + 要迁移应用程序及其服务器，您需要知道应用程序名称、应用程序环境和 application-to-server映射。
   + 要执行投资组合评估、确定应用程序优先级或定义移动组，您需要了解 application-to-server映射、 application-to-database映射和 application-to-application依赖关系。
   + 要管理波浪，你需要知道波浪 ID 以及波浪的开始和结束时间。

   下表包括源对象可能需要的元数据示例。  
****    
[See the AWS documentation website for more details](http://docs.aws.amazon.com/zh_cn/prescriptive-guidance/latest/large-migration-portfolio-playbook/metadata.html)

1. **考虑其他属性**-除了主要操作外，还要考虑与目标对象或应用程序相关的其他操作和属性。对于示例模式，*模式 1：使用应用程序迁移服务或云迁移工厂重新托管到 Amazon EC2*，操作是重新托管，目标对象是 Amazon EC2。此目标对象的其他相关操作可能包括备份到 Amazon EC2、在迁移后监控 EC2 实例，以及使用标签管理与 EC2 实例相关的成本。您可能还需要考虑其他可帮助您管理迁移的应用程序属性，例如应用程序所有者，如果有疑问或切换，可能需要与他联系。

   下表包括常用的其他元数据的示例。此表包含您的目标 EC2 实例的标签。有关标签及其使用方法的更多信息，请参阅 [Amazon EC2 文档中的标记您的 Amazon EC2 资源](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_Tags.html)。  
****    
[See the AWS documentation website for more details](http://docs.aws.amazon.com/zh_cn/prescriptive-guidance/latest/large-migration-portfolio-playbook/metadata.html)

1. **创建表**-将前面步骤中确定的所有元数据合并到一个表中。  
****    
[See the AWS documentation website for more details](http://docs.aws.amazon.com/zh_cn/prescriptive-guidance/latest/large-migration-portfolio-playbook/metadata.html)

1. **重复**-重复此过程，直到记录了每种模式所需的元数据。

## 步骤 2：构建元数据存储和收集流程
<a name="metadata-2"></a>

在上一步中，您定义了支持迁移所需的元数据。在此步骤中，您将构建一个收集和存储元数据的流程。此步骤包括两个任务：

1. 分析上一步中所需的元数据并确定来源。

1. 定义高效存储和收集元数据的流程。

### 分析元数据源
<a name="metadata-2-source"></a>

有许多常见的元数据源。通常，您可以访问的第一件事是高级资产清单，该清单通常从配置管理数据库 (CMDB) 或其他现有工具中导出。但是，您还需要使用自动和手动流程从其他来源收集元数据。

下表包含常见来源、该源的标准收集流程以及您可以从该来源中找到的常见元数据类型。


****  

| 元数据来源 | 馆藏类型 | 元数据类型 | 
| --- | --- | --- | 
| 发现工具 | 自动 | 源服务器 | 
| CMDB | 自动 | 源服务器 | 
| 来自其他工具的库存，[RVTools](https://www.robware.net/)例如 VMware vSphere | 自动 | 源服务器 | 
| 应用程序所有者问卷 | 手动 | 源服务器、目标服务器、wave | 
| 应用程序所有者访谈 | 手动 | 源服务器、目标服务器、wave | 
| 应用程序设计文档 | 手动 | 目标服务器 | 
| 着陆区设计文档 | 手动 | 目标服务器、工具 | 

列出所有可能的元数据来源后，您可以分析元数据类型并将每个源映射到您在上一步中确定的元数据属性。

1. 从中获取元数据属性的完整列表[步骤 1：定义所需的元数据](#metadata-1)。

1. 分析每种元数据类型，并确定哪些类型无法使用自动流程进行检索。这通常是**目标服务器元数据**和**波形元数据**类型，因为它们需要应用程序所有者做出决定。例如，您将为目标 EC2 实例使用哪个子网和安全组？

1. 分析每个元数据属性并将其映射到上表中的元数据源。将多个来源组合在一起是很常见的。您可以使用发现工具来收集一些源服务器元数据。有关使用发现工具收集元数据的信息，请参阅 AWS 规范指南网站上的[自动投资组合发现入门](https://docs.aws.amazon.com/prescriptive-guidance/latest/patterns/get-started-with-automated-portfolio-discovery.html)。

1. 创建表以将元数据属性映射到其类型和来源。下表是一个示例。  
****    
[See the AWS documentation website for more details](http://docs.aws.amazon.com/zh_cn/prescriptive-guidance/latest/large-migration-portfolio-playbook/metadata.html)

### 定义单个元数据存储
<a name="metadata-2-store"></a>

将每个元数据属性映射到其源之后，您可以定义元数据的存储位置。无论以何种方式存储元数据以及在何处存储，您都只需要选择一个存储库。这样可以确保您拥有单一的真相来源。在大型迁移中，将元数据存储在多个位置是一个常见的错误。

#### 选项 1：将元数据存储在共享存储库的电子表格中
<a name="metadata-2-store-1"></a>

尽管此选项听起来像是一个非常手动的过程，但它是大型迁移最常用的数据存储。将电子表格存储在共享存储库中也很常见，例如 Microsoft SharePoint 站点。

Microsoft Excel 电子表格易于自定义，无需花费很长时间即可构建。缺点是，如果你有大量的元数据，它会变得非常复杂，而且可能很难管理资产之间的关系，例如服务器、应用程序和数据库之间的关系。另一个挑战是版本管理。您需要将写入权限限制为只有少数人，或者需要使用自动流程来更新电子表格。

在[投资组合手册模板](samples/portfolio-playbook-templates.zip)中，您可以使用*用于波浪规划和迁移的仪表板模板*（Excel 格式）作为构建自己的数据存储电子表格的起点。

#### 选项 2：将元数据存储在专门构建的工具中
<a name="metadata-2-store-2"></a>

您可以使用诸如 [TDS 过渡管理器（TDS](https://www.transitionaldata.com/software/) 网站）之类的预建工具来存储数据，也可以自己构建工具。构建自己的工具时，需要数据库表，就像选项 1 中的 Excel 电子表格选项卡一样。例如：
+ 服务器表
+ 应用程序表
+ 数据库表
+ Application-to-server 和 application-to-database映射表
+ 波浪计划表
+ 应用程序所有者问卷表

### 定义元数据收集流程
<a name="metadata-2-collection"></a>

在前面的步骤中，您已将元数据映射到其源，并定义了要在其中收集元数据的数据存储。在此步骤中，您将构建有效收集元数据的流程。您应尽量减少手动 copy-and-paste流程，并使用自动化功能从每个来源收集元数据。有三个步骤：

1. 根据元数据映射表为每个元数据源构建提取、转换和加载 (ETL) 脚本。

1. 生成定期自动从每个来源导入元数据的定时任务。

1. 构建导出流程或提供对存储库中存储的元数据的应用程序编程接口 (API) 访问权限。

下表是每个 ETL 脚本收集的元数据属性的示例。元数据存储在您在上一节中定义的位置，例如电子表格或专用工具。


****  

| Metadata 属性 | 元数据类型 | 元数据来源 | 收款流程 | 
| --- | --- | --- | --- | 
| `app_name` | 源应用程序 | CMDB | ETL 脚本 — CMDB | 
| `app_owner` | 源应用程序 | CMDB | ETL 脚本 — CMDB | 
| `app_to_server_mapping` | 源应用程序 | CMDB | ETL 脚本 — CMDB | 
| `app_to_DB_mapping` | 源应用程序 | CMDB | ETL 脚本 — CMDB | 
| `app_to_app_dependencies` | 源应用程序 | 发现工具 | ETL 脚本 — 发现工具 | 
| `server_name` | 源服务器 | CMDB | ETL 脚本 — CMDB | 
| `server_FQDN` | 源服务器 | CMDB | ETL 脚本 — CMDB | 
| `server_OS_family` | 源服务器 | CMDB | ETL 脚本 — CMDB | 
| `server_OS_version` | 源服务器 | CMDB | ETL 脚本 — CMDB | 
| `disk_size` | 源服务器 | 发现工具 | ETL 脚本 — 发现工具 | 
| `instance_type` | 目标服务器 | 发现工具 | ETL 脚本 — 发现工具 | 
| `target_subnet` | 目标服务器 | 应用程序所有者问卷 | ETL 脚本-应用程序所有者 | 
| `target_security_group` | 目标服务器 | 应用程序所有者问卷 | ETL 脚本-应用程序所有者 | 
| `AWS_Region` | 目标服务器 | 应用程序所有者问卷 | ETL 脚本-应用程序所有者 | 
| `AWS_account_ID` | 目标服务器 | 应用程序所有者问卷 | ETL 脚本-应用程序所有者 | 
| `Name` | 目标服务器（标签） | 应用程序所有者问卷 | ETL 脚本-应用程序所有者 | 
| `business_unit` | 目标服务器（标签） | 应用程序所有者问卷 | ETL 脚本-应用程序所有者 | 
| `cost_center` | 目标服务器（标签） | 应用程序所有者问卷 | ETL 脚本-应用程序所有者 | 
| `wave_ID` | 波浪规划 | 应用程序所有者问卷 | ETL 脚本-应用程序所有者 | 
| `wave_start_date` | 波浪规划 | 应用程序所有者问卷 | ETL 脚本-应用程序所有者 | 
| `wave_cutover_date` | 波浪规划 | 应用程序所有者问卷 | ETL 脚本-应用程序所有者 | 

## 步骤 3：在运行手册中记录元数据要求和收集流程
<a name="metadata-3"></a>

在本任务中，您需要在*元数据管理运行手册*中记录您的决策。在迁移过程中，您的投资组合工作流将遵守本操作手册作为收集和存储元数据的标准程序。

1. 在[投资组合剧本模板](samples/portfolio-playbook-templates.zip)中，打开*用于元数据管理的运行手册模板*（Microsoft Word 格式）。这可以作为构建自己的运行手册的起点。

1. 在*元数据属性*部分，为每种迁移模式创建元数据属性表，并使用中[步骤 1：定义所需的元数据](#metadata-1)标识的元数据属性填充这些表。

1. 在*来源位置*部分，记录您在中确定的来源[分析元数据源](#metadata-2-source)。

1. 在*源位置访问说明*部分，记录用户访问元数据源位置需要遵循的步骤。

1. 在 “*元数据存储*” 部分，记录用户访问您在中创建的元数据存储所需执行的步骤[定义单个元数据存储](#metadata-2-store)。

1. 在*数据收集类型*部分，确定将用于每个元数据源的数据收集流程。理想情况下，您应该使用自动化脚本自动收集所有元数据。

1. 在 “*按元数据属性收集数据”* 部分中，针对每个元数据属性，根据中的说明确定以下内容[定义元数据收集流程](#metadata-2-collection)：

   1. 元数据类型

   1. 元数据来源

   1. 元数据存储

   1. 馆藏类型

1. 在*收集元数据*部分，根据您的用例更新流程。这是投资组合工作流在实施阶段收集波浪元数据时所遵循的过程。

1. 验证您的操作手册是否完整且准确。这本运行手册应该是迁移期间的真实来源。

1. 与团队共享您的元数据管理操作手册以供审阅。

## 任务退出标准
<a name="metadata-exit-criteria"></a>

完成以下任务后，继续执行下一个任务：
+ 您已经准备好了一个存储库来存储收集的元数据。
+ 在元数据管理运行手册中，您定义并记录了以下内容：
  + 每种迁移模式所需的元数据属性
  + 元数据源和有关如何访问每个来源的详细说明
  + 元数据存储以及如何访问它的详细说明
  + 用于收集元数据的流程
  + 将元数据属性映射到元数据源和收集过程的映射表