读了很多云的文章,大大小小也参加了无数次的“云”会议,也多次浅层次的研究了数个目前IAAS的服务提供商。以上这张图丑了点,但为了能脚踏实地的在云端行走,我们仍在坚持。按照计划,5月份即可有第一个面向用户的测试版出来,甚是期待。 

      就我的理解,对云计算至少有以下几点是希望能与大家一起共鸣的:
 
1、从主机服务到VPS,它是真正的云吗?
      答案是肯定的:不是,当然不是。理由如下:
 
        以往一般人要提供网络服务,大多是去租虚拟主机,有钱一点就丢机器到机房去,这是最常见也最传统的手法,这个手法最大的缺点在于:如果临时有大流量需求,例如办个活动,很难迅速扩充服务能量,不论是要搞到大量的机器,或无穷尽的带宽,都是个问题。
 
        因此,这几年来比较流行的玩法是所谓的 VPS/VDSVirtual Private Server),透过类似 XEN这样的软体,将一台实体服务器虚拟化( Virtualization)成多台虚拟机器然后出租,这样一来当临时有大流量需求时,可以很容易地加买几台虚拟机器就撑过去了。
 
        前面开头谈到的 EC2就是这样一个服务,另外这一两年颇受好评的 Slicehost也是,在 EC2的例子里,每一个虚拟出来的机器叫做一个实例( Instance),因此要应付大流量事件时,可以狂开 Instance撑过去,这比狂买实体机器便宜多了。
 
        由于VPS真的超方便而且很好用,因此迅速受到大家欢迎,久而久之 ,VPS这样的服务似乎也就跟云画上了等号,但这个等号里,有个地方却值得进一步讨论。
 
        简单来说,今天一个人在 EC2买了 100Instance,它们并不会自动联合起来工作,而是要靠人工去规划,例如最常见的是在前面放个逆向代理( Reverse Proxy),然后把请求平均导向到这 100台机器上(轮询负载均衡, Round-robin Load Balancing), 并且,更重要的是应用本身在撰写时就要考虑到将来能支持跑在多个分散的机器上,例如 Session要怎么维持?全局内存( Global Memory)如何分享?数据库是否也要散聚在不同机器上?如果分散的话,要怎么维持资料同步?等等这一大堆相关的细节要处理,一个没弄好,呃,就成了 Twitter第二了。
 
        从这个角度看来, VPS(不论是 EC2还是 Slicehost)提供的其实是虚拟化与负载均衡服务,至于在这个基础服务之上,用户要怎么玩就是各显神通。但负载均衡与云似乎并不尽然相同的吧!
 
2、SAAS是云吗?
       这个问题的答案很难给,如果真要给出答案,我支持SAAS是云,但是有先决条件的:
 
        现在很多Software as a Service的服务商,例如Salesforce也都宣称自已提供了云计算服务,这又是怎么回事?我认为比较合理的看法是将云分成三个层次来看:
 
·         第一层是硬件层( 100台真的电脑,或 100EC2 Instance
 
·         第二层是框架( HadoopGAE或者微软的 AZure等)
 
·         第三层才是服务(记账、 PDF生成等)
 
        在这样的架构下, SaaS是属于第三层服务这个范畴。至少有这般,我的理解,它就是云服务了。
 
        也就是服务商先搞定第一、二层后,在其上建构自已的专业服务,例如 Salesforce的主力服务是 CRM,因此它通过云提供一系列的 CRM API给开发者使用。举个夸张的例子(注意,这例子是假想的),搞不好 Salesforce也是租 EC2然后搞了个 Hadoop,接着在上面用 Java写 了一堆 API给人调用。这时它就是三层皆备,可称云而无愧了。
另外类似的例子则是像 GmailGoogle Reader等,这些都是基于 GAE的软件服务(先搞定一、二层,然后建构第三层的专业服务)。
 
未完~~待续