【51CTO.com快译】在云计算的早期阶段,Gartner定义了所谓的应用程序迁移的五个R。许多用户发现这五个方法很有意思但又模糊不清,如今有人质疑这五个R是否仍然适用。
不妨从现代云的角度来看待这五个R以及为什么开发人员可能需要重新思考应用程序迁移流程。
1. 重新托管(Rehost)
重新托管又叫平移,是指企业将应用程序从本地物理系统迁移到云端虚拟机。在此方法中,除了对云所需的部署配置参数进行一番调整外,应用程序不进行任何重大更改。
如果目标侧重于服务器合并而不是应用程序现代化,重新托管仍然有用。然而今天,许多企业更多地关注容器而不是虚拟机,获得可扩展性和弹性方面的更多好处。如果使用容器,企业要有标准化的部署和连接模式,这需要开发人员修改任何不适合该结构的应用程序。
2. 重构(Refactor)
重构是指企业将应用程序迁移到PaaS环境而不是迁移到虚拟机。早在2011年Gartner发布五个R时,重构和重新托管分别表示迁移到PaaS和迁移到IaaS,而今天情况较为复杂。PaaS现在的含义极为广泛,常常指云提供商提供的托管资源和原生Web服务。
3. 修订(Revise)
修订是指企业改动应用程序以适应基于云的基础架构这个过程。如今,云基础架构包括托管以及众多云原生服务。比如说,开发人员可以用云版本数据库替换旧数据库,好让应用程序在云端更高效地运行。
4. 重建(Rebuild)
在重建期间,开发人员专门为云重写应用程序。企业将此选项视为叉车式替换整个应用程序,这常常具有破坏性。然而在当下,重建需要更改应用程序以便使用云原生Web服务(这个过程结合重构和修订),或者将应用程序分解为新的云前端组件和传统的事务后端组件。
许多企业将云托管的浏览器和移动应用程序支持功能添加到仍将在数据中心运行的旧应用程序。在这种情况下,应用程序的云托管前端是全新的,而传统的后端并不大幅变化(如果有变的话)。因此,对于大多数用户而言,重建不是应用程序迁移过程的一部分。
5. 替换(Replace)
***一个R是指替换,也就是将旧应用程序完全换成托管的SaaS版本。然而,通常只有适用于横向或较为一般的业务应用程序的SaaS选项。核心业务应用程序很少以SaaS形式来提供,许多公司绝不会在数据中心之外的任何地方运行这类应用程序。因此,虽然企业应该明确评估市面上现有的SaaS选项,但今天的SaaS应用程序仍然更像是云提供商的Web服务的第三方扩展,用户需要与自己的软件集成起来。
改变对应用程序迁移的看法
从上面列出的几个因素来看,五个R并不总能正确指导应用程序迁移过程。这应该不足为奇,因为云技术在以令人惊叹的速度发展。现在,我们应该用两个新的R:重新思考(Rethink)和重新设计架构(Rearchitect)取代原来的五个R。
今天的企业并不是要将应用程序迁移到云,而是针对云重新思考应用程序设计。这使得它们能够充分利用云原生功能和优势,同时为无法经济高效地运行的应用程序保护传统数据中心基础架构方面的投入,或者满足合规性要求。作为这个过程的一部分,开发人员可能常常将应用程序分解成更小的组件。
重新思考应用程序设计后,开发人员的下一步是为将在云端运行的应用程序组件重新设计架构。清点可用的Web服务和SaaS工具,然后分配和修改应用程序的每个与云兼容的组件,使用最适合它的那个工具。
传统事务处理和用户界面组件之间明确分离的应用程序一般会被重新思考和重新设计架构,面向用户的组件在云端运行。只有需要高度变化的资源,或者某些云服务可以提高其质量和性能,没有独特用户界面组件的应用程序才应放在云端。
原文标题:It's time to rethink app migration strategies for cloud,作者:Tom Nolle
【51CTO译稿,合作站点转载请注明原文译者和出处为51CTO.com】