OpenStack社区开发组织正在经历向“Big Tent”(大帐篷)模式的全面转型。在核心项目专注发展的同时,诸多新项目也在茁壮地孵化和成长。
伴随着OpenStack软件第12个版本Liberty的发布,第12届OpenStack Summit也于2015年10月27日至30日在日本东京如期而至。相信大家已经从社交媒体等渠道看到了形形色色的对于此次峰会的感想吧!总体来说,缺乏新意、亮点不多的观点占据了主流。
的确,从本次峰会的Keynote来看,除了常规项目的典型用户现身说法,OpenStack基金会的主要动作是发布了衡量OpenStack子项目成熟度的Navigator项目,以及推出了OpenStack管理员认证计划。总体看来,OpenStack基金会和技术社区仍在全力推进OpenStack云的互操作进程,对容器的兼容、网络技术的改进也在稳步推进之中。
在波澜不惊的表现之下,OpenStack社区正在经历一次重要的蜕变。在Liberty版本的发布周期中,这个OpenStack社区全面转向名为“Big Tent”(大帐篷)的Upstream模式。在这一全新模式中,OpenStack社区既保持了对较小规模的核心项目的关注,也积极鼓励在更广泛的Upstream生态环境中展开自由创新。
毫无疑问,“Big Tent”正在改变OpenStack。而在本届东京峰会中,这些在不同细分领域孕育并推进的重要转变得到了充分的展现。峰会期间,UnitedStack有云派出了OpenStack业界高颜值访问天团的庞大阵容亲赴会议现场。这些专注于DevOps、云计量、存储、网络等领域的年轻工程师在为期4天的会议中奔走于不同的会场和Marketplace展台,为中国的OpenStack开发者和用户带来第一手的不同领域最新技术进展和用户实践的最新解读。
11月15日下午,在位于中关村创业大街的JD+智能奶茶馆,UnitedStack有云与大家分享了以下的关键内容。
分享人:余兴超(UnitedStack有云平台架构部PTL、Puppet Openstack Modules项目核心开发者)
现在,一个新手用户就可以使用Fuel、Packstack,devstack很容易地搭建起一套拥有诸多组件和服务的Openstack集群。那么在波澜不惊的部署领域中,我们能够寻找到哪些亮点呢?
峰会期间,Puppet Openstack社区围绕Mitaka Release的开发计划进行了激烈的讨论,讨论的主要议题包括代码的可持续维护、扩展性问题、处理客户端的warning级别输出、健康监测等。
值得傲娇的是,在Puppet项目中,UnitedStack的Devops团队可是取得了相当丰厚的成果呢!Puppet项目中的重要feature——module::config就是由UnitedStack贡献的,目前通过这种方法,20多个module均已支持定制化参数的集中管理。而UnitedStack内部也深度使用了puppet openstack modules,并且持续地对社区进行贡献,在Liberty版本中,对社区贡献排名第四。
另外,来自一线的ops和DevOps工程师也对配置管理和任务编排展开了大讨论。目前主流的生产环境部署包括以下几种方式:
这其中,余兴超比较推崇的是第三种方式,即Puppet + Ansible + py scripts,通过这种方式可以对非DevOps工程师隐藏底层的复杂度,只需要通过一个交互式的Python脚本就可以生成一个集群的配置文件,然后通过该配置文件再去部署一个完整的Openstack集群。
新项目方面,沉寂已久的OpenStack部署领域也有新面孔出现。老实说,部署是一个工具和经验积累的过程,目前已发展到稳定发展阶段。新人要想涌现和突破,必须有特别之处。这次冒出的一个新项目称为——Openstack-Ansible。其实,这并不是它第一次亮相,之前它的名字是os-ansible-deployment。在OpenStack社区执行“Big Tent”战略之后,它被移入到官方项目,曝光度也得到了提升。
那么,OpenStack-Ansible项目是如何自我定位的呢?请看该项目的三大特点:
而在余兴超眼中,这个新项目的优点是什么呢?
以部署nova为例,我们只需要提取os-nova-install YAML文件中的name变量,就可以看清楚整个安装过程了。在私有云部署方面,OpenStack-Ansible除了支持Nova、Keystone、Glance等核心项目外,还支持一些组件的高可用配置,例如支持Galera的自动配置、Ceph存储、负载均衡服务Haproxy等。经过测试,余兴超认为,OpenStack-Ansible项目的代码还有很大的提升空间,但再经历一个Release的发展,该项目也会变得成熟起来,到时候替代devstack也是可能的事情。
分享人:索广宇(UnitedStack有云平台开发部PTL)
作为长期专注于OpenStack云服务监控领域的资深工程师,索广宇在本次峰会上重点关注了Ceilometer、Gnocchi、Cloudkitty、Monasca等项目的技术进展。同样是得益于“Big Tent”的开发模式,在监控与计量方面,OpenStack社区涌现出很多的新项目。除了老牌计费项目Ceilmetor外,Gnocchi(时间序列数据库即服务)、Aodh(告警即服务)、Monasca(监控即服务)、CloudKitty(费率计算即服务)等项目也在蓬勃发展。
总结来说,在Liberty版本中,Ceilometer的主要工作是性能优化和重构,通过缓存机制的优化、多项目集成等方式解决了很多关键性的问题。这些项目之间的分工是这样的:
在未来的Mitaka版本中,OpenStack社区将在告警、数据可视化、回滚升级、Ceilometer的拆分、性能等方面展开新一轮的技术升级。我们看到,Ceilometer这个大项目已经被拆分为Ceilometer、Gnocchi、Aodh三个小项目。这也是受到了“Big Tent”模式的影响。把大项目拆成小项目的好处是,项目管理更灵活、迭代也更快。未来,社区有可能拆分出更多的小项目,每一个小项目都有自己的core团队进行管理。
索广宇重点关注了Gnocchi项目,这是一个时间序列数据库。该项目在2014年4月由Ceilometer的前PTL Julien Danjou提出。Gnocchi为Ceilometer提供存储后端,致力于解决Ceilometer应用中所面临的性能问题。与擅长处理事件数据的Ceilometer相比,Gnocchi更加专注于Metric数据(周期性地轮训并存储的时间序列数据),以及Resource数据的处理。
Gnocchi的数据模型
Gnocchi的工作原理
Gnocchi的优势体现在哪些方面呢?首先它的性能很好,是一个O(1)的操作,同时也是一个异步操作,并且可以水平拓展。另外,它还是一个插件式的部件,索引驱动支持PostgreSQL和MySQL,存储驱动支持file、Swift、Ceph和InfluxDB,并且用户可以对操作进行一些自定义。最后,Gnocchi支持多租户模式。在本届峰会上,Gnocchi的作者展示了该项目的一些压力测试数据,性能表现还是非常出色的。
监控方面,Monasca项目也取得了一些重要的进展。这个项目的初始代码是用Java编写的,目前正在用Python重写。索广宇认为,Monasca项目和Ceilometer项目的相互结合实现了性能的提升,虽然两个项目之间的合作还在不断探索的阶段,但是很可能会带来双赢的结果。
计费方面,Cloudkitty项目虽然诞生不久,但是需求动力却十分强劲。Cloudkitty要做的事情很简单,就是从Ceilometer中拿数据,然后进行Rating的转换操作。计费方面每个企业都拥有不同的需求,Cloudkitty提供了非常灵活的机制,用户可以自行嵌入Python代码。从应用需求的角度看,Cloudkitty是非常具有发展潜力的社区项目。