1.5 OpenStack社区
对于一个开源软件来说,与之相关的开源社区无疑是最重要的,它的活跃程度决定了这个开源软件的发展前景与空间。
与Linux社区一样,OpenStack也有一个紧密团结了众多使用者和开发者的OpenStack社区,在这个属于OpenStack的世界里,开发人员可以讨论什么样的设计是最优的,运维人员也可以提出使用OpenStack的反馈意见和需求建议。
此外,OpenStack Summit的举行,OpenStack的下一版本应该取什么样的名字,也都是在社区里完成提名和投票的。我们可以在OpenStack社区官方主页检索到很多公开的资源和信息。
1.5.1 邮件列表
对于任何一个开源社区来说,邮件列表都是最为重要的一环。
OpenStack邮件列表由多个子邮件列表组成,分别用于讨论不同的话题,起到不同的作用。如果读者对某类话题感兴趣,则无论是潜水还是要加入论战,都应该订阅相应的邮件列表。
其中,openstack@lists.openstack.org是OpenStack社区通用的邮件列表。一般来说,用户寻求帮助或发布信息都可以通过这个邮件列表来实现。
openstack-announce@lists.openstack.org是专门用来接收OpenStack发布团队和OpenStack安全团队重要通告信息的一个邮件列表,比如,有关OpenStack的发布、OpenStack解决了某个最新的安全漏洞等信息。
openstack-operators@lists.openstack.org是为OpenStack运维人员相互交流而建立的一个平台,各公司及各云计算运营商的运维人员可以在这个邮件列表里交流关于OpenStack安装、部署和运维方面的经验。
openstack-dev@lists.openstack.org是为OpenStack开发者交流技术而设立的,是一个对于OpenStack开发者而言相当重要的邮件列表。比如,某个开发者打算开发一个新的功能,但在开发之前希望知道社区对这个功能是否感兴趣和是否认可,或者其他人能否提出更好的建议等,都可以通过这个邮件列表与其他人进行讨论。此外,在开发调试过程中遇到的任何问题,都可以在这个邮件列表中提出。如果其他人也遇到过类似问题或知道如何解决,通常都会热心地给予回答。
由于OpenStack项目众多,为了防止邮件泛滥造成阅读困难,通常在发送邮件时会以项目名称作为标题前缀以示区别,比如,“[nova]”表示这个邮件的内容是关于Nova的,“[nova][neutron]”表示既与Nova有关,也与Neutron有关,如此一来,开发者可以更有针对性地阅读邮件。
此外,openstack-qa@lists.openstack.org用于QA讨论测试案例设计、测试配置及测试项目;openstack-security@lists.openstack.org用于讨论OpenStack安全问题;foundation@lists.openstack.org由OpenStack基金会专用;user-committee@lists.openstack.org用于OpenStack用户委员会讨论问题。
1.5.2 IRC和项目例会
通过邮件列表无法实现与社区用户即时互动,我们必须等待有人看到邮件并进行答复,所以它更适用于抛出一个问题或想法,系统地阐述一个观点,并不需要立即得到其他人的帮助和建议。
为了与社区用户进行在线即时交互,OpenStack社区推荐使用IRC。比如,#openstack-dev用于讨论开发过程中遇到的问题,#openstack-nova则用于讨论有关Nova的问题。
在我们提交patch之后,其他开发者会对其进行代码评审并给出意见,随后由我们进行回复。在经过一段时间后,可能是若干天,之前提出意见的开发者会阅读我们的回复及修改后的patch。但是这样的周期可能会比较长,此时,我们可以在IRC上进行即时讨论,提高patch评审效率。
有些时候,我们会发现,在提交patch后,OpenStack的集成测试系统在进行集成测试时会出错,我们就可以进入#openstack-infra频道向常驻在那里的集成测试维护者寻求帮助并报告问题。
还有一类比较特别的频道,如#openstack-meeting,它是专门为各个项目举办例会而设立的。由于各项目例会的时间基本上都不一样,因此可以公用这一个频道,在发生不可避免的冲突时再开设其他频道,比如,可以使用#openstack-meeting-alt或#openstack-meeting-3。
对于OpenStack开发者来说,参加OpenStack各项目例会是很重要的。例会一般由该项目的PTL主持,鼓励该项目的所有开发者参加并讨论会议议题。例会是OpenStack开发者融入社区的一个相当好的机会。
IRC频道和项目例会固然很好,但它们也有局限性。比如,由于开发者比较忙,因此他们并不是都会经常上线来实时地解决别人遇到的问题。再比如,由于OpenStack是一个全球性的项目,很多比较活跃的开发者在上线的时候,往往是在中国的深夜,因此在这种情况下,邮件列表能起到一个互补的作用。此外,由于时差的存在,想要参加一些项目例会并不是一件容易的事,在这种情况下,我们只有依靠查阅会议记录和日志来弥补。
1.5.3 Summit和Meetup
OpenStack每半年发布一个版本,在发布期间会举办Summit(峰会)进行庆祝,并围绕下一个版本中的新设计和新功能展开讨论。
可以说每一届OpenStack峰会都是OpenStack社区的一次盛会,来自全球各地的开发者、测试人员、运维人员、学术研究人员和其他与会者欢聚一堂,共同庆祝OpenStack的发布,交流各自在使用OpenStack过程中的经验,学习和研究OpenStack这个发布版中的新技术,讨论并设计下一个版本中的新功能,寻求OpenStack发展的新机遇。
在OpenStack峰会举办之前,社区会在邮件列表里以提名和投票的方式决定下一个OpenStack发布版的代号。代号的命名规则是按照从A到Z为首字母的顺序,通常以举办OpenStack峰会所在地的某个城市或地区来命名。
表1-1所示为到目前为止,每次峰会的举办地及相应OpenStack发布版的代号。
表1-1 OpenStack发布版代号和峰会举办地
续表
由于OpenStack起创公司之一的Rackspace位于美国得克萨斯州,因此最初的OpenStack代号基本上都以得克萨斯州的地名命名,而且峰会的举办时间也不是很有规律。此后,随着更多公司和开发者的加入,峰会的举办形成了每半年一次的模式,分为春季(一般在4—5月)和秋季(一般在10—11月)两个时间段。
2013年11月,OpenStack基金会首次将峰会放在美国之外的地区举办,因为看重中国和亚洲地区的市场前景,第一站选择的是中国香港,而且当时中国、印度、日本及东南亚的OpenStack用户和开发者规模并不落后于北美和欧洲地区。此后,2014年11月Kilo Summit的举办地点选择了法国巴黎,2015年11月Mitaka Summit的举办地点选择了日本东京,2016年10月Ocata Summit的举办地点选择了西班牙的巴塞罗那,2017年11月Queens Summit的举办地点选择了澳大利亚的悉尼,2018年5月Rocky Summit的举办地点又回到了北美的温哥华,2018年11月Stein Summit的举办地点选择了德国柏林,OpenStack Summit已经具有全球化的发展趋势。而且,上半年通常选择北美地区,主要是美国或加拿大的城市,下半年会选择非北美地区,并且按照一年在亚太地区一年在欧洲地区的规律轮换。
2019年4月,由于OpenStack基金会托管项目增多,因此基金会调整了策略,并提倡跨社区项目合作,同时建立了全新的开放基础设施(Open Infrastructure)品牌。OpenStack Summit也因此第一次更名为Open Infrastructure Summit,目的是除涵盖OpenStack以外,峰会可以涵盖更多开放基础设施项目,如StarlingX、Kata Container、Airship和Zuul,甚至是其他社区的开放基础设施项目。2019年4月,第一次的Open Infrastructure Summit选择在美国丹佛举行,同年11月,峰会第二次来到中国,选择在上海举行。这也是峰会第一次来到中国内地,有利于中国内地OpenStack和Open Infrastructure开发人员、用户及爱好者更方便地参会。
关于峰会上的演讲名额,OpenStack基金会和峰会的主办方也有严格的挑选流程。在一般情况下,每次峰会基金会都会收到1000多个演讲申请,而由于时间的限制,不得不挑选出25%~35%的名额,大部分的演讲申请都会被遗憾地拒绝。
至于谁可以被选中,谁会落选,主题主席(Track Chair)有着绝对的话语权。一般来说,峰会的演讲分为很多主题,比如关于存储的、网络的、云计算应用的、社区建设的等。每个主题都会由3~4名主题主席负责审阅演讲申请,并一起决定批准或拒绝申请。在演讲申请的提交截止之后,社区会发动一轮投票和拉票,即广泛收取社区会员意见,看哪些演讲申请可以足够吸引观众。值得一提的是,投票票数不是主题主席选择该演讲的唯一标准,而只是参考指标,主题主席完全可以根据自己的判断标准来决定最终演讲名单。
虽然主题主席对演讲申请有决定权,但是OpenStack基金会招募主题主席也是相当严格的,基金会和组委会会根据社区个人的自愿申请,其公司、地区、社区角色等多样性,以及其在该主题领域的专业程度等多因素综合考量主题主席的人选,以保证公平性和多样性。来自中国去哪儿公司的OpenStack大使叶璐和EasyStack公司的郭长波都曾分别担任过Community Building主题和Upstream Development主题的主题主席。
除峰会以外,各地区各项目也会不定期地举办技术交流研讨会,我们称之为Meetup。比如,在春、秋两季峰会之间,Nova社区一般会举办Nova中期Meetup,与会者以开发者为主,人数大约为几十个人,均围绕OpenStack的功能设计展开讨论。
在中国的北京、上海、成都、南京及西安,OpenStack中国社区也会联合一些公司不定期地举办技术交流会,讨论的议题有许多类型,包括OpenStack部署、开发及未来构想等。
1.5.4 其他社交平台
除了以上所介绍的沟通渠道,OpenStack还有一些其他社交平台,比如:
· 官方微信公众号,即openstackfoundation。
· 中国地区Meetup发布网站平台。
· 推特Twitter,即@openstack。
· 脸书Facebook。
· LinkedIn。
全球各地的OpenStack用户兴趣小组的联系方式和联络人均可以在网上找到。比如,在国内,有一个名称为“中国OpenStack用户组(China OpenStack User Group)”的小组,经常会不定期地举办各种讨论交流的研讨会,具体可查看中国地区Meetup发布网站。在这些Meetup中,有些会介绍新发布的OpenStack具有哪些新特性,有些会介绍企业部署最佳实践和运维经验分享,有些会介绍OpenStack Summit见闻,有些则会庆祝OpenStack生日等。