2019 年 12 月 14 日,又拍云联合 Apache APISIX 社区举办 API 网关与高性能服务最佳实践丨Open Talk 广州站活动,本次活动,邀请了来自Apache APISIX、又拍云、腾讯云、HelloTalk 等企业的技术专家,分享网关和高性能服务的实战经验。Apache APISIX PPMC 温铭作了题为《Apache APISIX 的 Apache 之路》的分享。html
温铭,深圳支流科技创始人,Apache APISIX PPMC,《OpenResty 从入门到实战》专栏做者,创业以前在互联网安全公司工做了 10 年,主要从事服务端的开发和架构,负责开发过木马云查杀、反钓鱼系统和企业安全产品。曾在奇虎 360 担任架构师,开源委员会发起人、委员。支流科技是一家开源底层技术初创公司,致力于微服务相关技术的创新和实现。安全
如下是分享全文:微信
Apache APISIX 是一个很年轻的项目,今年 6 月份开源,7 月份加入到 CNCF 全景图,10 月份进入 Apache 孵化器,因此我会和你们分享一下 APISIX 是如何从 0 到 1,进入 Apache 孵化器的。架构
Apache APISIX 如今有 17 个 committer,分别来自 16 家不一样的公司,是一个很是社区化的项目。每一个 committer 有一票,决定版本的发布、选举新的 committer 和 PPMC 等比较重大的事情。微服务
Apache Way 是你们都比较熟悉的概念:社区大于代码。烂代码能够改,Apache 的导师并不会指导你怎么写出更高水平的代码,他们更关心的是社区是否在健康的发展,只要有一个好的社区,烂代码必定会有更高水平的人进行重构,变成更好的代码。因此只要社区在,那这个项目就可以一直存活下去,这在 Apache 是最重要的。性能
邮件列表优先是另外一个重要的点,没有在邮件列表中出现过的,就当作不存在。这在中国实际上是一个很是大的挑战,你们在文化上和习惯上都不太喜欢用邮件:第一是时间不够及时,可能发一封邮件后隔 1-2 天才能收到回复;第二是邮件列表的不少东西是公开的,有些人喜欢私聊;第三邮件列表里面只能出现英文,但其实中国人的英文是不差的,咱们比大部分其余国家的人的英语已经好不少了,毕竟咱们学了不少年英语,还有各类翻译的软件,即便出现语法错误,都不是大问题。翻译
第三是精英治理,在 Apache 社区中你们用贡献来得到更多的话语权,更高的 title 意味着更多的付出和责任。视频
第四是民主,全部人均可以参与 Apache 的投票,即便你不在 Apache 社区,但不是全部人的票都是有效的。好比 APISIX 当时进 Apache 孵化器的时候须要投票,我也能够投支持票,但后面要写 no binding,表示我支持并关注这个项目,但我是一个观察员的身份,但这一票对于项目可否进 Apache 是没有决定性的。只有对孵化器作了贡献并获得社区承认的人,即 Apache 孵化器的 PMC,他们的票才是有效的,这就是 Apache 社区的民主。htm
咱们知道不少开源项目有一些是在基金会下面,有一些则不是。在基金会下面的项目,好比 Linux 基金会、Apache 基金会,他们的治理模式叫作“社区共识”,须要先在社区内讨论,在达成一个共识后进行投票,而非直接投票。若是直接投票,没有前面的讨论和共识,那这个投票是没有意义的。这个效率可能会很慢,但只有整个社区达成共识,后面才没有异议。项目管理
第二种是商业公司共识,只要商业公司的人达成共识,那么这个 PR 或者 feature 就能够被合并,而社区的人说话是没有用的,由于它是被商业公司控制的一个项目,而若是你给商业公司贡献代码,可否被合并决定权在商业公司手里。这对于我的开发者可能无所谓,可是对于参与项目的企业则是有所谓的,一般企业会有私有版本,企业想把本身的 feature 贡献回社区,但商业公司可能由于这个东西和本身的商业版本冲突,就会拒绝掉。
第三种是仁慈的独裁者,最典型的就是 Python,我的决定着开源项目的发展。
上述是开源社区的三种模式,若是是企业选择项目,通常的咱们会推荐 Apache、Linux 基金会的项目,它首先在法律上是没有隐患的,其次它是一个社区共识,咱们能够经过向社区贡献这种方式得到更多的话语权,这样就造成了一个良性的循环。
Apache 如今有接近 50 个孵化器的项目,其中来自中国的有 10 个,APISIX 是如今国内惟一一个由创业公司进入 Apache 的项目,其余不少是来自华为、阿里、百度等大公司的项目。
一个项目要想进入 Apache 孵化器,须要明白如下名词和步骤:
Apache Way 和国内开源文化的冲突
国内的 Apache 项目会遇到不少不同的挑战,这和国内外的开源环境和文化有关系。
好比国内的工程师会以为太忙,常常 996 加班,因此没有时间和精力去作开源。但其实很多工程师在工做中也会使用到开源项目,写过开源项目的 feature,可是他们并不会主动提交 PR,也不会在写代码以前在社区内发起讨论,这就是不少文化上不一样的地方。
沟通方式上,Apache 提倡的是在邮件列表中公开讨论,可是国内的不少开发者更喜欢微信、QQ、电话等非公开的方式来沟通。特别是若是一个项目的 PPMC 大都来自同一家公司,那么可能开早会的时候就把一个功能敲定了,但在邮件列表里也没有出现,这就不符合 Apache 的文化。
关于投票,不少开发者可能以为本身英语很差或者人微言轻,不太愿意在邮件列表中发表本身的意见,也不参与投票,那么最终他就会被忽略掉。因此你须要积累一些”功绩“,去帮助别人,慢慢地增长本身的影响力。Apache 是一个由我的组成的基金会,每一个人的行为都只表明本身,不表明公司,每一个PMC 的一票都是对等的。
关于 Title,在 Apache 里,最高的职位叫作 Apache 基金会主席,每一个项目的管理者是 VP,而后是 PMC(项目管理员会)、 Committer、 Contributor ,他有一个相似于咱们企业内职称晋级的通道。可是在 Apache里,即便你的职位变得很高,也并不意味着拥有更多的投票权,更多的是义务,好比对于 Apache APISIX 选举新的 committer 的投票而言,孵化器主席的票和个人票是同样的。Title 在 Apache 里面更多的是一种荣誉,由于 Apache 基金会是一个非营利组织,它强调的是贡献,这就是文化上的冲突。
版权是一个很是重要的问题,前段时间发生的 Nginx 做者被抓就是由于版权问题。一个项目在正式加入 Apache 孵化器以前,全部 committer 和公司都要签署 CLA,说明将这个项目的版权,所有捐给 Apache 基金会。加入 Apache 孵化器以后,最重要的里程碑就是发布第一个 Apache 的 Release,这个版本就是要理清 license 上的风险,让用户能够放心的使用。因此,商业公司使用 Apache 的项目是有保障的,不会涉及到版权不清晰的问题。
最后,Apache APISIX 是一个正在快速发展的开源项目,但愿你们多多参与和贡献,多谢。
演讲PPT下载及视频观看: