应用程序迁移是将软件应用程序从一个计算环境转移到另一个计算环境的过程。例如,您可以将应用程序从一个数据中心迁移到另一个数据中心,从本地服务器迁移到云供应商的环境,或者从公有云迁移到私有云环境。
由于应用程序通常是为在特定网络架构中的特定操作系统上运行而构建,或者是为单个云平台开发,因此将应用程序迁移到新环境可能会带来诸多挑战。从虚拟化或基于服务的架构迁移应用程序通常会比迁移在裸机硬件上运行的应用程序要容易得多。
确定整体应用程序迁移策略考虑到每个应用程序的依赖关系和技术要求,以及企业的安全性、合规性和成本限制。
即使在相同技术环境中,不同的应用程序也可以采用不同的路径进入云端。自云计算诞生之初,开发人员就用以“R”字母开头的名称来指代这些应用程序迁移模式。
重新托管:也称为直接迁移,是一种常见策略,即企业将应用程序从本地服务器转移到云中的虚拟机,而不做重大更改。重新托管应用程序通常比其他迁移策略更快,并且可以显著降低迁移成本。缺点是,因为未进行更改,应用程序将无法从云原生计算功能受益,而且,在云中运行它们的长期成本可能会更高。
重构或重新架构:重构是指对应用程序进行相当大的更改,使其能够在云环境中更好地扩展或运行。这可能涉及对应用程序的主要部分进行重新编码,以便更好地利用云原生功能,例如,将单体式应用程序重构为一组微服务,或将数据存储进行现代化改造,从 SQL 转换为 NoSQL。
更换平台:作为直接迁移和重新构建之间的一种中间地带,更换应用程序平台涉及针对应用程序的细微更改,以便它可以更好地从云技术优势中受益。示例可包括升级应用程序以使用云原生数据库、更改其使用的操作系统或中间件,或者容器化应用程序。
淘汰/替换:有时,停用应用程序是最明智的选择。这可能是因为它的价值有限,因为它的功能在您环境中的其他地方出现重复,或者因为用新的产品(通常是软件即服务 (SaaS) 平台)进行替换比迁移应用程序更具成本效益。
为了制定最适合企业独特 IT 环境和业务需求的应用程序迁移策略,需要准确了解企业的应用程序组合包含哪些内容、具体的安全性和合规性要求、当前正在使用的云资源以及本地存储空间、计算和网络基础设施等。
为了使云迁移取得成功,企业还需要明确推动云迁移的关键业务驱动因素,并调整策略以与这些驱动因素保持一致。企业需要清楚了解为什么要迁移到云,以及希望通过迁移实现什么目标。
利益相关者可能担心应用程序迁移可能会造成业务中断或导致意外的成本。最常见的风险包括:
对重新托管、重新架构/平台重构或淘汰产品组合中每个应用程序所涉及的风险和收益进行谨慎、详细地评估,可以帮助减轻与应用程序迁移相关的总体风险。尤其是,将部门级成本与企业总成本进行比较,并评估将应用程序保留在本地所需维护的所有硬件的总体拥有成本 (TCO),这些都非常重要。
一般来说,应用程序迁移规划过程可以分为三个阶段。在每个阶段,权衡所有潜在选项的成本至关重要,包括选择保留一些本地部署工作负载。
应用程序识别和评估:在最初的探索阶段,首先要确保拥有一个关于产品组合中所有应用程序的全面目录。然后,根据应用程序是否为业务关键型、其价值是战略性的还是非战略性的以及将其迁移到云中的好处进行分类。应努力从以下特征来理解每个应用程序的价值:
然后,需要对考虑迁移的每个应用程序进行云亲和性评估。在此过程中,确定哪些应用程序可以按原样运行,哪些应用程序需要进行重大更改后才能在云端运行。
还可以使用应用程序依赖关系发现工具来帮助确定将特定工作负载迁移到当前环境之外的可行性。
总体拥有成本 (TCO) 评估:确定云迁移项目的总成本可能是一项复杂的任务。将应用程序和基础设施保留在本地的“假设”场景与将它们迁移到云中的相关场景进行比较。计算任一场景下在本地维护的硬件的购买、运营和维护成本,以及许可软件的成本。
比较两种情况下,您从云供应商处收到的每月账单和迁移本身的成本,其中包括测试新基础设施和培训员工使用更新软件的成本。别忘了考虑留在本地的旧版应用程序的维护成本。
总体风险和项目持续时间评估:在迁移规划的最后阶段,制定项目时间表,并确定可能遇到的任何风险或障碍。
一般来说,应用程序越旧,迁移到云的挑战就越大(因此,可能越不值得)。过时的软件在很多方面都存在问题:维护成本高昂,如果不再打补丁,可能会引发安全问题,而且在现代计算环境中往往表现不佳。决定迁移旧版应用程序之前,要对它们进行特别彻底的评估。
当组织评估应用程序的可行性和迁移优先级时,将会考虑以下问题。
复杂性:此应用程序是在哪里开发的?如果是在内部开发,则开发人员是否仍在公司工作?应用程序的文档是否随时可用?该应用程序自开发以来多久了?已使用多长时间?组织中有多少其他应用程序或工作流程在某种程度上依赖此应用程序或工作流程?
重要性:每天有多少用户依赖此应用程序?每周一次吗?在业务运营中断之前,组织能容忍多久的停机时间?该应用程序是用于生产、开发、测试还是三者兼而有之?它是由内部 IT 团队还是外部供应商管理的?是否有任何其他具有正常运行时间/停机时间要求的应用程序必须与此应用程序同步?
合规性:应用程序必须符合哪些监管要求?
可用性:该应用程序必须符合哪些正常运行时间标准?例如,是否受到规定 99.99% 正常运行时间的服务级别协议 (SLA) 的约束?
测试
为了确保在应用程序迁移过程中不会丢失任何数据或功能,请在迁移过程中执行测试,以检验所有数据是否存在、数据的完整性是否保持以及数据当前是否位于正确的存储位置。
同样重要的是,在迁移完成后执行跟进测试,对应用程序性能进行基准测试,并确保安全控制措施仍然到位。
虚拟化是许多云迁移策略的基本组件,因为虚拟机可以直接在新的物理硬件环境中运行。甚至可以在物理主机之间移动在虚拟机上运行的实时应用程序,而不会影响用户的体验。虚拟化计算环境的灵活性和多功能性极大地简化了应用程序迁移过程。
许多服务可帮助企业制定策略、规划和执行成功的云迁移。
迁移蓝图:在全面的蓝图服务中,供应商会帮助您明确迁移策略和目标,收集有关应用程序和环境的信息,确定用户需求和业务要求,并制定详细的迁移行动计划。
迁移部署:如果您选择托管部署选项,您的供应商不仅会协助您制定迁移策略和计划,还会管理迁移本身以及任何相关的测试和故障排除。这通常是一种统包式服务产品,包括全面的端到端支持。
云托管服务:托管云服务通常包括对基于云的 IT 环境进行监控和维护。托管云服务提供商承担多项职能责任,包括管理云安全到代表企业从供应商处采购“即服务”产品。应用程序迁移可以包含在打包的服务产品中,也可以按菜单添加。
应用程序现代化:应用程序现代化服务包括定制开发产品,通过修改旧版应用程序,使其能够在容器或虚拟化环境中运行,从而为在云中使用旧版应用程序做好准备。
查看 IBM 的最新报告,获取有关云迁移的重要洞察分析。了解每个技术领导者都需要了解的 10 大事实。
了解基础设施即服务 (IaaS)、平台即服务 (PaaS) 和软件即服务 (SaaS) 之间的主要区别。深入了解每种云模型如何提供不同级别的控制措施、可扩展性和管理能力,以满足不同的业务需求。
了解跨平台或跨环境进行应用程序迁移,同时确保最大限度减少中断并优化性能的流程。了解迁移旧版及现代应用程序的策略、用例和阶段。
了解如何采取直接迁移策略来快速将应用程序转换到云端,并在保留现有基础设施的同时获得云带来的优势。深入了解让这一方法成为众多企业首选方法的优势、VMware 工作负载和用例。
使用提供自动迁移功能的自助服务迁移工具 RackWare Management Module (RMM),将 VMware vSphere 工作负载迁移到 IBM Cloud。
使用 IBM Turbonomic 高效规划并加速完成云迁移项目。获得对应用程序工作负载切实可行的洞察分析,优化性能并节省成本,同时确保无缝转换到云。
自动执行云端网络预配和编排,以简化迁移、增强灵活性并确保无缝运营。
IBM Instana Observability 可自动在微服务环境中执行应用程序发现、监控、跟踪和根本原因分析。
IBM Turbonomic 是一款应用资源管理软件,可利用 AI 优化多云环境的性能、成本和合规性。它可作为 SaaS 提供,也可以自托管。