作者:刘光亚

一年两度的OpenStack峰会在温哥华结束了,和前段时间国内的一些OpenStack负面信息不太一致,峰会上一些Keynotes的用户实际案例证明,OpenStack现在已经进入“Open For Business”阶段,它正在推动和改变我们的世界,前景很乐观。OpenStack基金会COO Mark Collier也表示,OpenStack需要越来越多的创新能力来推动它的发展,同时Mark还期望OpenStack能够作为一个Integration Engine和更多的技术集成,容器技术和OpenStack的集成产生的Magnum就是一个很好的例子。

热门话题

本次OpenStack峰会的热门话题主要包含三个方面:OpenNFV、Docker Container和Federated Identify (Federated Identify号称Kilo的No.1功能)。 因为最近的工作关系,笔者主要关注Docker Container,并参加了所有和Docker相关的Session,发现这些Session都爆满,有个Docker网络的Session居然有700多人订阅参加。

峰会的第二天是“Container Day”,可能是为了打消人们对OpenStack和Docker关系的一些误解,这一天的话题大部分都和Docker Container相关,包括Magnum、Murano、Kolla、Kubernetes和CoreOS等,早上的Keynotes放出来一页PPT,清楚地表明OpenStack社区和Docker社区的深度集成已经进入实质性阶段,如图1所示。

图1 OpenStack社区和Docker社区已经深度集成

早上的Keynotes隆重推出了Magnum和Murano两个新加入OpenStack Namespace的项目,并且做了现场演示,Magnum的演示主要是通过Magnum创建了一个Kubernetes的Bay,然后通过Horizon查看了整个Kubernetes的拓扑结构,并通过Magnum命令行来创建Kubernetes的Pod;Murano的演示主要是通过Murano现有App Store中的Kubernetes应用创建Pod,这两个演示都非常成功。附上演示视频,感兴趣的可以看这里:http://adrianotto.com/2015/05/video-vancouver-openstack-keynote-with-magnum-and-kubrnetes/。

Docker Container相关项目

OpenStack社区中和Docker Container相关的主要项目,这次峰会上提及最多的有三个:Magnum、Murano和Kolla。下面先简单介绍下这三个项目。

  • Magnum

Magnum是去年巴黎峰会后开始的一个新项目,专门用来向用户提供容器服务,其最新的架构如图2所示。从去年11月份开始在StackForge提交第一个Patch,到今年3月份进入OpenStack Namespace,Magnum应该是OpenStack社区从StackForge迁移到OpenStack Namespace最快的一个项目。Magnum现在可以为用户提供Kubernetes as a Service和Swarm as a Service,大家应该会很快在L版看到Mesos as a Service。Magnum的一些Contributor,Adrian Otto是Rackspace的杰出工程师,Magnum和Solum的双重PTL;Steven Dake刚刚离开Redhat加入Cisco,他是Heat的创始人,现在Kolla的PTL,同时还在积极推动一个新项目Machine Learning as a Service;Davanum Srinivas (Dims)刚刚从IBM加入Mirantis,现在担任Oslo的PTL。关于他们的时间分配问题,Adrian的原话是会重点放在Magnum。

图2 Magnum的最新架构

  • Murano

Murano是专门提供应用目录服务的,现在已经提供了测试版,可以通过http://apps.openstack.org/ 来查看。如图3所示,Murano的功能和手机App Store一样,这意味着OpenStack开发者之间的协作将会更加便捷。在一个专门讨论风投怎么看待OpenStack的Session上,使用OpenStack才能吸引风投注意力被专门提出,讨论的重点集中在能解决客户问题、带来商业价值等方面。OpenStack正在逐渐开始打造自己上层的一些PaaS、SaaS平台,希望能基于OpenStack为客户提供大数据、数据分析和计算服务。Murano的最终目标是围绕OpenStack打造一个应用生态系统。未来或许还可以把Sahara也作为Murano的一个应用,帮助用户提供大数据服务。

图3 Murano 专门提供应用目录服务

  • Kolla

