Oct 262017
 

最近深入了解了一下OpenShift,基本功能已经会玩。不过后续要深入的地方,还是很多,这里整理一下,应该是今年要完成的工作。

Pipeline

这个就是OpenShift 的CI功能,应该需要好好研究。

https://blog.openshift.com/openshift-3-3-pipelines-deep-dive/

有视频,可以好好看看,有相关的代码demo。

Deploying Applications from Images

现在很多应用,已经是采用容器来发布,提供Docker file,我们如何使用OpenShift 来发布呢?这个问题,其实非常值得研究,红帽连续写了3篇文章来介绍。

https://blog.openshift.com/deploying-applications-from-images-in-openshift-part-one-web-console/

Spark And Tensorflow

这是玩大数据的,目前主流的工具。这个能不能放到OpenShift来跑,这是需要我去验证的工作。

https://radanalytics.io/

专门有一家公司来做这个。相关代码都放到github。应该验证不难。

Tensorflow是做机器学习的。这是值得关注和研究的。

目标就是要把这两个应用,变成App Store.

升级

OpenShift,目前基本是1年3,4个版本,其实一定要面临升级的问题。目前使用的3.6,如何升级到后续的3.7版本。这个是需要好好去测试的。

数据库服务

目前有状态服务,数据库,redis,都是用IaaS的vm来跑。是否也可以用Docker来验证一下,看看实际效果如何。这个需要好好测试。

Oct 252017
 

其实回顾一下虚拟化和容器的发展历程,很大程度是惊人相似。我这里其实肯定不是很严谨的描述。仅仅是大概介绍一下过程。

虚拟化

技术

商业的虚拟化技术其实也不少。开源的的也是一样。著名的就是Xen和KVM两家。

  1. Xen
  2. KVM

Xen是2003年发布。KVM进入linux内核,真正第一个操作系统支持,当时据说是:ubuntu 8.04,也就是2008年,当时的KVM,还是一个玩具.

2010年,红帽发布RHEL 6.0,KVM算是正式进入主流。当时全球虚拟化,公有云,基本都是Xen的天下。

经过了5年的PK,现在已经是KVM独大。目前AWS,阿里云,已经全面转向KVM。

Xen的没落,很多原因,其中一个,就是intel搞了一套cpu虚拟化的东西,帮助kvm胜出。

KVM的想法其实应该是2006年,为了对抗Xen,intel,红帽,IBM,联手搞出一个KVM,放到内核里。

抽象层

那么多虚拟化引擎,那么肯定有人想到要做一个统一管理工具,这样可以管理多个。这样Libvirt就出现了。

Libvirt最擅长管理KVM,不过其实别的都是可以管理。

Libvirt_support.svg

管理引擎

虚拟化的技术,其实需要有管理工具,那么他的管理工具有哪些呢

  • OpenStack
  • CloudStack
  • Eucalptus
  • OpenNebula

其实还要很多,这些管理工具,当时是能管理Xen和Kvm,也有专门针对某个虚拟化的管理工具

  1. Xen Server,专门管理Xen
  2. Ovirt,专门管理KVM

这些工具,从2008年,一直pk到2014年,终于分出的高低。最后是OpenStack+KVM胜出。

管理引擎,也是通过抽象层,Libvirt去管理KVM的。

产品化

其实就是针对管理引擎的产品化。你需要把管理引擎包装出来,加上很多辅助的工具,让用户用的很爽。

  1. 红帽TrippleO
  2. Mirantis的Fuel
  3. Kolla

其实Ubuntu和Suse,都有他们的产品。

Mirantis的Fuel和Suse的Crowbar,大概是2014年出现,到现在也经历了3年多。从我的角度,最终就是Kolla彻底胜出,毫无悬念啊。

OpenStack的创业公司,目前还能有口饭吃,其实是要谢谢红帽。红帽因为在OpenStack上的策略有所失误,导致没能在OpenStack一统天下。要记住啊,

  1. 当年kolla项目可是TrippleO的一个子项目,
  2. Kolla项目的创始人,也是红帽的工程师,
  3. ansible,Ceph都是红帽自家产品啊,
  4. Cobbler,也是Ansible公司的人在维护。
  5. libvirt,qemu,kvm都是红帽的

谢谢红帽给大家留口饭吃吧。

容器

技术

容器的技术,起源很早,我最早接触是OpenVZ,这个让国内很多卖虚拟机挣钱的软件。对于开源,流行的容器来说

  1. LXC
  2. Docker
  3. LXD
  4. RTK
  5. Clean container

LXC,国内互联网2010年就开始使用。不过目前最流行的是Docker,

Docker从2013年发布到现在,其实发展速度很快,很多厂商都来不及响应,这个东西就成为主流。这个时候,intel又想重施故技,搞一个和cpu有关的容器技术,所谓的Clean Container.

不过这次由于Docker发展过于迅速,intel这次搞容器,完全是自己玩,不像当年和红帽勾搭在一起。所以很难在市场立足。

抽象层

和虚拟化其实一样道理,底层那么多容器技术,如何方便管理呢。

CRI Interface, Container RunTime Interface,就出现了,做了一层抽象后,各个厂商就可以和平共处。

dockerkubernetesintegrationmap-octotechnology

管理引擎

对于容器来说,也叫编排引擎,这个大家就比较熟悉3大编排引擎

  1. K8S
  2. Swarm
  3. Messos

K8S是从2014年7月份推出,到2017年7月份,基本上是完胜。厂商纷纷投降。K8s+Docker

和虚拟化也是一样,目前K8s,是通过CRI,去管理Docker。

产品化

用户要用起来,要把k8s,或者messos用起来,那么还是需要做很多工作。业界最著名的产品就是

  1. OpenShift
  2. Racher

国内的很多容器公司,k8s公司,其实都是在做类似的工作,在K8s上增加自己定制,形成自己的产品。包括现在CloudFountry,都号称要支持K8s。

背后的故事也很多,Racher当时号称要管理3个引擎,k8s,swarm和messos,最新的2.0的版本,就只管理K8s。

还是红帽厉害,2014年K8s发布,马上转方向,全面发力K8s,包装自己的OpenShift产品。

当红帽已经做出势头的时候,那是无人能敌的。这种K8s的产品化,基本也是毫无悬念,OpenShift胜出。

Snap1

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层跑有状态的应用,业界的测试还是不够的。

Sep 252017
 

9月份,是OpenStack的Pike版本发布的时间。对于Kolla这次发布来说,也已经发布了pike的版本,整体肯定都是可用的,不过不少小问题,慢慢修复。

如果大家想测试和学习kolla,我还是建议用Ocata版本,这个版本,在过去半年里,已经修复了大量的bug。除非你真的想玩特别新的功能和能折腾。

目前社区已经进入Queens版本开发,对于Kolla来说,未来有什么可以期待和关注呢?

对于kolla-ansible来说,已经步入一个基本的稳定阶段。不过还是有很多细节可以完善。

kolla-ansible容器化

这个其实大家很少关注,不过当你去升级OpenStack的时候,还是会有点不方便。如果我们把kolla ansible也容器化,其实就真的很爽。

对于Ocata版本的kolla ansible,和Pike版本的kolla ansible,他们的requirement是不一样的。还是可能导致一点问题。解决的办法,就是把kolla ansible也容器化。

跨版本升级

kolla需要对跨版本的升级,做更多的测试,尤其是Ocata版本,直接升级到Queens版本。这样可以很好解决用户面临频繁升级的问题。

我相信对于kolla来说,实现的代价应该不大。需要做的就是大家参与去测试。

 

Masakari

这个项目推出已经有至少2年,实现一个用户非常关注的功能,VMHA。就是一个计算节点出现故障后,上面的虚拟机进行疏散到别的节点上。

