在今年2月召开的云联盟(Cloud Connect)大会上,云计算咨询公司Blue Mountain Labs的首席技术官David Linthicum作了一小时的演讲,其中列出了搞好云计算项目的17个步骤。
他说:“这些大多数只是常识。”对经验丰富的架构师来说,这也许是常识;但是对一些初次实施云计算的人来说,这显然是个挑战。有关的步骤多达17个,这也许表明了,对于云计算,常识可能不像有些人想象得那么常见。 从那一刻起,我开始重点听演讲者的一个方面:他们何时遇到头痛的问题,这时候光有常识似乎不够。下面是几个例子。 为运行中的系统打补丁 Bill Gillis是贝丝.伊斯雷尔女执事医疗中心和贝丝.伊斯雷尔女执事医生组织的电子健康技术主管,他实施了一套在线系统,为300多个地方的1600名医生提供电子病历。 这是一项棘手的任务。病历自然含有个人的健康信息,必须放在一个网站上妥善保管起来;可是据Gillis声称,该网站每隔10秒就遭到攻击。在IT小组着手搭建电子病历网站时,他想:“我们能造一家大酒店,但是可能没人入住。”众所周知,让医生采用新技术一向很难。在政府激励资金的帮助下,他总算完成了这个项目——医生参与电子病历项目,就有资格领到激励资金。 Gillis的团队使用趋势科技的防火墙和深层安全监视技术来保护系统,但让他头痛的是,如何做到确保电子病历随时可用,同时又要立即给他的虚拟化系统打上补丁,以抵御威胁。没有让系统停机、打上补丁的空当。让Gillis宽慰的是,他发现VMware虚拟机可以借助自动化流程,在运行时打上补丁。Gillis说:“要不是可以给虚拟机打补丁,我们实施的系统原本无法投入运行。” 开发另一款移动应用之难 美国航空公司的移动应用主管Phillip Easter描述了他如何使用微软的Azure云,支持面向Windows Phone的移动应用程序。虽然这么做很好,但是Easter的演讲强调了开发一款能够适用于多种移动设备的优秀移动应用程序有多难。 航空旅客最经常查询的信息之一就是,他们的航班时间是不是已改动。Easter半开玩笑地说:“是改动,而不是延迟。”美航面向Windows Phone的移动应用程序让旅客可以办理登机手续、存储确保通过安检的移动登机卡、查看登机口和航班状态,甚至可以找到航班时间是否已改动。通过美航针对iPhone、安卓、黑莓和iPad的应用程序,可以获得一些同样的功能。但总部设在达拉斯的美航联系了同在达拉斯的微软工程师,添加了诸多功能特性,比如停泊位置提醒、所在航站楼的地图以及访问AAdvantage飞行常客账户。 添加功能本身难度够大了,但是通过合作伙伴的云服务,为公众提供关于航班计划的重要企业数据及其他数据却显得尤为复杂。在这样的情况下,美航只好建立了一台Web服务代理服务器,将数据从美航的企业防火墙后面取出来,确保微软的Windows Azure可以访问,Windows Azure进而确保Windows Phone用户可以访问这些数据。 Easter没有直接提到应用编程接口(API),但美航肯定已经为Windows Azure和美航自己的Web服务网站都使用的每个移动应用程序开发了明确而简单的API。这样一来,美航的开发人员就清楚如何构建可从不同设备访问核心服务的应用程序了。 通过Easter的团队不断积累经验,美航已开发出相应的移动应用程序,便于客户访问航班信息、办理登机手续以及查看航班状态最新资讯。但这并非易事。这需要采取一系列协调一致的步骤,在确保企业数据完好无损的同时,不能疏忽了任何一种设备。 放弃控制 Geva Perry是旧金山湾区新兴公司顾问,博客“Thinking Out Cloud”的作者。他表示,到目前为止,云计算是一种自下而上的现象;在许多企业,开发人员是早期采用者。 据Perry声称,调查显示,云计算之所以在许多公司迟迟得不到采用,原因是员工们在等CIO或IT经理表态,许多IT主管对云计算持消极态度。许多公司在开发人员的要求下采用亚马逊云服务。亚马逊明白这一点,因而开发的服务对开发人员非常友好。” 云服务使得用户更容易绕开IT人员:业务部门的用户刷一下信用卡,就能在云中建立账户,获取虚拟服务器;虚拟服务器用起来感觉实际上与IT部门答复几个月内都提供不了的物理服务器一样。Perry建议,避免这种情况的办法是,在公司内部建立私有云服务,让员工可以通过一种“冲突最小的、对IT部门影响很小或没有影响的流程”,实现自我服务。 Linux及其他开源代码同样通过后门进入公司。Perry指出,放弃一些控制权总比发现自己被用户视为完成下一个项目的主要障碍来得好过。 遗留应用程序没有迁移到云 Forrester的首席云计算分析师James Staten表示,Forrester在2011年初预测,“许多企业会将应用程序放到公有云上,但是会失败。事实的确如此。” 其中一些失败项目与需要连同应用程序一并迁移到云的依赖系统有关,比如辅助应用程序、数据库系统和身份管理系统;还有个原因是,一些或所有应用程序可能需要由大型机或Unix平台改为x86平台。把遗留应用程序迁移到云的真正困难是经济因素。Staten提醒,遗留应用程序的主人想要降低运营成本,但是迁移到公有云基础架构上并不能做到这一点。 他说:“如果使用云无法带来经济效益,就不应该迁移到云。” 我不太确信试图迁移到云的这种做法有多普遍。许多经理觉得,遗留应用程序无法经济高效地迁移过去,于是把它们留在原来的环境。但Staten接着提出了充分利用遗留应用程序的一种方法:作为云计算项目的一部分。如果可能的话,他建议先找出应用程序里面的某些服务,把它们转变成独立的、可以调用的服务,让它们成为易于访问的Web服务。这让公司有机会在公共基础架构上设计和运行“全新”的云计算应用程序,同时仍可获取来自数据中心的关键服务。