PCF是pivotal cloud foundry的缩写,pivotal是EMC(已被DELL收购)、vmware、GE(General Electric--通用电气)三家注资成立的一个家公司。而Cloud Foundry号称是业界第一个开源PaaS云平台。上午公司请cf 的人做了产品买点介绍,并在之前也在内部搞了一套demo环境。而最近也在学习redhat 的openshift ,openshift 产品起步要比cf 晚,也是redhat为应为pcf 出的一个产品。而双11刚过也看到朋友圈里有人在刷集团通过使用mesos实现了什么什么。pcf也好、openshift也罢、mesos什么的也行,无法都在炒一个概念paas 。

paas与相对Iaas、SaaS的一个平台,即平台即服务。paas这个概念提出来已经很久,像之前的Google App Engine、Heroku等,我们可以看作为paas的早期阶段;容器出现后,像cf、openshift这类基于容器部署集成的产品我们看作为是第二阶段。

cf_vs_openshift

在PAAS平的第二阶段,产品的卖点大多集成在如下几个部分:

  • 自动化部署
  • 集装箱式服务
  • 敏捷开发
  • 灰度发布

这几个功能点我用几个产品来涵盖来说可以看作是:ansible + docker + jenkins + capistrator 。

1、自动化这一块最近两三年提的也比较火,无法是几个产品puppet、saltstack、ansible 等。而部署功能只是其中的一项,同时随着docker的发展,基本上大多的自动化工具都有docker模块的支持;

2、集装箱式服务即开箱即用,基本上市面上的主流产品都是基于docker的演化;

3、敏捷开发实即上包括代码编译自动化、自动化测试两部分。其中代码自动化编译这块很多公司已经做到,如我在数游时用的bamboo、在拍拍贷用的cc—CruiseControl.NET(.net自动化编译)、ndp media时用的jenkins 。功能上来说bamboo 作为一款商业化产品,功能最好用,而且便于集成jira等;jenkins 开源首选 ;cc可以用的人相对较少。而自动化测试这块,目前所遇到的公司中基本没有能够实现到的,大多是基于loadrunner的人工测试---当然loadrunner是可以实现基于脚本的自动化测试的。另外的自动化测试工具如Partner、SilkTest、QTP、WinRunner等只是听说过并未真实见过使用。

4、灰度开发一般是将应用分成两份或三份,一般的做法是先在nginx中将部分server注释掉,升级发布其中1/2或1/3 ,这部分注释的掉升级完成后进行一般配合的会有灰度测试。测试没有问题后,这部分上线,将另外的再发布上线。实现目标无法是不停应用,最后全部升级上线。其中各个配置的修改都是可以通过脚本实现修改的,虽然ansible、salt等自动化工具也可以实现批量发布,不过个人感觉发布这块做的较好的是capistrano+ webistrano 或 fabirc 。

啰嗦了一大堆感觉本篇倒没有一个主题,其实了解了这么多产品后,个人感悟无法是无论产品怎么办,概念怎么提,功能点无法是哪几个,产品也无非是几个功能块或几个开源工具的包装组合(当然对pcf 或 openshift的产品深入理解的话,不可能仅仅是上面几个软件功能的组合。其都是花费了大量人力物力对很多东西的整合,及API接口的提供等。)。

对于一个小企业来说,除非server 是买的都是IAAS 的产品(aws、aliyun等),不然个人感觉PAAS都小企业来说概念有点大了。上面提到的那些软件玩好了,完全可以实现PAAS的尿点。近期忙红帽的课程预计是要化一段时间了,等红帽课程告一段落还是很有必要整理下以前使用的各种工具及功能。

最后来点干货,cf 和 openshift都有相应的社区开源版提供,有兴趣可以自已搭建下社区版玩玩。

cloud foundry 社区

openshift社区