超实用11家PaaS公有云供应商服务功能要点总结
不久前,为企业PaaS云建设,个人对11家PaaS公有云供应商的服务内容进行了调查,共享出来,供进行PaaS项目建设的同仁参考。所有调查内容为2014年7月的状态,受限于项目建设目标,调查的范围主要是运行环境和MySQL数据库服务。
调查范围
- Pivotal Web Services(based on CF)
- 搜狐云景
- IBM Bluemix(based on CF)
- 百度开放云(based on CF)
- Google App Engine
- SinaAppEngine
- 华为云服务
- 腾讯弹性Web服务
- 阿里云引擎ACE
- AWS Elastic Beanstalk
- 京东云擎(based on CF)
主要结论
无 论是否基于Cloud Foundry,除了华为这个假PaaS外,11家公有云运营商提供的PaaS模式均为:以运行环境(包括软件负载均衡、运行在虚拟机上的代码运行容器、 其他代码运行需要的框架/接口等)为主体,将关系数据库、文件存储、消息中间件、NoSQL数据库、分布式计算和存储平台、以及其他以API形式提供的服 务能力等作为扩展服务向外提供
- 扩展服务通过相应技术平台所需的参数提供给用户,由用户自行在PaaS服务主体或其他场所进行使用
- PaaS平台(如CF)是无法替代IaaS平台(如BMC CLM)的,二者将分别独立运行、共享门户提供服务
- PaaS平台通常包括版本管理(SVN和GIT),以完成对于应用的生命周期管理
- PaaS平台(如CF)仅对其主体(即运行环境)提供健全的监控等管理措施,其他扩展服务(如MySql)的架构、运维等并不是其关注范围
- 关于MySQL数据库服务,通常包括共享和独享两种,共享为同一基础设施平台下的分用户服务,独享为单独基础设施平台上的单独实例服务,理想情况下应提供透明读写分离、异地复制、数据保护等数据库服务
- 公有云供应商提供的单位运行环境和数据库通常都很小,所以他们的共享数据库环境很容易构建,买个满配580(4T内存)就能支持几万个数据库用户,私有云的共享数据库平台就得考虑一下自动扩容的问题了。
- 运行环境弹性基本均包括水平和垂直两种,但是垂直是对所有运行环境均修改
- 对于项目人员管理和项目多环境管理可参照Pivotal Web Services
- 按策略进行弹性的功能可参照搜狐云景
服务要点-(重复功能未一一列出)
Pivotal Web Services(based on CF)
- 没有按照策略的应用弹性,只有手动的cf_scale
- 对每个项目/应用划分工作空间,这个功能对私有云很必要
- 对每个项目/应用划分域,需要企业域名多一级后全部划分给CF使用
- MySQL数据库是扩展服务,而且是第三方的(ClearDB,运行于Azure上的数据库公有云)
- 有eclipse插件,可以做GUI所有的事情和绝大部分CLI的事情
- 支持项目人员管理功能
搜狐云景
提供水平和垂直弹性,有弹性策略
数据库为独享的数据库群集,不透明的读写分离,估计只有两个节点,提供简单管理工具,配额按照数据容量调整,都是droplist,而不是textbox
IBM Bluemix(based on CF)
从文档上看,基本就是个CF,没做啥特别的东西,力气都放在was和db2集成上了。
百度开放云
MySql数据库为透明读写分离,多机房冗余,可以用任意MySql客户端连接,分为共享和独享,没有数据备份的选项
BAE作为狭义PaaS也不包括数据库,也就是说数据库是单独提供的扩展服务
应用是按照执行单元手动扩展的(支持水平和垂直,但是垂直是对所有的执行单元全部进行扩展),每个执行单元都是一个单独的虚拟机。没有策略驱动的弹性扩容
MySql数据库服务分为共有和私有,共有就是共用一个MySql实例,私有就是自己的MySql实例,但是连接方式是一致的,都是域名、用户名、密码,只能修改大小和字符集,有简单的MySql客户端,支持数据导入导出等,自动读写分离,多机房自动冗余备份
- 负载均衡功能是默认隐含在BAE中的
- Source code支持svn和git
- 支持项目人员管理功能
- 发布就是上传war包(CLI&GUI),没有集成开发环境插件,没有SDK
- 有本地开发环境
Google App Engine
- Eclipse插件,支持在本地运行调试程序,直接从Eclipse里部署到GAE中
- SDK包是本地运行环境及其他Google提供的服务API,不包括用于使用App Engine资源的API
- GAE作为狭义PaaS中不包含数据库,只包含运行环境(中间件及相应插件),关系数据库是用提供IP、user、password的方式提供给用户,然后自行配置到GAE中的应用中
- 负载均衡功能是默认隐含在GAE中的
- GAE的应用是分成模块的,每个模块有自己的版本管理和多个实例
- 应用弹性是在实例级别的,分为自动(复杂策略、根据不同的因子去动态决定实例生成)、基本(在应用配置文件中指定最大值,会根据应用压力自动扩大最大值)和手动(在应用配置文件中指定固定个数,需重新注册改变)
- Source code管理基于git,可连接到github
- MySQL关系数据库服务按容量计费,可设置参数如下(初始化申请和之后的手动弹性变化),数据库是有异地复制的,推测应该也是分为共享和独享两种,可用MySQL的任何客户端进行连接:
SinaAppEngine
基于策略的弹性
不透明读写分离的MySQL数据库
华为云服务
它的PAAS是假的。。。
腾讯弹性Web服务
仅支持PHP的运行环境,设置的是实例上限
数据库按容量和访问次数计费
阿里云引擎ACE
支持自动弹性的运行环境
基于阿里MySQL技术的数据库服务
AWS Elastic Beanstalk
处于Beta阶段的服务,基本功能与上述公有云运营商提供的一致。
京东云擎(based on CF)
JAE应用属性
基于策略和手动的弹性
共享的数据库服务,多用户共用同一实例