您的位置:首页 > 大数据 > 云计算

什么才是真正的云计算的PaaS?

2011-04-15 17:58 483 查看
关于云计算主要包括IaaS、PaaS、SaaS三个层次,恐怕已经和“我爸是李刚”一样流行了,IaaS、SaaS这两个概念比较容易得到直观的理解,但对PaaS的理解,业界内可谓百家争鸣,理解上千差万别,尤其是国内一些声称自己是PaaS的主流厂商,理解上真是“更上一层楼”!

google上搜了一下,好像也没有很清晰的关于PaaS的定义,国内外PaaS提供商提供的PaaS服务也是五花八门,犹如眼睛掉进了万花筒。

PaaS之所以比较混乱,我想一个原因是Platform这个词所指范围太广了,现如今做什么都声称是“平台”,商家也看到了“平台”的利益所在。

PaaS是介于IaaS和SaaS之间的一种服务提供形式,就具体实现上看,可以想象成是“主机

(其实是基础架构)”和“Web应用程序

”之间的一种中间服务,用于屏蔽IaaS的可见性,为Web应用程序提供透明的可靠性、可扩展性及其他云特征。

我的个人理解是PaaS最首要的本质特征是它是一个分布式环境的管理平台,它可以控制“应用程序代码
”在IaaS云中的分布/发布,提供“应用程序代码
”的运行环境基础架构
,分发网络请求到正确的“应用程序
”及配额管理(从这里可以看出PaaS底层是与编程语言无关的);其次,才是构建于运行环境基础架构之上的语言支持(可能是plug-in方式的),比如支持php,支持java应用程序等。这才是纯粹意义上的(或者是比较底层的)PaaS,它的可扩展性是(在PaaS层)可管理的,对应用代码是透明的。
运行环境基础架构是应用程序代码的运行环境,应提供一种类似沙箱的容器,不允许应用代码操纵IaaS层组件。

下面是对几种主流PaaS的分析,因为相关技术细节披露的不多,纯属个人理解,欢迎指正。

Google Application Engine
:个人认为GAE提供的就是一种纯粹的PaaS,在google分布式计算环境之上,提供对Php和java的语言支持。GAE禁止应用操作socket等系统资源。对Java的支持,提供servlet规范的支持,但个人感觉,GAE对servlet的支持应该没有使用传统的web container,有点像当web请求先到达GAE基础框架,然后GAE调度了一个特殊的可能经过重写的VM或者container来运行servlet程序或整个应用。这点有点和android的KVM相似,不知道是不是真这么做的,如果有人知道,请告知,:)。

GAE提供了几个类别的API,比如urlfetch,mail,image,memcache,datastore等。

使用GAE,你需要围绕着这些API开发应用程序代码,然后部署上去,这点和传统的开发工作有点相似,比较复杂,但应用程序有比较大的控制自由。对应用程序的管理,也不需要知道底层的任何内容,你不知道应用被部署在多少台“主机上”,线程的执行状态等等等等。。。

AWS Elastic Beanstalk
:amazon在运营ec2和S3服务多年后,也加入到PaaS提供商行列,推出了 Elastic Beanstalk,大概看了下,这个PaaS应该是把你在常规使用EC2基础上进行大规模应用部署时的常规工作和分布式架构打包提供出来(在EC2 instance上提供tomcat进行部署)。在使用常规EC2进行部署需要完成应用的部署架构设计,而在使用Elastic Beanstalk后,这些设计工作和部署工作都不在需要了,不在需要配置tomcat集群,配置负载均衡等,一切都是自动化的。应该说Elastic Beanstalk的推出是在原来EC2服务基础上提出的一种增值服务,简化了应用的部署。

在应用管理上,用户可以透过PaaS层,直接管理IaaS层,比如对EC2 instance进行调整等,IaaS层是可见的。

与GAE的不同在于,使用Elastic Beanstalk,你还是能够看到应用是怎么部署在IaaS上的,这个Platform不是很简化,很透明,相比GAE,这个Platform比较复杂。

国内主流PaaS,如八佰拜,易度等
:要不说这些PaaS提供商是更上一层楼呢,哈哈,这些提供商原本都是SaaS提供商,现在也出来叫嚷自己是PaaS提供商,鄙视他们,这么叫嚷纯属吸引眼球,根本不是PaaS。

实际上他们所谓的PaaS,还是SaaS,还是在多租户架构基础上的SaaS,只不过在他们的基础业务平台上,提供更多的定制化功能,这个和PaaS完全是两个概念,或者说,他们的platform,留给用户的操作空间太狭窄了,只能在他们的业务平台上进行定制,完全不能提供客户化应用程序的运行环境。

PaaS,我们需要的是能够运行自行开发的应用程序于云端的平台,他们把PaaS局限于只能运行他们自己的应用程序,简直是太狭隘了,完全在混淆云计算概念。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: