什么是应用程序迁移?

什么是应用程序迁移?

应用程序迁移是将软件应用程序从一个计算环境转移到另一个计算环境的过程。例如,您可以将应用程序从一个数据中心迁移到另一个数据中心,从本地服务器迁移到云供应商的环境,或者从公有云迁移到私有云环境。

由于应用程序通常是为在特定网络架构中的特定操作系统上运行而构建,或者是为单个云平台开发,因此将应用程序迁移到新环境可能会带来诸多挑战。从虚拟化或基于服务的架构迁移应用程序通常会比迁移在裸机硬件上运行的应用程序要容易得多。

确定整体应用程序迁移策略考虑到每个应用程序的依赖关系和技术要求,以及企业的安全性、合规性和成本限制。

即使在相同技术环境中,不同的应用程序也可以采用不同的路径进入云端。自云计算诞生之初,开发人员就用以“R”字母开头的名称来指代这些应用程序迁移模式。

重新托管:也称为直接迁移,是一种常见策略,即企业将应用程序从本地服务器转移到云中的虚拟机,而不做重大更改。重新托管应用程序通常比其他迁移策略更快,并且可以显著降低迁移成本。缺点是,因为未进行更改,应用程序将无法从云原生计算功能受益,而且,在云中运行它们的长期成本可能会更高。

重构或重新架构:重构是指对应用程序进行相当大的更改,使其能够在云环境中更好地扩展或运行。这可能涉及对应用程序的主要部分进行重新编码,以便更好地利用云原生功能,例如,将单体式应用程序重构为一组微服务,或将数据存储进行现代化改造,从 SQL 转换为 NoSQL。

更换平台:作为直接迁移和重新构建之间的一种中间地带,更换应用程序平台涉及针对应用程序的细微更改,以便它可以更好地从云技术优势中受益。示例可包括升级应用程序以使用云原生数据库、更改其使用的操作系统或中间件,或者容器化应用程序。

淘汰/替换:有时,停用应用程序是最明智的选择。这可能是因为它的价值有限,因为它的功能在您环境中的其他地方出现重复,或者因为用新的产品(通常是软件即服务 (SaaS) 平台)进行替换比迁移应用程序更具成本效益。

高速公路鸟瞰图

在云端保持清醒头脑 


获取每周 Think 时事通讯,了解有关在 AI 时代优化多云设置的专家指导。

应用程序迁移策略

为了制定最适合企业独特 IT 环境和业务需求的应用程序迁移策略,需要准确了解企业的应用程序组合包含哪些内容、具体的安全性和合规性要求、当前正在使用的云资源以及本地存储空间、计算和网络基础设施等。

为了使云迁移取得成功,企业还需要明确推动云迁移的关键业务驱动因素,并调整策略以与这些驱动因素保持一致。企业需要清楚了解为什么要迁移到云,以及希望通过迁移实现什么目标。

应用程序迁移风险

利益相关者可能担心应用程序迁移可能会造成业务中断或导致意外的成本。最常见的风险包括:

  • 不可预见的技术挑战:例如,一个应用程序可能具有太多的依赖关系,以至于重构或平台重构可能比最初想象的要复杂和耗时得多。

  • 意外成本:如果没有适当的规划,企业可能会产生未列入预算的费用,例如,新的许可费用或让员工快速使用新工具的相关培训费用。

  • 意外停机时间:应用程序的重大更改可能会引起冲突或问题,从而导致应用程序以及连接或依赖系统的计划外停机时间。

  • 文化问题或变更管理困难:不同的组织使用应用程序的方式不同,这些差异可能会产生摩擦,从而减慢迁移项目的进度。

对重新托管、重新架构/平台重构或淘汰产品组合中每个应用程序所涉及的风险和收益进行谨慎、详细地评估,可以帮助减轻与应用程序迁移相关的总体风险。尤其是,将部门级成本与企业总成本进行比较,并评估将应用程序保留在本地所需维护的所有硬件的总体拥有成本 (TCO),这些都非常重要。

更改应用程序迁移用例

前几年,企业常常寻求将应用程序迁移到云中,因为它们需要云供应商所提供的灵活性、可扩展性或可预测的即用即付成本结构。

然而,如今企业也在寻求能够实现创新的环境。云技术使以下选择成为可能:

  • 进行实验,测试新想法并“更快地失败
  • 获得支持深度学习算法所需的高性能处理器
  • 访问容器化应用程序,这些应用程序允许开发团队通过快速实施变更来快速改善客户的数字体验

很多情况下,容器化等云友好技术可以为用户提供比其可能取代的虚拟机更好的体验。

应用程序迁移阶段

一般来说,应用程序迁移规划过程可以分为三个阶段。在每个阶段,权衡所有潜在选项的成本至关重要,包括选择保留一些本地部署工作负载。

应用程序识别和评估:在最初的探索阶段,首先要确保拥有一个关于产品组合中所有应用程序的全面目录。然后,根据应用程序是否为业务关键型、其价值是战略性的还是非战略性的以及将其迁移到云中的好处进行分类。应努力从以下特征来理解每个应用程序的价值:

  • 对业务的影响

  • 满足关键业务需求的能力

  • 数据的及时性和重要性

  • 规模、复杂度和可管理性

  • 维护和开发成本

  • 迁移到云端可带来更高的价值

然后,需要对考虑迁移的每个应用程序进行云亲和性评估。在此过程中,确定哪些应用程序可以按原样运行,哪些应用程序需要进行重大更改后才能在云端运行。

