本文谢绝任何公众号转载!
Mesos社区与生态
首先介绍下Mesos社区。Mesos是Apache下的开源分布式资源管理框架,它被称为是分布式系统的内核,是DCOS,也就是我们通常所说的数据中心操作系统的的基础。Mesos最初是由加州大学伯克利分校的AMPLab开发的。
2014年参加Mesos conf的是260多人,2015年在西雅图一下涨到了700多人,所以Mesos在2015年是发展迅猛的一年。现在在Mesos社区贡献代码的主要是Mesospher,Twitter,IBM和Intel,大多数committer都来自Mesospher和Twitter。但是现在Twitter的好几个工程师都跳到了Mesosphere,同时Mesospher也有几个工程师跳到了Intel,现在IBM在社区逐渐发力,从目前代码的提交量和参与人员来看,已经成为第二大贡献者。
比较Mesos社区和OpenStack社区,Mesos和OpenStack到现在都已经发展5年多了,OpenStack峰会上次的人数是将近7000人,Mesos才700来人。其实也不奇怪。OpenStack项目很多,有十几个核心项目,分摊下来的话,其实一个项目大概也就对应6,700人,这么想Mesos社区还是挺活跃的。
Mesos的生态系统在2015年发展也很快,出现了好多新的Mesos用户和新的Mesos Framework。并且好多公司都在基于Mesos开发自己的Framework,包括VMware,Cisco,华为,苹果等等。个人感觉是,对于Mesos,大家更看中的是上层的Framework,如何让上层的Framework来最大化地把Mesos用好,是好多公司一直在探索的,这些探索产生的一些需求又推进了Mesos,形成一个良性循环。
这个图很形象的描述了Mesos生态系统的发展历程:
左上角是基于Mesos产生一些商业化的产品、服务,来帮助用户提供DCOS的功能。
左下角就是用户在使用的时候,会有一些特殊定制的一些需求,服务提供商需要根据这些需求提供解决方案。
右边这一步就是说如果是一些很common的解决方案的话,就需要把这些方案贡献给社区。
然后就进入下一轮迭代开发:改进产品,提供解决方案,贡献社区,其实这个和OpenStack的开发流程基本上是一样的,都分为这三步。
新应用的话,主要是Mesos和越来越多的Framework开始继承了,包括Kibana,Kafka,Kubernetes,Cassandra, Swarm等等,另外一个值得注意的是华为贡献了他们的CloudFoundry的Framework,虽然现在还处在一个原型阶段,但是CloudFoundry和Mesos集成又为Mesos生态圈添加了一员大将,如果有人在基于CloudFoundry做PaaS的,可以对CloudFoundry和Mesos做一些调研,他们的集成能够让用户的数据中心资源使用更加充分。
Mesos演进
接下来我们看下Mesos社区在最近一些版本发布的和即将发布的新功能,Mesos 0.27马上发布,现在已经开始了0.28的开发,至于什么时候到1.0,这个不好说。
Resources/Attributes discovery (Mesos-3366)
在一个异构的计算环境中,客户在运行作业的时候,有时候对硬件有一些特定的需求,例如GPU,网卡类型,CPU架构,操作系统版本等等,但是这些属性,Mesos Agent在启动的时候,都不会主动上报给Mesos Master节点的,用户虽然可以通—resources –attribute等flag在Mesos Agent启动的时候指定一些属性值,但是这样做的缺点是如果换了一台agent,这些属性值可能需要改变,不便于移植。所以社区就做了这个项目,能够实现让用户在Mesos Agent启动的时候,指定一些专门做资源搜集,资源发现的一些hook脚本,让这