云市场观察:平台即服务厂商

最初,平台即服务厂商根据自身支持的语言确立自己的市场差异性,比如支持Java或者.NET,但是最终他们还是要不断发展支持多种语言,最后还要用基础架构即服务支持数据存储、消息服务、应用服务和可迁移性。

市场上为开发者提供了各种PaaS。虽然看起来PaaS厂商都极为相似,但是却也存在诸多不同。要考虑能控制的类型,如果有的话,开发者就可以在基础架构上进行配置了。理想上,PaaS厂商管理了实施的所有细节,但是有时候开发者却需要更多的控制。因此考虑厂商支持的服务极为重要,比如关系型数据库和NoSQL数据库。如果关注厂商锁定,一旦准备在某一个厂商的PaaS产品上开发了应用,就要评估转移到其他的PaaS厂商是否困难。

要跟上市场的变化,在选择PaaS平台时,有一些关键性能需要注意。下面我们就来具体看一下。

IaaS厂商支持PaaS

很多IaaS云厂商逐渐转向提供PaaS。亚马逊Web服务(AWS)弹性Beanstalk就是混合了IaaS和PaaS模型的工具;提供了自动化扩展、负载均衡和应用监控。

AWS Elastic Beanstalk可能对于那些喜欢PaaS优势的开发者有吸引力,这些开发者偶尔需要配置服务器、存储或者其应用使用的其他服务。不像那些把基础架构与客户隔离开的PaaS厂商,AWS为IT提供了运行应用的资源的完全控制,包括弹性计算云(EC2)实例,和简单对象存储服务(S3)。AWS Beanstalk支持Java、.NET、Python、Ruby、Node.js和PHP。

Google App Engine是为了在Google基础架构上运行Python、Go或者Java而设计。应用运行在一个受限制的沙盒中,因此现有的应用可能需要大量改变。比如,应用不能编写文件系统,且必须使用AppEngine、缺失NoSql模式数据库,存储稳定数据。开发者也要访问基于MySQL 5.5设计的Google Cloud SQL和对象数据存储Google Cloud Storage,Google Cloud SQL。

微软Azure最初作为PaaS厂商,随后提供IaaS。除了支持多种语言,微软Azure还提供移动设备应用后端支持的专业服务。SQL数据库和报告服务也包含在PaaS产品中。在思考大数据时,微软可能并不是我们第一个想到的云厂商,但是它和Hortonworks是合作伙伴关系,在Azure中支持Hadoop。Azure的这种结合易于使用且微软对于非微软技术的支持也会让其PaaS吸引更多的.NET开发者。

PaaS厂商静观其变

除了IaaS厂商提供PaaS特性之外,也有各种各样单纯的PaaS厂商。Heroku提供PaaS,支持通用语言,比如Java、Ruby、Node.js和Python,以及功能性编程语言Scala和Clojure。Heroku抽象虚拟机(VM)实例,成为一种结构,称之为dynamo,dynamo被描述为运行单一命令的容器。Heroku基础架构管理你的应用的dynamo数量和分布。除了计算服务之外,Heroku用户可以利用数据库、队列和性能监控服务。

红帽OpenShift是一种PaaS应用框架,支持通用语言,但是也实现了自定制化的功能,允许用户安装其他语言。比如AWS Elastic Beanstalk,OpenShift为客户提供了更加明显的自定制化控制。为了在OpenShift中运行应用,开着创建一个配置文件,指定使用的组件,比如Python和MongoDB,以及应用代码位置。OpenShift可以根据负载自动化扩展,或者系统管理员可以人工按需扩展。

CloudBees的PaaS定位是支持敏捷开发者和Java虚拟机(VM)工作,比如Java、Grails和Scala。Jenkins用来构建、测试和监控应用,提供对于持续集成的支持。CloudBees为关系型数据库提供可管理的MySQL服务支持,为使用其他服务厂商的合作伙伴提供CloudBees“生态系统”,包括进行版本控制的CloudForge、性能监控的AppDynamics、兼容CouchDB云数据库的Cloudant以及支持MongoDB的MongoHQ。

PiCloud采取与其他厂商不同的PaaS方法。这家PaaS厂商关注计算密集的Python应用。开发者可以使用PiCloud库导入代码到其应用,这种功能可以将计算密集功能推入到云端,运行代码,而不是在本地设备上运行。这种放到最小化了开发者工作方法的改变,允许他们通过添加一些代码到其程序中,从而利用PaaS。