反对云计算,理由站得住脚吗?
各大厂商的云计算架构
我与从事云计算领域的人作了一系列颇有意思的谈话;反常的是,这些人认为云计算不适合企业,至少现在不适合。
我说反常是因为,他们每个人都在大型技术公司从事云计算工作;人们可能会认为,这种工作角色会让他们竭力主张采用云计算。那么,为什么缺乏足够的热情呢?对其中几个人来说,云计算的功能其实还没有准备好适用于企业。对另一些人来说,云计算是个太模糊的术语,企业并不真正明白其涵义。对另一些人来说,云计算不会――也许永远不会――提供企业IT所需要的必要的实用因素。尽管我认为他们说的话都很中肯,但我还是对这些就是无法得到解决、永远不变的问题有所怀疑。
我与他们的谈话中得知,企业采用云计算面临五大障碍。这五大障碍分别是:
• 目前的企业应用程序无法方便地迁移
• 法律、监管和业务方面存在风险
• 难以管理云计算应用程序
• 缺少服务级别协议(SLA)
• 云计算缺少成本优势
目前的企业应用程序无法方便地迁移。各大云计算供应商(亚马逊的Web Services、Salesforce的force.com、谷歌App Engine和微软Azure)都提供了与常见企业应用程序架构不一样的架构。

亚马逊的Web Services在这方面提供了最强的灵活性,因为它提供了“空的”镜像,你可以把什么都放在里面,但是应用程序不容易迁移,这是由于其独特的存储架构所限,这意味着它们无法轻松迁移。
Salesforce的force.com这个开发平台与专有架构联系起来,该专有架构又与salesforce.com紧密集成起来,与常规的企业应用程序架构根本不一样。谷歌App是基于Python编程语言的一套应用程序服务――如果你的应用程序用Python编写、适应谷歌应用程序服务,那很好;但是企业应用程序、即使用Python编写的那些应用程序还没有针对这种框架来设计。Azure是基于.NET的架构,提供的服务基于现有的微软开发框架,但它不提供常规的SQL RDBMS存储,因而需要不同的应用程序架构,从而很难把现有的企业应用程序迁移至该环境。

据我采访过的一个人说,把应用程序从内部数据中心迁移至云计算平台是企业热衷于采用云计算的主要因素;一旦它们发现把应用程序迁移至外部云有多难,原本高涨的热情就会消退。

我会说,这对企业来说肯定是个挑战,因为要是把应用程序迁移至云计算环境很容易,肯定有助于用户积极采用。可又很难理解一些云计算供应商像现在这样不遗余力地提供云计算服务是出于什么样的动机。谷歌致力于Python有点费解,因为Python绝不是当前最流行的脚本语言。谷歌有时似乎一旦认准了技术上一流的东西,就会坚持不懈,尽管有迹象表明这会阻碍采用。至于Salesforce,我肯定能理解致力于主业的这家公司决定充分利用force.com架构来开发附件的做法,但是如果不付出相当大的努力,现有应用程序不可能迁移至force.com;当然,只要企业考虑为专有平台编写新的应用程序,就会存在被专有技术锁定(lock-in)的问题。相当奇怪的是,微软没有为用户把同一应用程序部署到本地或部署到Azure提供方便;尽管Azure架构能够开发很多先进的应用程序,但缺乏易于迁移的功能会让很多微软用户打消探究使用Azure的积极性。

另一方面,一种架构与现已得到接受的企业应用程序架构不同,未必意味着它就有缺陷,或者太难把应用程序迁移过去。迁移现有的应用程序方面存在一定程度的磨擦,这么说可能更合适;这个磨擦程度不一样,取决于人们想迁移至哪个目标云计算平台。
当然,云计算服务厂商在技术上似乎完全有能力开发物理至云计算(P2C)迁移工具,从而完成迁移所必要的所有或大部分技术工作。当然,这种工具需要能够兼容几种不同的云计算架构。
即使自动化工具没有开发出来,服务供应商还是有能力高效、低成本地执行迁移服务。
自然,执行这种迁移不会是免费的;不是要购买软件,就是要为服务掏钱。关键在于,这并非不可逾越的问题,而是难度有限的问题。
采用不同架构的云计算方面更可能面临的挑战在于员工技能方面。让技术人员尽快熟悉云计算在架构、实施和运作方面的需求并非易事:事实上,人力资本是最难提升的一种资本。不过,云计算代表了一种新的计算平台,IT部门在过去已经多次经历了平台转型。在眼下Windows开发人员不稀罕的时期,人们很容易忘了这个事实:曾经一度,Windows NT技能好比大海捞针一样难找。
总的说来,现有的应用程序缺少一条便利的迁移道路将会阻碍云计算的采用,但并不代表就是永远存在的障碍。