这个功能最难的地方,就是如何判断节点出现故障,误判,很容易导致vm的脑裂,出现更加严重的故障。

目前大家都是通过zabbix的监控来实现。不过OpenStack社区是通过Masakari项目来实现,目前该项目在申请加入Big tent,那么放到kolla里,也是呼声很高。

替代Devstack

在OpenStack开发过程中,是否能用kolla来替换Devstack。这个真的是一个非常好的想法。其实当年OpenStack ansible,也是有同样的想法,只是没真正实现。

目前kolla社区已经逐步把项目提供dev模式,让开发者可以用kolla来搭建开发环境,在上面进行开发。

性能优化

和Mirantis的Fuel相比,至少有两个地方的性能还是有差距的。

  1. fernet token
  2. Run RabbitMQ with HiPE

参考资料 https://www.mirantis.com/blog/best-practices-rabbitmq-openstack/

需要把这两个功能都启用起来。在大规模部署上,会有很大改善。

https://review.openstack.org/#/c/367262/

Fernet,是需要我们好好测试,这个功能,主要还是因为容器化后,需要好好处理一下才行。

解决遗憾

其实在8月份的月报里,我也已经提到了Pike版本的遗憾,那么这些遗憾,其实应该都是可用在Queens版本,进行很好的补救。

Pike版本遗憾

Big Tent项目,我们就继续努力,实现全家桶。对于Queens版本,我期望各个项目能真正的跑起来。

Aug 272017
 

kolla的7月份月报没写,其实也不是偷懒,主要还是因为社区的开发工作,都在进行中,没太多的更新。8月份,可以说是Kolla的Pike版本交付的重要时候。正式版本应该会在9月15号前发布。

这个月的月报,其实也可以作为Kolla的Pike版本的Release Note。

下面我就把Kolla和Kolla-ansible在Pike版本完成的工作,做一个总结。

Continue reading »

Aug 172017
 

从2016年开始,OpenStack项目的PTL从以前的1年选举一次,改成半年选举一次。也就是项目的当前版本开发周期RC1发布前后,就要开始下一个版本的PTL的选举。

根据 https://releases.openstack.org/pike/schedule.html Queens版本的PTL选举将要在8月初举行,首先是提名,如果一个项目提名人只有一人,那么就自动当选。如果超过2人,就要进行投票,在过去1年里,参与过该项目提交过commiter都是有资格进行投票。如果该项目没人竞选,那么这个项目将会很可能移除Big Tent。

目前所有Big Tent管理的项目 https://governance.openstack.org/tc/reference/projects/index.html

OpenStack专门一个一个地方管理项目候选人的竞选 https://github.com/openstack/election/tree/master/candidates

查看ptl是归属那家公司 https://git.openstack.org/cgit/openstack/governance/tree/reference/projects.yaml 根据邮箱就基本差不多。

如果需要进一步,那么可以 http://stackalytics.com 

下面的更新,不见得很准确,不过我应该都是查询过的。有问题大家纠正。说一下我的感受

  1. 红帽投入在加大,应该是PTL数量最多的公司
  2. 华为在进攻,上半年就挖了好几个PTL,目前含金量最高的Nova PTL在华为 ,keystone也是在华为。 Cinder的Pike的PTL,也是在华为。实力已经可以和红帽PK一下。
  3. 中兴拿下两个项目的PTL,可喜可贺。
  4. IBM,Rackspace,HPE,Mirantis正在退出
  5. Chef,Congress,EC2 api,rpm,puppet,RefStack,solum,magnum 都面临前景的问题。
  6. 这次有两个项目没人竞选PTL,Storlets,Deb,另外Fuel,因为公司原因,移掉了3个项目,增加了一个项目shade。 Storlets后面TC选一个当选。
  7. 表扬一下Lenovo ,Cinder项目的PTL
  8. Telemetry项目还是很艰难,PTL竞选邮件都是维持状态。
  9. 会说中文的PTL在增加。中国公司的PTL也在增加中
  Queens (Pike) Queens (pike)
