很多关注技术行业的资深分析师认为,云计算(简称“云”)的概念几乎众所周知了。几月前,这个专业术语还几乎不为人知。到现在,大部分的技术分析师、新闻、厂商和会议似乎都在对此评价很多。虽然这个概念相当火,但目前却,还未有云计算一致认同的概念。有时候云计算与简单的公用计算和网格计算可以相提并论,有时候它又与软件即服务(SaaS)和虚拟化不相类似。究竟什么是云计算,当前的许多么模式需要挑战:
1. 数据安全与隐私。云计算基础架构具有多租户的特性,厂商们通常无法保证A公司的数据与B公司的数据实现物理分隔。另外,考虑到大规模扩展性方面的要求,数据物理位置可能得不到保证。如果企业需要遵守业务交易及相关数据方面的全国或国际法规,用户可能会觉得不放心。不过,有人认为,到时候法规可能会考虑这种大规模分布式、多租户环境。
2. 数据访问和存储模型。无论是亚马逊的S3和SimpleDB服务,还是微软Azure的数据服务(Data Service),如今提供的存储模型都需要适应许多不同的使用场景。因而,它们可能偏向采用基于二进制大对象(blob)的简单存储模型或简单的层次模型。虽然这带来了显著的灵活性,却给应用逻辑解释不同数据元素之间的关系增加了负担。许多依赖关系数据库结构的事务型应用程序就不适合这种数据存储模型。
3. 缺乏标准和厂商锁定。大多数厂商都定义了基于标准的机制(HTTP、REST和SOAP等)来访问及使用其服务。不过,在云计算环境开发服务方面的标准才刚刚兴起,而且现在缺乏一次编写、到处运行的功能。 比如,使用谷歌的 AppEngine开发应用程序的方式就与在微软Azure或Force.com上开发应用程序的方式截然不同。使用某厂商的编程模型开发的应用程序要迁移到另一家厂商的平台上并非易事。不过,现在出现了像开放云计算联盟(Open Cloud Consortium)之类的组织,它们鼓励在云计算环境采用基于开源的软件开发,还在考虑制订可以协同工作的标准。
4. 处理故障。考虑到云计算应用程序具有大规模分布式的特性,要明白出现了哪些种类的故障、出现在何处也许并非易事。因此,开发的应用程序要把处理故障当做是正常执行流程,而不是例外情况。
5. 经济模型。按使用付费的模型具有某些优势,但如果使用量一直很高,那么这种模式具有的经济性就不再存在。特别是事务密集型应用如果要使用云计算,厂商就要考虑对付费实行最高限额。
众所周知,云计算模式还比较新,不同厂商对此的定义、工作模型及服务仍在不断发展之中。因此,在选择任何一家厂商之前,都需要全面分析对方提供的服务内容、服务质量、安全模型和支付模型。
总体而言,云计算模式也许已经为企业的某几类应用做好了准备,但肯定没有为关键及事务密集型应用程序做好准备。如果应用程序预计会遇到某些使用高峰,或者需要可变动的存储容量,那么它们非常适合云计算。另外,尽管传统的应用程序如果不经过一番重大改写就迁移到云计算环境上并不容易,但新的应用程序肯定会充分利用基于云计算的服务来满足某些要求。