Kolla是一个很有想法的项目(个人观点,欢迎拍砖)。OpenStack峰会这次有好多Session都提到了升级的问题,各家的方案五花八门,但最终目标都是保证升级对生产环境集群的影响降到最低。Kolla就是专门来解决用户升级中的一些痛点的。使用Kolla升级很简单:第一步,pull新版本的OpenStack服务镜像;第二步,停止老版本的容器服务;第三步,启动新版本的容器服务。到此,升级完成。如果升级中碰到问题的话,只需要把老版本的容器服务重新启动就行了,Kolla现在主要通过Ansible调用Docker Compose来部署OpenStack Container服务。Kolla的架构如图4所示。

图4  Kolla的架构

Magnum和Murano关系

在这次峰会上,很多人都很关心Magnum和Murano之间的关系。其实早在Magnum从StackForge迁移到OpenStack Namespace的时候,Jay Pipes也问了这个问题。因为Magnum和Murano都能通过Kubernetes向外界提供容器服务,看起来功能有些重复。Magnum PTL Adrian的观点是,现在Magnum和Murano大概有30%的功能是重复的,但是它们的方向不一样:Magnum主要focus在容器服务,Murano主要focus在应用目录服务。Adrian还和Murano的PTL探讨了Magnum和Murano集成的问题,看有没有可能将Magnum作为Murano的一个应用,代替Kubernetes向外界提供容器服务,因为Magnum能提供更多的选择,包含Kubernetes、Swarm等,用户可以根据自己的需要或者熟悉程度来选择最适合的容器服务。Adrian同时也担任Solum的PTL,现在Solum主要通过Nova Docker Driver来和Docker集成,笔者问他是否计划让Solum使用Magnum来管理Docker Container,他说长远目标是,但是目前首先要让Magnum具备Production Quality。

Magnum Roadmap

  • Mesos支持

Mangum的Design Summit上还决定在L版加入Mesos的支持,因为现在Mesos也属于Docker生态系统的一员大将,但是因为Mesos上层的Framework很多,包括Marathon、Chronos、Kubernetes等,所以讨论了下需不需要把Framework也加入到Mesos Bay中,但是考虑到Mesos上层的Framework组合的多样性,例如Mesos+Marathon、Mesos+Chronos、Mesos+Kubernetes甚至于Mesos+Marathon+Kubernetes等,这样可能会让一部分有选择综合症的用户感到很痛苦,同时Magnum要想把所有的组合都实现也很麻烦,所以Magnum在L版会只帮助用户创建一个Mesos的Bay,但是这个Mesos集群会包含所有的Docker Executor,例如Marathon、Chronos、Kubernetes的Executor,用户可以在Magnum提供的Mesos基础上,按照Magnum文档来安装自己需要的Framework。当然这个只是在Design Summit上讨论的最初想法,笔者感觉参加这个Session的人对Mesos和它周边的生态系统不是很熟悉,大部分时间是笔者和沃尔玛的一个人在讨论这个问题,所以蓝图真正实施的时候,可能会有一些变化,但是目标不会变:让Mesos和Magnum的结合为用户提供更好的容器服务。

  • Docker Container网络支持

不管是在哪次峰会,网络永远是热门话题,现在Magnum也碰到了同样的问题:Container的网络怎样管理?现在主要是通过Kubernetes依赖于overlay network的flannel来管理,但是因为flannel的性能和扩展性的问题,所以这次峰会想讨论Magnum和Neutron集成的问题。在Design Session的时候,Neutron的PTL还专门赶过来讨论,最终的结论是需要和Neutron集成,但是具体怎样集成,需要继续讨论,笔者记得Steven Dake提到过想在Docker Server上部署一个L2的Container的Agent来管理Docker网络,但是这些需要在L版继续深入讨论。所以希望国内研究Docker和网络的同学赶紧加入Magnum社区,这块将是Magnum在L版的重点。

  • Senlin集成前瞻