项目 PTL 公司
Barbican Dave McCowan Cisco
Chef OpenStack Samuel Cassiba (Jan Klare) Cloudbau
Cinder Jay Bryant  (Sean McGinnis) Lenovo (Dell)
Cloudkitty Christophe Sauthier Objectif Libre
Community App Catalog Matthew Wagoner IBM
Congress Eric K 个人
Designate Graham Hayes (Tim Simmons) Suse (Rackspace)
Documentation Petr Kovar (Alexandra Settle) Redhat
Dragonflow Omer Anson Huawei
Ec2 Api Andrey Pavlov (Alexandre Levine) 个人(Cloudscaling)
Freezer Saad Zaher  (Saad Zaher) HPE
Fuel Vladimir Kuklin Mirantis
Glance Brian Rosmaita Verizon
Heat Rico Lin EasyStack (inwinSTACK)
Horizon Ying Zuo (Rob Cresswell) Cisco
I18n Frank Kloeker (Ian Y. Choi) Deutsche Telekom (个人)
Infrastructure Clark Boylan (Jeremy Stanley) OpenStack Foundation
Ironic Dmitry Tantsur Redhat
Karbor Chenying Chenying  (Yuval Brik) Huawei
Keystone Lance Bragstad 华为(Rackspace)
Kolla Michal Jastrzebski   Intel
Kuryr Antoni Segura Puimedon Redhat
Magnum Spyros Trigazis  (Adrian Otto) CERN (Rackspace)
Manila Ben Swartzlander NetApp
Mistral Renat Akhmerov Nokia
Monasca Witold Bedyk  (Roland Hochmuth) Fujitsu (HPE)
Murano Zhurong Zhurong (Felipe Monteiro ) 中兴 (AT&T)
Neutron Kevin Benton Mirantis
Nova Matt Riedemann 华为(IBM)
Octavia Michael Johnson Rackspace
OpenStackAnsible Jean-Philippe Evrard  (Andy McCrae) Rackspace
OpenStackClient Dean Troyer intel
OpenStack Charms James Page  Canonical
Oslo ChangBo Guo EasyStack
Packaging Deb Thomas Goirand Mirantis
Packaging Rpm Thomas Bechtold   (Igor Yozhikov) Suse (Mirantis)
Puppet OpenStack Mohammed Naser  (Alex Schultz ) VexxHost(Redhat)
Quality Assurance Andrea Frittoli IBM
Rally  Andrey Kurilin Godaddy (Mirantis)
RefStack Chris Hoge   (Catherine Diep) 个人(IBM)
Release Management Sean McGinnis (Thierry Carrez ) 华为(OpenStack Foundation)
Requirements Matthew Thode (Tony Breeds) 个人(Rackspace)
Sahara Telles Mota Vidal Nóbrega Redhat
Searchlight Steve McLellan HPE
Security Luke Hinds (Robert Clark)  Redhat (IBM)
Senlin RUIJIE YUAN  (Qiming Teng )   数梦工场(IBM)
Shade Monty Taylor    Redhat
Solum Zhurong Zhurong (Devdatta-kulkarni) 中兴 (Rackspace)
Stable Branch Maintenance Tony Breeds Rackspace
Storlets Kota Tsuyuzaki  (Eran Rom) NTT (IBM)
Swift John Dickinson  SwiftStack
Tacker Gongysh Gongysh 99Cloud
Telemetry Gordon Chung (Julien Danjou) 华为 (Redhat)
Tricircle Zhiyuan Cai (Chaoyi Huang) Huawei
Tripleo Alex Schultz  (Emilien Macchi ) Redhat
Trove Amrith Kumar (Amrith Amrith) Verizon Wireless (Tesora)
Vitrage Ifat Afek Nokia
Watcher Alexander Chadin Servionica
Winstackers Claudiu Belu ClouBase
Zaqar  Fei Long Wang Catalyst IT
Zun Hongbin Lu Huawei