还可以使用应用程序依赖关系发现工具来帮助确定将特定工作负载迁移到当前环境之外的可行性。

总体拥有成本 (TCO) 评估:确定云迁移项目的总成本可能是一项复杂的任务。将应用程序和基础设施保留在本地的“假设”场景与将它们迁移到云中的相关场景进行比较。计算任一场景下在本地维护的硬件的购买、运营和维护成本,以及许可软件的成本。

比较两种情况下,您从云供应商处收到的每月账单和迁移本身的成本,其中包括测试新基础设施和培训员工使用更新软件的成本。别忘了考虑留在本地的旧版应用程序的维护成本。

总体风险和项目持续时间评估:在迁移规划的最后阶段,制定项目时间表,并确定可能遇到的任何风险或障碍。

迁移旧版应用程序

一般来说,应用程序越旧,迁移到云的挑战就越大(因此,可能越不值得)。过时的软件在很多方面都存在问题:维护成本高昂,如果不再打补丁,可能会引发安全问题,而且在现代计算环境中往往表现不佳。决定迁移旧版应用程序之前,要对它们进行特别彻底的评估。

评估迁移候选项

当组织评估应用程序的可行性和迁移优先级时,将会考虑以下问题。

复杂性:此应用程序是在哪里开发的?如果是在内部开发,则开发人员是否仍在公司工作?应用程序的文档是否随时可用?该应用程序自开发以来多久了?已使用多长时间?组织中有多少其他应用程序或工作流程在某种程度上依赖此应用程序或工作流程?

重要性:每天有多少用户依赖此应用程序?每周一次吗?在业务运营中断之前,组织能容忍多久的停机时间?该应用程序是用于生产、开发、测试还是三者兼而有之?它是由内部 IT 团队还是外部供应商管理的?是否有任何其他具有正常运行时间/停机时间要求的应用程序必须与此应用程序同步?

合规性:应用程序必须符合哪些监管要求?

可用性:该应用程序必须符合哪些正常运行时间标准?例如,是否受到规定 99.99% 正常运行时间的服务级别协议 (SLA) 的约束?

测试

为了确保在应用程序迁移过程中不会丢失任何数据或功能,请在迁移过程中执行测试,以检验所有数据是否存在、数据的完整性是否保持以及数据当前是否位于正确的存储位置。

同样重要的是,在迁移完成后执行跟进测试,对应用程序性能进行基准测试,并确保安全控制措施仍然到位。

跨虚拟机管理程序的应用程序迁移

虚拟化是许多云迁移策略的基本组件,因为虚拟机可以直接在新的物理硬件环境中运行。甚至可以在物理主机之间移动在虚拟机上运行的实时应用程序,而不会影响用户的体验。虚拟化计算环境的灵活性和多功能性极大地简化了应用程序迁移过程。

虚拟机管理程序的类型和迁移操作

目前提供几种复制和迁移解决方案,可让客户在裸机服务器、云端虚拟机甚至虚拟机管理程序之间迁移虚拟机。

  • VMWare 应用程序迁移:可以将本地 VMware 实例上运行的虚拟机直接迁移到私有云中运行的 VMWare VCenter Server,而不会中断运营、导致停机或需要重新配置应用程序。

  • Red Hat 应用程序迁移:Red Hat 提供应用程序迁移工具包(这是一种可定制和可扩展的软件解决方案),可分析 IT 环境以识别应用程序的相互依赖关系。它提供仪表板样式的分析报告,以突出显示在迁移期间可能遇到问题的应用程序。

云迁移服务

许多服务可帮助企业制定策略、规划和执行成功的云迁移。

迁移蓝图:在全面的蓝图服务中,供应商会帮助您明确迁移策略和目标,收集有关应用程序和环境的信息,确定用户需求和业务要求,并制定详细的迁移行动计划。

迁移部署:如果您选择托管部署选项,您的供应商不仅会协助您制定迁移策略和计划,还会管理迁移本身以及任何相关的测试和故障排除。这通常是一种统包式服务产品,包括全面的端到端支持。

云托管服务:托管云服务通常包括对基于云的 IT 环境进行监控和维护。托管云服务提供商承担多项职能责任,包括管理云安全到代表企业从供应商处采购“即服务”产品。应用程序迁移可以包含在打包的服务产品中,也可以按菜单添加。

应用程序现代化:应用程序现代化服务包括定制开发产品,通过修改旧版应用程序,使其能够在容器或虚拟化环境中运行,从而为在云中使用旧版应用程序做好准备。

相关解决方案
IBM Cloud Pak for Network Automation

自动执行云端网络预配和编排,以简化迁移、增强灵活性并确保无缝运营。

深入了解 Cloud Pak Automation
IBM Instana Observability 新一代应用性能管理平台

IBM Instana Observability 可自动在微服务环境中执行应用程序发现、监控、跟踪和根本原因分析。

探索 Instana
IBM Turbonomic Application Resource Management

IBM Turbonomic 是一款应用资源管理软件,可利用 AI 优化多云环境的性能、成本和合规性。它可作为 SaaS 提供,也可以自托管。

深入了解 Turbonomic
采取后续步骤

借助 IBM 的专家咨询服务,加速您的云迁移之旅。您可以了解我们的解决方案如何帮助您高效转换到云,也可预约实时演示,了解 IBM Turbonomic 在实际应用中的优势。

深入了解 IBM 云迁移服务 预约实时演示