走进红帽开放日,近距离接触 Fedora 与 CentOS 社区
| 2017-06-27 11:34 评论: 1 收藏: 1
2017 年 6 月 16 日,受红帽公司之邀,Linux 中国社区参加了位于北京融科资讯中心的红帽研发中心,与红帽活动经理 Jennifer Madriaga、Fedora 社区协调员 Brian Exelbierd、CentOS 项目董事会成员 Jim Perrin 等远道而来的红帽社区人员做了面对面交谈。
由于要参加首次在华举行的 LinuxCon,红帽公司从美国派来了若干位社区负责人和技术专家,在 LinuxCon 召开前夕与社区人士和媒体召开了见面会,就大家感兴趣的一些问题做了沟通和回答。
Jennifer 谈开源产品社区、开放式组织
Jennifer Madriaga - 红帽活动经理
大家好,我是 Jennifer,我是红帽公司内部负责市场营销宣传工作的,我的主要任务就是负责传递我们关于上游社区的一些信息。
我们每个产品实际上都会有相对应的社区,Linux 当然是我们最熟悉的产品了,其中最有名的一个就是红帽企业级的 Linux(RHEL),这个产品也有一个自己的上游社区,就是 Fedora 这个社区。但是其他的产品也都有各自的社区,比如说OpenStack,这也是红帽的另外一个知名产品。我们还有两个非常有名的存储产品,一个是 Gluster,还有非常知名的存储产品就是 Ceph,它也有自己的社区。
红帽还参与了大量的相关社区,其中不少大的项目是直接跟红帽为市场所提供的这些产品是有密切关联的, 主要是涉及到我们的 OpenStack 平台,此外我们还有红帽的企业级虚拟化产品的相关技术社区,然后还有红帽的原子社区,它主要是涉及到容器化技术,在这个领域它也和 Fedora 以及 CentOS 社区有很多的互动和交流,另外还有 JBoss 社区,这是红帽的 JBoss 中间件系列产品,以及还有 Manager IQ 和 Ansible 等等,这些都是有红帽相应的技术和产品提供的,也是我们红帽所支持的一些比较大的社区。
此外还有不少的社区是我们进行了参与,实际上总共我们在上游参与的项目大概有 100 多个,只不过刚才我列到的这些是我们直接红帽自己有产品和解决方案的。此外我们也是重度参与红帽以外的企业所牵头的社区。比如说我们是谷歌所创建的 Kubernetes 社区的第二大贡献者,另外在 Docker 技术和容器技术方面我们也是第二大贡献者,换句话说,就是我们也参与很多并非由红帽自己所牵头的一些开源项目,并且在这些项目中做出了不少的贡献。
实际上,对红帽而言,社区是我们的基础,也是我们的使命所在,我们会思考社区是什么?我们如何与社区进行打交道,在社区里,具体要做哪些工作。实际上每一个社区都是一个独立的实体,在这个实体里面它有自己的治理架构,有自己的工作量和工作负载,它的组成方式可能也各不相同,但是在社区运作中有一个最重要的原则就是要确保最好的一些想法最后能够取得成功,能够获胜。那我们要思考这些想法,我们有些时候不知道这些最好的想法最初是来自于何处的,但是在社区里总是有不同的人能够不断的提出各种新的想法,然后我们会进行跟进。
就像大家可能知道的那样,我们的 CEO 写过一本书叫做《开放式组织》。对于红帽来说,我们开放的不仅仅是我们的 (源代码),而且更重要的是我们有一个开放的文化,我们有一个开放的决策过程。所以对我们来说,我们内部工作一切的基础就是开放决策框架,在这个框架下我们确保每一个人都能发出自己的声音,在红帽和这个社区的运作过程中,就使每个人,包括我们企业的每个人都能够直接给我们的 CEO 写信,这一点其实对大多数公司来说都是非常不同寻常的,而红帽确实为之自豪的。因此开源的整个想法就在于所有人的声音都被听到,然后通过大家的协商一致的进程,能够使最好的想法从中脱颖而出。
那么这样一个开放决策框架并不是大多数公司所采取的典型决策框架,但是我们采用,主要原因就在于我们认为它能够使企业更为成功,那么它是怎么做的呢?就是因为它能够加快工作量,或者说工作的效率和速度,假设我们是一个大的房间,这个房间里所有的人都能够进行沟通并且不断的有人会检查所做出决策的质量,那么在这个过程中,每一个人都感到自己的观点受到了重视,而且都感到自己参与了决策过程,这样一旦决策作出之后,它的落实速度就会非常的快。因此对于一个企业来讲,现在面临的这种技术环境,正在日益发生变化,这样你就需要非常高效,非常有效,并且非常快的就做出决策。
所以对作为开源社区来讲,它就是创新的源泉,在这里大家会进行很多的对话交流,探讨哪些东西哪些技术和产品应该拿到下游具体的使用中去,开源社区也是一个实验室,可以实验各种各样的想法和主意,对于红帽来说,我们会把其中比较成熟,或者是我们认为有希望和前景的这些技术拿出来对它进行加强,使它成为能够供企业用户使用的产品。那么除了有一点特别重要,就是不仅仅是红帽自身的员工参与这个开源社区,开源社区里面有大量来自外部企业和组织的贡献者和使用者,实际上在这个社区里有无数的贡献其实都是由外部的这些人员来做出的。
我们这个开源社区的另外一个特点就是其中一些贡献者是可能来自于我们的竞争对手,虽然如此,但是我们仍然相信我们可以找到最佳的解决方案,因此贡献来自于每一个人,大家可以一起协作找到最佳解决方案。
我们最大的上游社区就是 Fedora 社区,它是我们成立最早的,这个社区的成员遍布全球,包括在中国都有。下面我就请我们的同事 Brain 来进一步的介绍一下 Fedora 社区。
Brian 谈 Fedora 社区、技术大使及社区文化差异
Brian Exelbierd - Fedora 社区协调员
我本人是 Fedora 的行动和影响协调员,我在红帽内部专职负责与 Fedora 社区合作,帮助这个社区实现发展和增长。实际上我要谈的主要就是在 Fedora 这个社区里面,我们如何促进非红帽员工的贡献者的参与;我们也要衡量所有核心的红帽企业级 Linux 的贡献者是如何为这个开放社区作出贡献的。我们衡量的主要有三个领域,我们发现在 Fedora 社区里面,最核心的、最活跃的贡献者大概有 300 人,这 300 人里面大概三分之一是红帽员工,大概三分之二是外部人员,这也是表明了一个健康有序的社区,肯定是能够让所有人都参与进来的社区。
Fedora 社区特别酷的是每个区的人都可以专注于满足于本地的需求,而且在 Fedora 内部我们还有一个技术大使项目,主要目的就是寻找那些个人贡献者,这些人可以是贡献了一些代码,也可以在文件方面作出了贡献。不仅如此,他们还可以帮助 Fedora 社区进行市场的营销、公共关系或者与人交流,谈一谈这些人下一步的想法是什么,而在下一步工作中 Fedora 又可以提供哪些帮助,可以说通过这些工作帮助人们学习如何参与 Fedora 开源社区,并且在这个过程中获得成长。因此对于开源来说,非常重要的一个想法就是说我们也要帮助人们了解如何加入开源的社区,并且为开源社区的活动作出贡献。
Amye 所负责的 Gluster 社区的成员大部分都有技术背景,而且很多人专注于大规模的存储技术。而对于 Fedora 来说,我们则有各种各样的贡献者,这里面有不少个人用户,他们有的是在校的大学生,在学校使用,也有人在家里使用,他们参与这个社区就是希望能够帮助自己把 Linux 用的更好,因此他们做出的贡献可能更多的是在网络方面,在做好文件记录,以及一些小型的本地化功能和特征方面。此外 Fedora 还有一些非常大的企业用户,这些企业用户参与更多考虑的是他们希望影响将来 Linux 所运行的方式,比如说有人会说把它放到一个容器环境下,看看能不能够优化在容器环境下的运作,比如说 Fedora Atomic 这样一个环境。
此外在地区之间也有很大的不同,我们在北美做活动的一些方式,一些有用的做法可能在欧洲就会不管用,因为各个国家之间是有差异的,那这些做法可能在拉美也不管用,因为拉美的大部分人口是讲西班牙语的,这些就存在一个文化上的差异,需要一个语言的本地化,也需要一个文化上的适应。在亚洲就更是如此,它同时面临两种差异,一个是语言上的差异,一个是文化上的差异,在亚洲各个,乃至东西亚之间,南北亚之间,都有很大的不同,因此我们从这个红帽这个角度来讲,我们的关注就是帮助每一个这样的群体,使他们都能够适应这个开源社区的运作方式,并且从中有所贡献,有所收获。
记者:您刚才谈到了有 300 个 Fedora 社区的成员,这里面有多少中国人?
Brain:实际上 300 这个数字是指 Fedora 社区的核心贡献者,实际这个社区的规模要比这个数字要大许多, 300 这个数字是怎么来的呢?我们有个信息板,它会记录所有的 Fedora 社区内发生的活动,我们会大体的计算有多少人贡献了代码,有多少人为社区做了贡献,有多少人为文件记录做了贡献。因为我前面说过,我们有三个核心领域,等于是三个指标,那我们数一数有多少人为这三个指标做出了特别大的贡献,这些人就是我刚才所提到的核心贡献者,而且他们的参与非常的活跃。
这是一个非常小的核心,但是我们的社区其实是非常庞大的,有成千上万的参与者,但是对这些人很难做出准确的计算和衡量,因为我们当然可以说有多少人在 Fedora 这个社区的帐户里面有自己的帐户,这是一个数字。但是有帐户的人不一定为 Fedora 社区做出贡献,为这个社区作出贡献的人不一定在我们这个系统里开了相应的帐户,所以这个数字是非常难以数清楚的。因此你要问谁是我们这个社区的成员,谁是我们这个社区的贡献者,确实是特别难以回答,而且可能需要事先定义一下这些词到底是什么意思。
因此,总的来说,我知道有很多中国人也在参与 Fedora 的社区,但是我不知道具体有多少人,或者是他们做什么样的贡献。我们知道有中国人参与,而且有些人是参加了我们的大使项目,是相关的大使;但是因为我本人只知道七个汉字,所以有不少中国人参与这个社区,实际上他们在社区里是用中文交流的,他们交流的内容我是看不懂的,我不知道他们在谈些什么,可能他们只是在谈上海某一个好馆子,但也有可能他们是在谈怎么修复某个出现 bug 的具体网络应用,这些我是没办法判断的。
记者:刚才您讲到 Fedora 社区分为不同的区域地区,请问红帽如何解决各个区域之间的差异的?
Brain:实际上在我们 Fedora 社区大体上是有两个处理的方式。首先我前面也提到了,我们是把全世界分成四个区,这样我们实际上就不需要解决所有的问题,我们可以更为集中精力关注,并且使我们有机会把这个问题和挑战的规模限制到一定程度,并且能够进行更为广泛的思考,而不必在全球应用统一的或者是完全平等的解决方案。第二,也是最重要的一个方式,我们其实是要寻找本地人去发挥领导作用,并且拿出各种想法,以便找到最好的解决办法,假如在中国,我就会看一看中国的 Fedora 社区成员,让他们来告诉我怎么办,让他们来指导我们该怎么办,并且让他们发挥出领导作用去采取的实际的行动。
就我本人而言,其实我更多的是确保手上有相应的预算,比如说如果中国的社区成员说我们要印一些 T 恤去参加某个特定的活动,那我做的事儿就是确保有钱给他们,让他们把这些 T 恤印出来。至于他们去参加那个活动,就是因为他既然说了,这是一个好的办法,我相信他这是一个好的解决方案。
此外,我还想说,虽然我们是把 Fedora 社区按不同的地区分区,但是这并不意味着每个区干什么事儿都要完全的自己从头开始干。我们知道开源就是说我们的源代码是开放的,大家都可以看到,而且大家都可以为它作出贡献,使这个代码变得更好。而我们这个社区是做两件事儿来帮助这件事情发生的。第一,我本人也会帮助全世界各地的人们相互联系,就在今天上午我还在跟人探讨要有一些关于 Linux 和 Fedora 的教育机会,就是提供更多信息的机会。比如说在这种情况下,如果这个中国的社区成员感兴趣想要参与的话,我可能会把它介绍给一个哥伦比亚的 Fedora 社区成员。这个哥伦比亚社区成员可能更有经验,他手上有更多的材料,他开发过、写过更多的代码和信息,虽然他处理的事情或者他用的语言是西班牙语,是适用于他的本地情况,但是它的经验仍然会为中国的社区成员所用,这样中国的社区成员就不必从一穷二白的基础上开始,他是可以在借鉴别人经验的基础上再开展工作。
我再补充一下,其实好多跨文化的交流特别容易发生误解,这种情况不仅仅发生在我们的开源社区,其实在任何情况下都会发生,比如像 OpenStack。OpenStack 这个社区是技术性比较强的,大家讲的都是技术,而且大家都是用英语,就是说 OpenStack 社区的工作语言是英语,但是很多的贡献者,或者说大部分的贡献者并不是以英语为母语的,所以他们在讲英文、或者互相交流的时候,很多时候可能对一句话的理解是不一样的,会产生这样那样的误解。我们在社区里面有一些相应的指南,我们也会有一些相应的人员,专门提供这方面的帮助,就会对你说你这个地方是有问题的。包括我的大使计划,这些大使们有这样的责任和作用,所以会有一些人在这个过程中提供帮助。但是这是一个非常常见的现象,因为贡献者来自于不同的文化和语言,所以每天都可能会发生这样的误解。
记者:刚才您也讲了在 Fedora 社区 300 个核心人只有三分之一是红帽的人,三分之二是外部的一些公司的人,如何引导他们在这个社区里面非常活跃的参与,另外怎么处理开源社区和公司之间商业竞争的关系?第二个问题,您在管理开源社区的过程中您觉得您解决的最棘手的一个问题是什么?
Brian:关于您说的第一个问题,实际上我们存在不同的治理机构,首先我们有 Fedora 的理事会,它提供高层的指导,这些理事会成员是由社区内部选举产生的,理事会提供 Fedora 社区发展的方向;在理事会之下,我们有各个不同的工作组,这些工作组有不同的关注点;我们还有工程指导委员会,它会指导下一版发布中应该放哪些工程和技术方面的更新内容;我们还有基础架构的工作组,负责内部的这些服务包括网站或者是其他一些涉及到内部服务的内容;此外我们还有版本发布工程组,还有其他各种各样的工作组,他们都有各自的关注领域和关注点。重要的一点就是这些工作组、委员会,这些机构,他们的会议是公开的,他们进行的讨论也是公开的,就是全世界都可以看到,因此,红帽不可能过度影响这样一个社区的运作,其他的竞争公司也没办法过度影响它的运作,因为全世界都在看着。我们公司还是其他公司其实都没有办法在大家已经达成一致的时候跳出来反对。
当竞争对手坐下来合作的时候,总会有一些有趣的事情发生,也就是竞争变成了现在经常说的一个新词叫做竞合的关系,我想恰巧这个会议室墙上有一句英文,写的是我们公司的一句箴言,这句话说的是自由来自于责任。我们红帽的员工特别幸运,我们公司对于伦理价值观特别重视,而且也非常重视伦理的培训,我想我们非常成功的将这一点注入了我们的社区,所以这时候当我们和竞争对手坐到一起的时候,我们仍然能够和他们进行合作。
关于您问的第二个问题非常好,我遇到的最棘手的困难是什么?我特别荣幸的一点就是我们这个社区是非常出名的历史悠久,而且是特别成功的一个社区。我本人担任这个社区的牵头人才八个月的时间,当然我在红帽工作的时间比这长得多,在这八个月的时间里面,我遇到的最棘手、最困难的问题,其实只是纯粹技术上的问题。前面我给大家讲过我们在预算方面是要发挥一些作用的,那我需要为这些全球社区,为他们提供帮助或者一些活动,确保他们能够获得相应的资金。但是在当今世界上,有一两个国家是我们很难为这些国家内的人们进行报销的这个国家,我们一般来说是用 PayPal 来为我们的这些贡献者进行支付,但是就有那么一两个国家是用 PayPal 完全付不了款的,所以我个人遇上的最困难的事儿就是要为这件事儿找到解决方案,因为你需要支持这些社区的成员才能够确保这个社区继续活跃,并且为我们作出贡献,但是这个问题应该说是纯粹技术上的。
实际上还有一些所谓的大问题,事后看可能总是一些小的问题。在 Fedora 之前,曾经有人说我们要不要发布一个音频的 PortAudio 这样一个技术的方案。有人说这个赌博性太强了,可能没有什么前景,但是也有人说咱们就是得早发布、早修改,如果发现漏洞,这是一个很好的办法。也许在讨论中有人会说这是一个错误的决定,但是事后证明了那个是一个很好的决定,是我们 Linux 上面在用的一个技术。这是一种,另外一种就是人际间的冲突,因为在这样一个大的社区中,要有很多人与人之间的交往,人际间的冲突有时候也会是一个问题。
第一层的涉及到的是技术,之前有一个技术叫做 Systemd,这个最开始的时候反对的人非常多,而且反对的特别强烈。有人曾经说过这么一句话,就是说你这个新的东西拿出来以后,一开始人们只是笑话你;后来大家就和你作战,不想让你用它;但是最终你赢了。因为最后 Systemd 这个技术在所有的主要 Linux 版本上都有了,即使最初反对它的人,也在自己的架构中加入了这个技术,所以可能需要很多的勇气,需要有勇气去犯错误,有些时候可能会产生很大的问题,但是这正是开源社区的特征之一。
记者:我之前曾经见过企业版本的Linux 中文文档,是我所见过最完整的,质量最好的发行版文档,但是在后续的版本,中文文档工作似乎没有跟上?我想知道是否以后不会再继续做完整的文档翻译呢?
Brain:从 Fedora 社区来讲,我们是进行了汉语和其他语言的翻译和本地化的,因为整个社区告诉我们做这样的翻译是非常重要的。我本人特别强烈的欢迎并且鼓励您加入我们 Fedora 社区,并且帮助我们把这些工作做的更好,我们现在就可以参与包括发布相关的本地语言文件,有一个系统我们是用的 Zanata 系统,比如说今天您就可以加入开设自己的帐号,并且帮助我们把相关的工作做得更好。在 Fedora 社区里面,我个人现在参与的一个项目就是要改变这个文件发表的方式,使大家对 Zanata 作出贡献的方式能够更为便捷、更为有用。
因为我本人并不能够代表红帽的企业版Linux,因为我也不了解他们那边的情况,但是我鼓励您和相关的项目管理团队进行沟通,和他们介绍一下这方面的情况,看看他们有没有什么想法,但是我们可以向您保证,您今天提到的这个意见,我们红帽这边有不少人都已经听到了,我们肯定会传递这样的信息。
记者:Fedora 和 CentOS 其实都是 Linux 发行版,就想问它们之间有什么差别?是不是 Fedora 更多地关注于个人的贡献者?
Brain:实际上它们都是企业级 Linux 的生态系统的成员,是以不同的方式处理两类不同的问题。从 Fedora 来说我们更关注很早就采用了 Linux 系统的这些用户,我们更关注开发者,我们也更关注操作系统上的创新,因此,包括我们里面的一些具体的项目,比如说原子主机,比如模块化项目,更多的是关注这些产品的生命周期问题。
我的回答分两个部分,首先是关于 Fedora 和 CentOS 到底是怎么工作的,就拿一个具体的软件来举例吧,比如说 Linux 内核源码,比如说新的代码或者是内容, Fedora 内部会进行封装,然后会发布。发布之后,在某一个阶段红帽就会把 Fedora 版本的 Linux 内核源码拿过来进行标准化、产品化并且对它进行验证,然后才能成为红帽企业版 Linux 的一个正式版本。在红帽的企业版 Linux 发布之后,红帽会立刻发布这一版的原代码,然后从 CentOS 这个小组来讲,我们就会把这一版的原代码拿过来,我们会对这个原代码进行重建和重新组织,这就形成了 CentOS 的 Linux 版本。
第二个部分就是 Fedora 比较感兴趣的一个内容就是操作系统上的创新,但是对 CentOS 这个社区来讲,其实我们不想操作系统有很大的变化,我们感兴趣的是操作系统之上的这些项目,我们希望在做工作的时候操作系统不发生太大的变化。因此我们这样是提供了一个平台使得 Gluster、OpenStack 这些都可以进行创新,而不必考虑操作系统的底层,我们确保这个底层不变。还有另外一个角度,就是从 Fedora 来讲,您可能也知道我们大概每六个月就发布一版,对人们来说,用户可能就会说我既想走在技术的最前沿,但是我又想得到对我这个软件的长期支持,但是对我们来说,我们是一个小社区,提供这种长期的支持是做不到的。这时候我们就会跟他说,你要找的是 CentOS,因为 CentOS 这个版本更多的提供了足够的稳定性,所以人们会有新的产品,那我们就有两种做法:要么就是在一个稳定的平台上面提供一些新的做法,让他们去试这些最先进,最前沿的技术;要么是使用容器的解决方案,这样既可以有稳定的东西,然后又有一些最新的东西。换句话说,我们是有不同的方式来看待和处理不同的问题。
记者:可以说 Fedora 是 CentOS 的基础吗?
Brain:是的,这么说也没错,从所有的企业版 Linux 系列来说,很难有哪一个没有用过来自 Fedora 的代码,可能有一些即使没有直接用 Fedora 这个版本,它还会有一些额外的封装,额外的有一些东西会来自于 Fedora。但是这个所谓父子关系,我们既是父亲也是儿子,家里的家谱树是比较复杂的。其实在这个项目之间是有非常强烈的关系,是非常紧密的,有一些为 Fedora 作出贡献的人其实也在为 CentOS 项目做贡献,CentOS 项目那边也有人是两边的贡献者。
其实这也是社区的一个特性,比如说拿 Atomic 来举例子,实际上就是红帽封装 OpenStack 的一个方式,但是做这个工作的人不一定是光做封装,他们有些时候会对 OpenStack 本身的功能和特性作出直接的贡献,所以这个社区本身是非常紧密的互动的,而不是一个分散的社区,所以我们不仅仅是为自己的项目开展工作,我们有时候做的工作也会促进其他项目的发展。
记者:红帽开源社区这块有几百人,大的有上万人,组成社区的人有红帽的员工,还有个人,还有一些企业公司,我想问一下对代码有贡献的这些人的收益是怎么平衡的?比如红帽自己的人对这个代码有贡献,还有个人也有贡献,他们的收益怎么平衡?还有一个就是说对于其他的开源社区来说,其他的厂商,红帽这块开发组的人员和友商的这些收益是怎样的,有何回报?
Brain:回答您这个问题,我一开始只能说我就是给大家每个人都发张贴纸,但是应当说从个人的贡献者来说,不管你来自于那儿,从这个项目得到的回报应该说没有直接的区分,因为我只能说所有贡献者都能够从为开源社区所做的贡献中得到自己想要的东西,比如说有的贡献者有机会通过开源社区的贡献提升了自己在一个新的技术领域的技能,这个有可能能够促进他得到升职,或者是促进他得到新工作,而这种晋升或换工作可能是在红帽,也可能是在其他公司,对于另外一些个人的贡献者来说,他做的贡献可能就是使他挠到了自己痒的地方,就是解决了自己所面临的一个具体的问题,这样他就从中得到了获得感,得到了回报。
那么对于公司的贡献者而言,他们更多的是为自己面临的一个特定问题寻找解决方案这件事儿成了大家一起要做努力的一个项目,这一点对他们来说是一个很大的回报。其实有一些贡献者他得到的就是扩大了自己的社交圈子,甚至是专业圈子,很多时候这种圈子有可能是跨文化的,你会遇到新的同事,新的合作伙伴,比如说我认识来自波兰的参与者,我就非常熟悉到波兰,甚至可能跟他交流到波兰应该去玩儿什么。有些人参加我们的社区活动,他们自己直说,说我就是来领T恤的,即使如此,我们也仍然得到了他们的贡献。
其实从某种意义上来讲,我觉得您这个问题还可以从另外一个角度来进行思考,就是说如果其他公司做出的贡献,是不是红帽会从社区中得到的好处比那个公司还多?其实大部分公司,或者说贡献者,他们做贡献的时候,更多的是体现了对使用软件者的信任,因为你要把自己的代码拿出来让更多的人去检查、核验这样的代码,而且也表明了你是关心用你这个软件的人的,你要表明我有很多人来支持,来促进这个代码的加强。参加上游,把代码拿到上游社区,其实可以有很多种不同的动机,就是问到投资回报,投资回报其实是有的,但是它更多的体现在各种各样不同的形式上,比如说获得的信任,比如说更大程度上的合作,比如说实现了不同软件或者是不同东西之间的兼容。有些人是想做标准的,但是如果你要把自己的东西保密,只放在自己手里,不给别人看,那你其实就很难让自己形成标准,所以说动机可以是多种多样的。