笔者在Magnum的Design Summit提到了一个新项目Senlin(Cluster as a Service)。因为Magnum现在主要通过Heat来做Orchestration,通过Heat部署Kubernetes、Swarm集群,但Heat在Auto Scaling方面的功能还比较弱,同时Heat也不支持为某个Heat Stack添加或删除节点、策略等,而这些功能对Magnum都很重要,希望探讨Senlin能否解决这些问题。这次讨论的结论是,Rackspace也有个项目专门做Auto Scaling(https://github.com/rackerlabs/otter),需要比较一下Senlin和Rackspace项目的区别。同时,因为Senlin现在还在StackForge,Magnum的PTL不太建议使用(因为StackForge的项目变化比较快,可能会给Magnum的开发带来一些问题),所以Magnum暂时还会主要依赖Heat。

Intel Clear Container

在第二天Intel的Keynotes中,Clear Container成为一个高频词汇,Intel的人还在上边讲,我们的微信群里就开始讨论了,同时还搜到了Intel专门为这个Keynotes写的一篇报道。现在国内网站已经有很多Clear Container相关的内容了,感兴趣的可以去搜一下。Clear Container的定位为比传统的Linux容器具有更高的安全性,同时启动速度可以和标准容器媲美,目标是成为云中的安全容器。

OpenStack和Docker圆桌讨论

这次有一个Session专门讨论“Docker对OpenStack到底是不是威胁”,讨论的议题主要包含以下几个方面:

 

  1. Kubernetes和Docker组合能不能取代OpenStack和KVM。
  2. Docker在OpenStack中的作用。
  3. Kubernetes和Mesos在Docker管理方面的优劣。

 

其实这种圆桌讨论通常没有什么结果,主要是给大家传达一下一些比较领先的公司的观点。但OpenStack基金会的看法,在第二天的Keynotes已经很清楚:OpenStack积极拥抱容器。从讨论的结果来看,大家对Docker的定位很明确:PaaS,主要在容器编排方面,如何通过Docker创建新型PaaS。但是讨论归讨论,最终还是希望大家能在实践中对Docker进行检验,探索Docker和OpenStack结合的最佳实践。

微服务(Microservice)

还有值得注意的一点就是,这次峰会上在某个Session中首次提到了微服务(Microservice)的概念,通过微服务实现Service Oriented Deployment,如图5所示。不同的Team可以专注于不同的微服务,每个微服务都可以单独运行,不同微服务的组合可以向外界提供特定的服务。Kolla就是一个很好的范例:通过Docker Container创建OpenStack的微服务,用户可以根据自己的需要对这些微服务来进行组合。相信随着容器技术的发展,微服务会在更多的领域发挥作用。

图5  微服务架构

感想

下面谈谈笔者对本次峰会的一些感想。首先就Docker而言,在峰会上有一个风投与OpenStack相关的讨论,提到目前虽然Docker融资很多,但是真正把Docker用在生产环境解决客户问题并为客户带来商业价值的案例其实不是很多。Docker距离真正进入生产环境还有很长的路要走。

其次很高兴能看到越来越多的中国OpenStacker成为一些项目的Core Member,IBM研究院的滕启明还担任了前文所述的新项目Senlin的PTL,并在峰会上为所有的Heat Contributor阐述了下Senlin的方向。滕启明对这个项目很乐观,因为Heat的Core Team已经同意用Senlin来做Auto Scaling。

这里还想反思为什么中国的Session被OpenStack峰会选中的很少。这次峰会感觉有几个和Docker相关的Session内容一般,甚至不如我们提出的一些Session,但是我们的没有被选中。笔者专门和Ceilomter的Core Member,Intel的Lianhao Lu聊了这个问题,比较乐观的一种猜测是我们提的Session内容虽好,但措辞不是很到位,描述的没有那么酷炫,所以没被选中。因为所有的Session在提交的时候,只需要提交一个几百字的英文简介。能通过几百字的简介完整地描述内容重点,的确需要一些功力。

最后欢迎大家加入到OpenStack社区,为OpenStack发展做贡献,同时通过参与社区开发,迅速提升自己多方面的能力。参加完峰会后笔者发现Magnum的Contributor一下增加了十几个,IRC Channel突然发现了很多新名字,看来大家对Magnum比较认可,希望在L版中Magnum能帮助大家更好地提供容器服务。

转载自原文:http://www.csdn.net/article/2015-06-02/2824827

  1. 真正把Docker用在生产环境解决客户问题并为客户带来商业价值的案例其实不是很多。Docker距离真正进入生产环境还有很长的路要走。