应用迁移是指将软件应用从一个计算环境迁移到另一个环境的过程。 例如,可将应用从一个数据中心迁移到另一个数据中心,从本地服务器迁移到云提供商环境,或从公有云迁移到私有云环境。
由于应用通常设计为在特定网络架构中的特定操作系统上运行,或者是针对单一云平台开发的,因此将应用迁移到新环境可能会带来一系列挑战。 通常,从虚拟化的架构或基于服务的架构迁移应用比迁移在裸机硬件上运行的应用要简单一些。
确定总体应用迁移战略时,要考虑每个应用的依赖关系和技术需求,以及企业在安全、合规以及成本方面的限制因素。
即使在相同的技术环境中,不同的应用也可能采用不同的云迁移途径。 从云计算早期开始,开发人员就用以下术语表示这些应用迁移模式。
更换主机: 也称为直接迁移,这是一种常见的战略,是指企业将应用从本地服务器迁移到云中的虚拟机 ,而不做任何重大变更。 为应用更换主机的速度通常比其他迁移战略更快,并且可显著减少迁移成本。 缺点是应用未作修改,因此无法得益于云原生计算能力,在云端长期运行这些应用最终可能会产生更高的成本。
重构或重设架构: 重构是指对应用进行重大更改,使其可以在云环境中更有效地扩展或运行。 这可能包括对应用的主要部分重写代码,使其能够更有效地利用云原生功能,例如将单体式应用重新构造为一系列微服务,或对 SQL 数据存储进行现代化改造,使其成为 NoSQL。
更换平台: 介于直接迁移和重构之间的一种方法,更换应用的平台需要对应用进行重大更改,使其能够从云架构获得更多收益。 示例包括:升级应用以使用云原生管理数据库,更改应用所使用的操作系统或中间件,或者使应用实现容器化。
淘汰/取代: 在某些情况下,直接淘汰应用是最合理的做法。 这可能是因为其价值有限;环境中的其他地方已存在重复的功能;或者与迁移应用相比,由新产品(通常是软件即服务 (SaaS) 平台)取代它的性价比更高。
要制定最合适贵组织独特 IT 环境和业务需求的应用迁移战略,必须清楚了解组织中的应用组合、安全与合规要求的具体内容、当前使用的云资源以及本地存储、计算和网络基础架构的状况。
为成功进行云迁移,还需要了解关键的业务推动因素,确保战略与这些因素保持一致。 需要弄清楚为什么要迁移到云以及希望通过这种转变达到什么目的。
在下面的视频中,Andrea Crawford 详细介绍了云迁移:
利益相关方可能会担心应用迁移导致业务中断或产生意外成本。 最常见的风险包括:
无论是更换主机、重构还是淘汰产品组合中的应用,都需要围绕相关风险和收益开展仔细而全面的评估,这样有助于降低与应用迁移相关的总体风险。 尤其是,一定要比较部门级成本与企业总成本,并评估将应用保留在本地所需的任何硬件的总体拥有成本 (TCO)。
过去几年,企业一直在想方设法将应用迁移到云端,因为他们希望获得云提供商所带来的灵活性、可扩展性或可预测的按使用量付费的成本结构。
而如今,他们还希望环境能够支持创新。 无论这是意味着使用高性能处理器以支持深度学习算法,还是部署容器化应用,帮助开发团队快速实施变更以改善客户的数字化体验,云技术始终支持企业尝试新生事物,检验新的奇思妙想,以及更快地进行试错和摸索。 在许多情况下,相较于可能被取代的虚拟机,容器化等云友好型技术能够为最终用户带来更出色的体验。
一般来说,应用迁移规划流程可以分为三个阶段。 在每一个阶段,必须权衡所有潜在方案的成本,包括选择将某些工作负载保留在本地,这一点至关重要。
应用确定与评估。 在这个初始发现阶段,首先要确保掌握产品组合中所有应用的完整目录。 然后,根据应用是否为业务关键型、是否具有战略价值以及将应用迁移到云端的目的,对应用进行分类。 必须尽可能了解每个应用在以下方面的价值:
然后,针对考虑要迁移的每个应用,进行云亲和力评估。 在这个过程中,可以确定哪些应用准备按原样迁移,哪些需要进行重大更改后才适合在云端使用。
还可以借助应用依赖关系发现工具,确定将特定工作负载迁出当前环境的可行性。
总体拥有成本 (TCO) 评估。 确定云迁移项目的总成本是一项复杂的工作。 需要比较将应用和基础架构保留在本地的“假设”方案和迁移到云端的相关方案。 这意味着需要计算任一方案中,保留在本地的硬件的采购、运营和维护成本以及软件许可成本。
需要比较任一方案中,云提供商月度账单的成本和迁移本身的成本,包括测试新基础架构和培训员工使用新软件的成本。 别忘了保留在本地的原有应用的维护成本。
总体风险和项目持续时间评估。 在迁移规划的最后阶段,须制定项目时间表,确定可能会遇到的任何风险或障碍。
一般来说,应用越老旧,迁移到云端的难度也就越大(因此,价值也可能越低)。 过时的软件存在许多方面的问题:维护成本高,停止补丁更新后会引发安全问题,以及在现代计算环境中性能较差。 在决定是否迁移原有应用之前,必须首先对其开展全面的评估。
当组织评估应用的迁移可行性和优先级时,须考虑以下问题。
复杂性:应用是在哪里开发的? 如果是在企业内部开发的,开发人员是否仍在贵公司工作?应用的文档是否持续可用?应用是什么时候开发的? 已经用了多久?组织中有多少其他应用或工作流程在某种程度上依赖该应用?
关键性:每天有多少用户依赖于该应用? 每周呢?在造成业务运营中断前能够承受多长的宕机时间?该应用用于生产、开发、测试还是全部这三种环境?该应用是由内部 IT 团队还是由外部供应商管理?是否有其他应用的运行/停机必须与该应用同步?
合规性:该应用必须遵守哪些法规要求?
可用性:该应用必须符合哪些正常运行率标准? 例如,它是否要达到服务级别协议 (SLA) 所规定的 99.99% 的正常运行率?
测试
为了确保应用迁移过程中没有数据或功能损失,必须在迁移期间进行测试,以验证所有数据都存在、数据完整性得以保持以及数据现在位于正确的存储位置。
同时,还必须在迁移完成后进行跟进测试,确定应用性能基准,并确保安全控制措施落实到位。
虚拟化是许多云迁移战略中的一个基本组成部分,因为虚拟机可以方便地在新的物理硬件环境中运行。 甚至还可以在物理主机之间迁移在虚拟机上运行的实时应用,而不会干扰最终用户的体验。 虚拟化计算环境的灵活性和多功能性极大地简化了应用迁移过程。
虚拟机管理器的类型和迁移操作
目前可用的多种复制和迁移解决方案使客户能够在裸机服务器、云中的虚拟服务器甚至虚拟机管理器之间迁移虚拟机。
许多服务可用于帮助企业制定战略和计划,以及成功执行云迁移。
迁移蓝图:通过全面的蓝图服务,供应商可以帮助您厘清迁移战略和目标,收集有关应用和环境的信息,发现用户和业务的需求,并制定迁移的详细行动计划。
迁移部署: 如果您选择管理部署服务,那么供应商不仅可以帮助您制定迁移战略和计划,还会管理迁移过程本身,执行任何相关的测试和故障排除任务。 这通常是完整的服务,包括全面的端到端支持。
云管理服务:云管理服务通常包括对基于云的 IT 环境进行监控和维护。 云管理服务提供商将承担多项职责,包括管理云安全性,以及代表您从供应商那里采购即服务产品。 应用迁移服务可包含在成套的服务产品中,也可以按需添加。
应用现代化:应用现代化服务包含自定义的开发服务,通过修改原有应用,使之能够在容器或虚拟化环境中运行,为原有应用在云环境中的使用做好准备。