云计算七问七答
2009-04-01 00:00:00 来源:WEB开发网当然这里可能的另一个选择就是效法NYT,用EC2+Hadoop搞定制化分布式运算,而且用的是Java,人才四处可得,相对门槛就低一点(但搞不定最后会死在MapReduce搞不定上:))
SaaS是云吗?
这也是个好问题。
现在很多Software as a Service的服务商,例如Salesforce也都宣称自已提供了云计算服务,这又是怎么回事?我认为比较合理的看法是将云分成三个层次来看:
第一层是硬件层(100台真的电脑,或100个EC2 Instance)
第二层是框架(Hadoop、GAE或者微软的AZure等)
第三层才是服务(记账、PDF生成等)
在这样的架构下,SaaS是属于第三层服务这个范畴。
也就是服务商先搞定第一、二层后,在其上建构自已的专业服务,例如Salesforce的主力服务是CRM,因此它通过云提供一系列的CRM API给开发者使用。举个夸张的例子(注意,这例子是假想的),搞不好Salesforce也是租EC2然后搞了个Hadoop,接着在上面用Java写了一堆API给人调用。这时它就是三层皆备,可称云而无愧了。
另外类似的例子则是像Gmail、Google Reader等,这些都是基于GAE的软件服务(先搞定一、二层,然后建构第三层的专业服务)。
附录
原本我曾认为EC2的虚拟化可以做到将许多台实体电脑虚拟化成一台大的服务器,这样工程师就只需要针对一台“超级电脑”来写程式即可,如果是这样,那EC2其实也符合分布式运算的标准,但我查来查去只不断看到类似下面的解释:
EC2是为可以跨多台主机进行扩展的应用而设计的,而不是那些需要大量资源的更大的应用。(EC2 is more designed for applications that scale well across many hosts, rather than larger applications that require huge resources. ) 可扩展性:Amazon能让你方便地增加或者减少服务器,而不是为一台现有的服务器(Instance)增加更多的电力/内存/硬盘等。这在你的应用设计时就考虑可以跨多台服务器进行扩展,以支持增加的负载的时候效果最好。(Scalability: Amazon supports easily adding or removing servers, not adding more power/memory/disk to an existing server (instance). This works well when your application is architected to scale across multiple servers to support increased load.)
因此目前先初步认定EC2并没有提供这方面的能力,当然如果有错,欢迎指正。
后记
在研究期间叨扰了无数前辈,感谢他们牺牲周未时间情义相挺回答各种无趣的问题,在此致上最高谢意。
另外关于EC2 vs. Slicehost的成本或用哪家比较划算这档事,我也小小想了一下,从实际数据看来,如果只是小型的网站或是创业公司,从省钱的角度来看,应该要选Slicehost,因为它的初始成本最低,例如花个$20美元就可以有颇大的空间与流量可上线运行了。
但EC2/S3的好处则是安全性、稳定性与扩充性,而它最大的缺点则是成本相对较高,一个Instance开着不用一个月就要$72美元,如果生意好流量大那要交的费用就更多。
目前台湾地区用EC2的网站似乎并不多(Pixnet把资料存在 s3的站就多一点),可能主要是连线反应时间不够快所以接受度不高吧,但我们服务的客户本来就多在北美,所以没差。
更多精彩
赞助商链接