Oct 192017
 

现在开始搞PaaS平台,那么OpenShift就必须研究一下,这里写篇文章,把我过去一个月的理解,整理一下。

以前都是搞OpenStack,IaaS层面,发现对PaaS层面,了解不多。不过幸好当时搞Kolla,把OpenStack容器化,对我现在理解PaaS,还是有很大的帮助。

容器和Docker

其实这个对我来说,还是比较熟悉,可以说的清楚。市场上的容器,基本都是Docker,有很多其他容器厂商,不过目前看来还是很难和Docker来PK。

那么对于软件行业来说,我自己是深刻体会Docker带来的变化。是一个革命性的应用。Docker从2013年发布,到现在已经五年,已经进入比较稳定的阶段。

编排和kubernetes

编排,这个词,对于不是开发人员来说,还是不好理解。其实就是当你的应用放到容器里的时候,容器的启动顺序是有要求的。那么这个时候就需要用编排。

对容器的编排,其实很多工具可以实现。对于OpenStack容器化项目kolla来说。ansible目前是编排工具,其实也挺好。这主要一个原因就是在规模不大,容量数量不多,环境不复杂的情况下,ansible编排,是可以满足需求的。

对编排一个需求,就是一个服务如果挂掉,编排工具可以自动启动,压力大的时候,会横向扩容。不过在OpenStack的场景下,无状态的服务,从来都不是瓶颈,nova api,服务我用了OpenStack那么久,没遇到过挂掉的。

对于有状态的服务,其实编排工具是无法实现所谓的横向扩容。例如数据库和消息队列。

编排工具,目前最大的玩家,就是k8s。基本所有厂商都用它。

那么k8s和paas是什么关系。经常在会议上,很多讲座,就把k8s当成PaaS来介绍。

K8S是一个容器编排工具,要实现PaaS的功能,其实还需要在上面做很多工作,监控,日志,CI,CD等。那么这些工具,你可以自己组合,结合自己的公司的需求,搞出一套PaaS平台。

PaaS和OpenShift

真正意义上的PaaS,其实就是业界两家:

  • vmware 的CloudFoundry
  • 红帽的OpenShift

2015年的时候,这两家的PaaS,都是ruby开发,思路基本都是一样,江湖传闻,两位项目创始人酒吧喝完酒,各自搞了一个项目。不过在市场上,CloudFoundry声音是比较大的。远超过红帽。

2015年的时候,华为,IBM,HP的所谓PaaS平台,都是基于CloudFoundry来修改的。

K8s,2014年7月份发布第一个版本,2015年七月份,发布1.0的产品,那么这个时候红帽看到的机会,也是在这个时候,业界的风向发生的改变,红帽,华为,IBM,把底层都改成K8S。

2015年,红帽推出基于k8s的OpenShift。

openshift

Openshift 3.0的产品,就全面转向K8S。可以这样理解,以前的代码全部扔掉,重新来过一次。很神奇的事情,2016年,红帽就宣布OpenShift挣大钱。同时也加大投入。

OpenShift对红帽有多么重要呢?已经成为的第二大收入来源。第一大肯定是操作系统。

那么新版的OpenShift和以前的OpenShift有啥区别呢?

其实以前的PaaS平台一个通病,就是要把应用放到PaaS上,你是必须对代码进行修改才行。例如大家可能以前也去红帽的OpenShift官网测试过一个wordpress的实验,这个wordpress,是要经过代码修改的。一旦进行了update更新,就肯定会挂掉。

现在的OpenShift,不需要你做任何的代码修改,就可以放上去PaaS平台,所以肯定也是能update。

CloudFoundry,刚刚也对外宣布,底层也要支持K8s,不过已经晚了。红帽的势头已经起来。你就完全没有机会了。

我和朋友开玩笑说:红帽的OpenStack势头没做起来,导致OpenStack厂商还能有口饭吃。红帽的PaaS平台,K8s已经势头起来了,别的厂商,其实已经空间不大了。

OpenShift版本

红帽的一贯风格,都是开源版本,商业版本,命名也不一样。从上面图其实就可以看出来,也让用户感觉很混乱。

到了OpenShift 3.6的版本,集成的K8s 1.6的版本,版本就清晰很多

  1. 开源版本:OpenShift Origin 3.6
  2. 商业版本:OpenShift 3.6

我的理解,代码都是一样,就是一个商业支持的区别。

从红帽的发布OpenShift版本可以看出,基本是一年4个版本,紧跟K8S。目前K8S最新版本是1.8。落后2个版本。

k8s 1.5的版本是2016年12月23日,红帽的OpenShift 3.5,是2017年4月份发布

K8s 1.6的版本是2017年3月22日发布的,红帽的OpenShift 3.6是2017年7月底。红帽需要4个月时间发布一个版本。

https://www.kubernetes.org.cn/1353.html

k8s

2017年12月13日 k8s v1.9.0正式版本发布!

Kubernetes 1.1的版本是,2015年11月9日发布。

OpenShift介绍

很多人说红帽的OpenShift就是一个K8S,其实这是一个不算太正确的理解。OpenShift,目前的版本,可以理解成一个真正意义上的PaaS。

红帽在K8S上封装了一层,你基本上已经用不上K8S的命令。上面提供红帽的UI,集成了日志,监控,镜像仓库等功能。也集成的CI,CD。

比如你希望在K8s跑一个mysql的群集,Redis的群集,那么这些都是需要厂商做很多工作才能实现,红帽提供全套的服务。

OpenShift对手

很多厂商基于K8S做出自己的PaaS平台,例如IBM的Bluemix。但是真正能产品化的,也就

OpenShift和Racher。

目前市场上OpenShift肯定是领先的。红帽的开源优势发挥出来。

PaaS和IaaS关系

大家可以受那张图的影响,认为PaaS必须跑在IaaS上。那么其实两者可以没任何关系,也是可以密切联系。

红帽的OpenShift,基本支持所有的平台,物理机器的部署,OpenStack里部署,和虚拟机里部署。

目前OpenShift的部署,是通过Ansible来实现,非常方便。

IaaS平台上,很多组件可以是PaaS通过软件提供,也可以是IaaS提供,例如负载均衡,DNS服务,Nas服务,如果Iaas平台提供这些服务,那么跑PaaS平台,OpenShift,就更加方便可靠。

对于实际的PaaS应用来说,微服务用到有状态的服务,例如数据库,mysql,redis。目前业界都是推荐直接使用IaaS平台的,目前在PaaS层跑有状态的应用,业界的测试还是不够的。

 Leave a Reply

(required)

(required)

This site uses Akismet to reduce spam. Learn how your comment data is processed.