中云网( http://www.china-cloud.com/)今天(2010年1月12日)转发的一篇文章( http://www.china-cloud.com/cloudcomputing/1037.jsp):“IDC前不久共对美国263名企业用户IT高管进行了调查。调查结果发现,2009年期间,云计算服务面临的前三大市场挑战分别为服务安全性、稳定性和性能表现。该三大挑战排名同IDC于2008年进行的云计算服务调查结论完全一致。IDC认为,云计算服务商需首先解决上述问题,才能发展更多云计算服务客户。IDC调查结果还显示,企业用户对云计算服务的第四大担心是:云计算服务成本可能高于非云计算服务。。。美国企业用户对云计算服务的第五大担心是:各类云计算服务之间的兼容性还有待改善。这些企业用户的IT高管认为,由于云计算服务产业还没有制定统一的技术标准,如果自己选择某家云计算服务提供商后,今后转投其他云计算服务商就较为困难,从而使自己受制于人。”(转摘中云网有关IDC报告文章完毕)
本文试图提出如下命题:IDC问题五是本是纲,而前四个问题都是末是枝节。如果IDC的第五大担心,即各类云计算服务之间的兼容性差的问题得到了有效解决,则前面四大担心对应的问题都会得到缓解。命题论证很简单:兼容性带来开放,带来竞争,竞争带来服务质量提高(缓解前三个问题)和服务成本下降(缓解问题四)。
下面我用云存储服务来对我提出的命题作出一个示例。为此我们先假定IDC调查发现的第五大担心即兼容性差问题在云存储世界已经OK了(虚拟语气):产业界已经制定出了数据交换标准,而且各个云存储基础架构提供商(Cloud Storage Infrastructure Providers, CSIPs)也都自觉遵从这个行业标准从而已经实现了云存储的开放性(从CSIPs的自身利益出发,它们应该这样)。其实我们现在离开这个比较完美的开放云存储状况并不很远。前一讲中我提到了EMC的云存储服务Atmos采用Web服务标准协议与数据交换方案REST(Representational Stateless Transfer)。这个REST就是一个很有潜力支持跨服务商间数据交换的行业事实标准。其实REST已经被一些有名的CSIPs比如S3所采用,只可惜由于S3在后端为其数据的存取功能制定了一些自身特有的方式(Bucket数据结构及所需的API,采用自身特有东西的动因或许是为了鼓励用户通过EC2来使用S3吧),用户数据的跨服务商间可交换性受到了一定的局限和影响(下文会讨论)。下面(仍然虚拟语气)假定各个CSIPs都采用REST协议和用户交换数据,而且所采用的内部数据结构和API也没有对数据在跨服务商间可交换性方面造成任何限制。
说到数据存储的可靠性与稳定性大家也许都熟悉RAID(Redundant Array of Inexpensive Disks,低成本磁盘冗余阵列)原理。简单叙述之,在一组RAID阵列里如果一个磁盘失效了,失效磁盘中的数据可以从冗余阵列的其它磁盘中恢复出来。RSA公司的HAIL工作(A High-Availability and Integrity Layer for Cloud Storage: 见eprint.iacr.org/2008/489.pdf)率先提出了将RAID原理运用于云存储服务上的近似概念:将若干个CSIPs组成一个RAIC(也就是把RAID中的Disks换成为CSIPs,中文可以翻译为:低成本云存储商冗余阵列。因为RAID又可简称为Storage Arrays,所以RAIC也可简称为Cloud Storage Arrays,云存储商阵列)。
现在让我们把RAIC做成一个中间商(Broker):它面对前端用户提供云存储服务,它往后端用REST标准协议从多个CSIPs租用云存储服务。它当然还要把用户数据冗余保护到这些CSIPs中去。现在若是某个CSIP服务掉了链子(我们知道这样的事情经常发生)就不会有问题了。RAIC可以从冗余的CSIPs那里取回用户数据。既然用户原本就不知其在云上的数据究竟存在那个CSIP上,当然也就无需关心谁掉了链子了。这就是从服务的兼容性、开放性直接获得了服务稳定性的提高。至于其它种类服务质量的提高,服务成本的降低,就让这些CSIPs去竞争吧。
在本文结尾我再次强调:RAIC所租用的CSIPs必须向RAIC提供不失一般性的,跨服务商范围的标准数据交换协议。也就是上面提到的“用户数据的跨服务商间可交换性”不能受到任何限制。否则用户端就会掉链子。下一讲我将举例说明,如果某个CSIP没有为RAIC(即没有为跨服务商范围)保留用户数据在前后端(使用端与存储端)的一一对应关系(尽管它的确在“我的云存储配我的云计算”内部范围保留了一一对应关系),让我们看用户会怎么掉链子。