与IT领域中的很多事情一样,将应用迁移到云中没有通用的方法。实际上,企业基于很多因素选择自己的应用迁移路径——从应用寿命到应用是由外部还是内部开发,都会影响将应用迁移到云中的方式。
将应用迁移到公有云时,大多数IT组织选择“直接迁移”(lift-and-shift)方式或者对应用进行重构。尽管这两种方式都有各自优势,但在制订云迁移战略时,组织应该仔细选择。
正如其名,“直接迁移”方式选取内部应用并将其复制到云中,并不对架构或设计进行修改。
与此同时,重构方式,同样称为应用重构,涉及到在将应用迁移到云之前对应用进行调整。这些变更可能包括修改源代码、重写应用API以及接口,解耦或者耦合数据。其他变更,比如设计一个应用,能够使用内置的云API动态扩展资源或者使数据库调用面向对象,都是为实现云价值的最大化。
Cloud Technology Partners是一家总部位于波士顿的咨询公司,该公司的高级副总裁David linthicum说:“重构将应用按照不同功能组件进行划分,并专门针对云平台进行重新设计。”
“直接迁移”方式在时间及预付成本方面与重构方式存在很大的差异。“直接迁移”方式在一周之内就能够完成应用的迁移,而重构过程可能需要花上几个月的时间——在某些情况下可能更久——这取决于应用本身以及应用是由内部还是第三方开发的。
linthicum说,“直接迁移”方式的成本大概是10000美元/应用。但取决于应用类型以及外部依赖数量——比如与应用相关的数据库,成本可能会显著增加。然而,如果企业立刻迁移很多应用,那么费用可能减少为500美元/应用。如果同时迁移上百或上千个应用,那么成本可能会呈指数级下降。
重构方式的成本与应用以及人执行这些操作的人群有关,因此很难准确计算组织需要支付多少费用。
就重构成本而言,linthicum估计10万美元/应用算是较低价位。但从长远来看这并不一定意味着迁移一定是更节省成本的方式。
迁移的不足之处
如果遗留应用没有进行任何修改就迁移到基础设施即服务平台,那么将无法充分利用云的最大优势之一:通过自动缩放降低成本。在云中,计算资源能够基于应用需求自动扩展或缩减。但大多数遗留应用在设计之初没有利用云固有的特性。因此当这些应用迁移到云中后,消耗的存储及计算资源将会比实际需求多,这可能会带来一笔高额账单。
Enfinitum是一家位于圣安东尼奥市的咨询公司,该公司的首席顾问Robert Green说:“云计算的理念是通过将正在使用的基础设施与负载的峰值请求相匹配获得价值以及成本的节约。”直接迁移的问题是内部应用依据峰值负载构建。当这些应用迁移到云中后,它们继续按照原有方式运行——即使需求或者利用率很低也是如此。
他说:“因此,80%左右的时间可能不存在峰值请求,但在支付费用。”
由于“直接迁移”方式效率不高,在某些情况下直接将应用迁移到云中最终可能会比提前重构应用所花费的成本还要高。某些情况下直接迁移应用甚至比将应用保留在内部基础设施中的费用还要高。
假定灯一天24小时都亮着,那么要比在晚上进入房间时开灯,白天离开时关灯的费用更高。使用直接迁移方式,任何情况下资源需求一直处于峰值状态。
美国北卡罗来纳州阿什维尔市的CIO Jonathan Feldman计划在云上为本市市民提供一个新的信息门户应用,他选择从零开始构建该应用以利用云提供的自动缩放功能。
他说:“这是因为,如果没有在应用源代码内部调用云提供的API,那就不是云了。因为你无法向上、向外扩展。”
其他人同意直接迁移方式并不一定像人们预想的那样能够节省成本。
FlightStats是一家位于美国俄勒冈州波特兰市,提供全球分析数据的公司,该公司的高级DevOps及软件工程师Alex Witherspoon说:“我们有一款分析软件,成本只是我们在AWS中整体成本的四分之一。在内部运行时并不会产生上述费用。”