

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

# 关于迁移策略
<a name="migration-strategies"></a>

*迁移策略*是用于将工作负载迁移到中的方法 AWS Cloud。将应用程序迁移到云端有七种迁移策略，称为 *7 R*：
+  [停用](#retire)
+  [保留](#retain)
+  [重新托管](#rehost)
+  [重新定位](#relocate)
+  [回购](#repurchase)
+  [更换平台](#replatform)
+  [重构或重新架构](#refactor)

大型迁移的常见策略包括重新托管、平台迁移、重新定位和停用。对于大型迁移，不建议使用重构，因为它涉及在迁移期间对应用程序进行现代化改造。这是最复杂的迁移策略，对于大量应用程序来说，管理起来可能很复杂。相反，我们建议重新托管、迁移或重新部署应用程序，然后在迁移完成后对应用程序进行现代化改造。

选择迁移策略对于大规模迁移至关重要。您可能在动员阶段或在最初的投资组合评估期间选择了迁移策略。本节回顾了每种迁移策略及其常见用例。

## 停用
<a name="retire"></a>

这是您要停用或存档的应用程序的迁移策略。停用应用程序意味着您可以关闭该应用程序堆栈中的服务器。以下是退休策略的常见用例：
+ 保留应用程序或将其迁移到云端没有任何商业价值。
+ 您希望消除维护和托管应用程序的成本。
+ 您希望降低运行使用不再支持的操作系统 (OS) 版本或组件的应用程序所带来的安全风险。
+ 您可能需要根据应用程序的性能停用应用程序。例如，您可能想要停用平均 CPU 和内存使用率低于 5% 的应用程序，即*僵尸应用程序*。您也可以选择在 90 天内停用某些平均 CPU 和内存使用率在 5% 到 20% 之间的应用程序，称为*空闲应用程序*。您可以使用发现工具中的利用率和性能数据来识别僵尸应用程序和闲置应用程序。
+ 在过去 90 天内没有与该应用程序的入站连接。

有关更多信息，请参阅[评估迁移到期间要停用的应用程序的最佳实践 AWS Cloud](https://docs.aws.amazon.com/prescriptive-guidance/latest/migration-retiring-applications/)。

## 保留
<a name="retain"></a>

这是您要保留在源环境中的应用程序或尚未准备好迁移的应用程序的迁移策略。将来，您可能会选择迁移这些应用程序。

以下是保留策略的常见用例：
+ **安全性与合规性** — 您可能需要保留应用程序，以保持对数据驻留要求的合规性。
+ **高风险** — 您可能会决定保留应用程序，因为它需要在迁移之前进行详细的评估和规划。
+ **依赖关系**-如果您需要先迁移一个或多个其他应用程序，则可以决定保留应用程序。
+ **最近升级的应用程序**-您可能希望将应用程序的迁移推迟到下一次技术更新，因为您最近投资升级了当前系统。
+ **没有业务价值可供迁移 — 将**某些应用程序迁移到云端没有商业价值，例如只有少数内部用户的应用程序。
+ **迁移到软件即服务 (SaaS) 的计划**-您可以选择在供应商发布 SaaS 版本之前保留应用程序。这是基于供应商的应用程序的常用策略。
+ **未解决的物理依赖关系** — 您可以选择保留依赖于不具有云等效功能的专用硬件的应用程序，例如制造工厂中的机器。
+ **大型机或中端应用程序以及非 x86 Unix 应用程序** — 在将这些应用程序迁移到云端之前，需要仔细评估和规划。中端应用程序的示例包括 IBM AS/400 和 Oracle Solaris。
+ **性能**-您可能希望根据应用程序的性能保留应用程序。例如，您可能希望在源环境中保留僵尸或空闲应用程序。

## 重新托管
<a name="rehost"></a>

这种策略也被称为*升降和移动*。使用此策略，您可以将应用程序从源环境迁移到源环境， AWS Cloud 而无需对应用程序进行任何更改。例如，您将应用程序堆栈从本地迁移到 AWS Cloud。

借助 rehost，您可以将大量计算机从多个源平台（物理、虚拟或其他云）迁移到云中， AWS Cloud 而不必担心兼容性、性能中断、转换窗口过长或长距离数据复制。

在工作负载迁移期间，您的应用程序将继续为用户提供服务，从而最大限度地减少中断和停机时间。停机时间取决于您的切换策略。

此策略可帮助您扩展应用程序，而无需实施任何可以节省时间或金钱的云优化。当应用程序已经在云中运行时，它们更容易优化或重新架构，因为它更容易集成到 AWS 服务中并管理您的工作负载。

您可以使用以下服务自动进行再托管：
+ [AWS Application Migration Service](https://aws.amazon.com/application-migration-service/when-to-choose-aws-mgn/)
+ [AWS 云迁移工厂解决方案](https://aws.amazon.com/solutions/implementations/aws-cloudendure-migration-factory-solution/)
+ [VM Import/Export](https://aws.amazon.com/ec2/vm-import/)

有关重新托管迁移策略的迁移模式列表，请参阅 AWS 规范性[指南网站上的重新托管](https://docs.aws.amazon.com/prescriptive-guidance/latest/patterns/migration-rehost-pattern-list.html)。

## 重新定位
<a name="relocate"></a>

使用此策略，您可以在给定时间将大量服务器（包括一个或多个应用程序）从本地平台转移到平台的云版本。您还可以使用重定位策略将实例或对象移动到不同的虚拟私有云 (VPC) AWS 区域，或 AWS 账户。例如，您可以使用此策略将亚马逊关系数据库服务 (Amazon RDS) 数据库实例转移到另一个 VPC 或 AWS 账户。

搬迁策略不需要您购买新硬件、重写应用程序或修改现有操作。在搬迁期间，应用程序将继续为用户提供服务，从而最大限度地减少中断和停机时间。迁移是在云中迁移和操作工作负载的最快方法，因为它不会影响应用程序的整体架构。

有关重新定位迁移策略的迁移模式列表，请参阅 AWS 规范性指南网站上的[重新定位](https://docs.aws.amazon.com/prescriptive-guidance/latest/patterns/migration-relocate-pattern-list.html)。

## 回购
<a name="repurchase"></a>

这种策略也被称为*掉落和购物*。您将应用程序替换为其他版本或产品。新应用程序应比现有的本地应用程序提供更多的商业价值，包括可随时随地访问、无需维护基础设施和 pay-as-you-go定价模式等功能。回购应用程序通常可以降低与维护、基础架构和许可相关的成本。

以下是回购迁移策略的常见用例：
+ **从传统许可迁移到 SaaS** — 这样可以减轻管理和维护基础架构的负担，并有助于减少许可问题。
+ **版本升级或第三方等效**版本 — 通过将现有的本地应用程序替换为供应商的最新版本或云中的第三方同等版本，您可以利用新功能，与云服务集成，并更轻松地扩展应用程序。
+ **替换自定义应用程序**-您可以通过回购基于供应商的 SaaS 或基于云的应用程序来避免重新编码和重新架构定制应用程序。

在购买之前，您需要根据业务需求（尤其是安全性和合规性）对应用程序进行评估。

购买新应用程序后，接下来的步骤如下：
+ 使用新系统培训您的团队和用户
+ 将您的数据迁移到新购买的应用程序
+ 将应用程序集成到您的身份验证服务（例如 Microsoft Active Directory）中，以集中身份验证
+ 配置网络以帮助保护购买的应用程序、您的用户和基础设施之间的通信 

通常，应用程序供应商会帮助您完成这些活动，以实现平稳过渡。

## 更换平台
<a name="replatform"></a>

这种策略也被称为 “*提升”、“修补” 和 “移动*” 或 “*提升和重塑*”。使用这种迁移策略，您可以将应用程序迁移到云端，然后引入一定程度的优化，以便高效运行应用程序、降低成本或利用云功能。例如，你可以将微软 SQL Server 数据库改为适用于 Amazon RDS for SQL Server 的亚马逊 RDS。

使用此策略，您可以根据您的业务目标和目标平台对应用程序进行一些或许多更改。

以下是平台迁移策略的常见用例：
+ 您希望通过在中迁移到完全托管服务或无服务器服务来节省时间并降低成本。 AWS Cloud
+ 您想通过将操作系统升级到最新版本来提高安全性和合规性。
+ 你可以使用由开发的定制处理器 [AWS Graviton 处理器](https://aws.amazon.com/ec2/graviton/)来降低成本。 AWS
+ 你可以通过从微软 Windows 操作系统迁移到 Linux 操作系统来降低成本。您可以将.NET Framework 应用程序移植到可在 Linux 操作系统上运行的.NET Core。[.NET 移植助手](https://aws.amazon.com/porting-assistant-dotnet/)是一种分析工具，可帮助您将应用程序移植到 Linux。
+ 您可以通过将虚拟机迁移到容器中来提高性能，而无需进行任何代码更改。您可以使用 A [AWS pp2](https://aws.amazon.com/app2container/) Container 迁移工具将.NET 和 Java 应用程序现代化为容器化应用程序。

平台重组策略可在不影响安全性和合规性的前提下保持原有应用程序的运行。

通过迁移到托管或无服务器服务、将虚拟机迁移到容器以及避免许可费用，Replatform 可以降低成本并提高性能。

有关平台迁移策略的迁移模式列表，请参阅 AWS 规范性指南网站上的[重定平台](https://docs.aws.amazon.com/prescriptive-guidance/latest/patterns/migration-replatform-pattern-list.html)。

## 重构或重新架构
<a name="refactor"></a>

使用此策略，您可以将应用程序迁移到云端，并通过充分利用云原生功能来提高敏捷性、性能和可扩展性，从而修改其架构。这得益于对扩展、加快产品和功能发布以及降低成本的强劲业务需求。

以下是重构迁移策略的常见用例：
+ 传统的大型机应用程序由于其局限性或维护成本高昂而无法再满足业务需求。
+ 您的单体应用程序已经阻碍了快速交付产品或满足客户需求和要求的工作。
+ 你有一个没人知道如何维护的旧应用程序，或者源代码不可用。
+ 应用程序难以测试，或者测试覆盖率非常低。这会影响新应用程序功能和修复程序的质量和交付。通过重新设计云端应用程序，您可以增加测试覆盖率并集成自动测试工具。
+ 出于安全性和合规性考虑，将数据库迁移到云端时，您可能需要提取一些表（例如客户信息、患者或患者诊断表），并将这些表保留在本地。在这种情况下，您需要重构数据库，以便将要迁移的表与将在本地保留的表分开。

有关重构迁移策略的迁移模式列表，请参阅 AWS 规范性指南网站上的 Re [-Architec](https://docs.aws.amazon.com/prescriptive-guidance/latest/patterns/migration-rearchitect-pattern-list.html) t。