| 作者:oschina
| 转载自:开源中国
| 编辑:王玥敏
| 设计:刘颖洁
开源社引言
2015年时,源自于中国的 Apache 项目只有3个,五年后的2020年,已经有了20个项目,其中顶级项目已经有了11个,而孵化项目更是新增添了小米捐赠的 Pegasus。发展势头之迅猛,令人欣慰。而刚刚由孵化项目毕业成为顶级项目的 Apache APISIX,从起心动念、到选择基金会、到进入孵化器、吸引贡献者、发展茁壮社区,最后顺利毕业的15个月中的一步一脚印和心路历程,很值得有志者参考。
身为投下 APISIX 孵化项目毕业 +1 票的孵化器 IPMC 以及 ASF member,我见证了源自中国的开源力量,立足中国、贡献全球的又一步,感同身受、与有荣焉!
以下按照字母顺序排列,不分先后
顶级项目 (TLP:11)
。Apache APISIX (最新毕业)
。Apache CarbonData
。Apache Dubbo
。Apache Eagle
。Apache Griffin
。Apache HAWQ
。Apache Kylin
。Apache RocketMQ
。Apache ServiceComb
。Apache ShardingSphere
。Apache Skywalking
孵化项目 (Incubating 9)
。brpc
。DolphinScheduler
。Doris
。ECharts
。IotDB
。MesaTEE
。Pegasus (最新加入)
。TubeMQ
。Weex
刘天栋 Ted,ASF Member | 开源社理事、联合创始人
7月15日,ASF 正式宣布,Apache APISIX 从孵化器毕业,并晋升顶级项目。
如果你去看一看 APISIX 的发展轨迹,会发现它的成长速度非常快。开源不仅让 APISIX 快速迭代,更成为它背后的初创公司向外沟通付费用户的一张名片。
去年4月,项目发起人温铭和王院生开始着手写代码,同年6月宣布开源,7月 APISIX 被纳入 CNCF 全景图,10月捐赠给 ASF,到今年6月通过投票,7月正式成为顶级项目,前后只用了一年3个月。
期间,还伴随着商用落地——开源两个月,就迎来首家付费央企用户。截至目前,APISIX 已超过千个节点在线上环境服务,其中不乏腾讯、网易、贝壳、优信二手车等大体量或是高流量用户。
“APISIX 是目前速度最快的 API 网关”,王院生说,他们在最初选型上,会尽量复用成熟组件,站在巨人肩膀上,避免自己造轮子,这样就可以把时间精力放到差异点上,如极致性能路由、热插件、高性能字段校验器、插件编排等 API 网关核心。
与大多数 API 网关不同,APISIX 不仅可以处理南北向流量,也可以处理东西向、微服务间的流量。下一季度,APISIX 计划落实 Service Mesh 领域相关功能。在两位发起人的规划里,APISIX 还要成为最受欢迎的开源 API 网关。
2人2个月,做了个可兼管微服务间流量的 API 网关
许多开源项目诞生的初衷,都是开发者工作时发现需要某个服务,然而市场上却没有合适的项目可以支撑,于是便自行开发并开源,填补空白,APISIX 也不例外。
“我们需要一款高性能、云原生的 API 网关”,王院生介绍,去年通信院发布的一个调查报告显示,中国有60%的企业都在做微服务转型,而 API 网关在微服务体系中非常重要,扮演“指挥家”的角色;同时,微服务越来越流行,传统单体大应用的场景正在逐渐减少,而云原生又再次为微服务演进提供了一些标准化方案。在这种大背景下,他们决定发起 APISIX 项目。
之后的竞品分析也让他们看到机会。2019年 Gartner 发布一篇《全生命周期 API 管理魔力象限》报告显示,在魔力象限中不少大厂商比如 Google 家的 Apigee,核心的 API 网关部分技术栈整体偏老;而在技术方案上有优势的公司,都是新公司,“这一度让我们感觉兴奋,有种机会就在眼前的感觉”,王院生说。
为了做一个高性能 API 网关,APISIX 核心代码遵循了精简的原则,用王院生的话说就是,臃肿基本就和高性能无缘了。
2019年6月6日 APISIX 开源的时候,核心代码只有几千行。经过一年发展,插件代码量早已超过核心部分。维持精简可以极大降低后期维护成本,尤其是对于开源项目。
王院生介绍,核心精简,功能、创新是不能少的。例如 APISIX 内置的 var 读取加速,重复读取同一 Nginx 变量提升了百倍。借助 radixtree(基数树) 方式匹配路由,让 APISIX 成为目前路由匹配速度最快的 API 网关。
现在,APISIX 保持着一到两个月发布一个版本的更新频率。
2019年 APISIX 捐献给 ASF 的同时,也完成了 APISIX 的主体框架,比如动态负载均衡、全平台支持、安全插件、SSL、gRPC、TCP/UDP 动态代理、单机模式等功能。
“这些功能实现都是按照生产标准编写,有完整测试用例覆盖,截至7月9号,依然有用户在生产环境运行的是去年11月份版本,稳定性非常好,性能也是同类产品的2-10倍”,王院生说。
今年,APISIX 还将继续丰富生态,除了按部就班与社区一起丰富功能插件外,还增加了 Dashboard 和 k8s ingress controller 实现,帮助 k8s 用户更简单、高效的管理入口流量。并创新性的为 APISIX 增加插件编排机制,提高插件之间的联动能力,扩展用户场景。
25票赞同,从诞生到成为 ASF 顶级项目只用了一年
在 ASF 经历一次毕业投票,项目就接受了一次全盘检查。
APISIX 的毕业投票是 25 个+1(赞同)票通过的,包括 10 个 Binding(约束性投票),15个 Non-Binding(无约束性投票),没有 -1(否决) 票。
Apache 部分投票规则:
Apache 的投票过程可能看起来有点怪异。投票用-1和+1之间的数字表示,“-1”表示“否决”,“ + 1”表示“赞同”。
Binding Votes,约束性投票。通常,PMC 成员拥有正式的、有约束力的投票;针对从孵化器毕业项目的毕业投票,IPMC( Incubator PMC)拥有 Binding Votes。社区成员投票是 Non-Binding 无约束性投票,但通常鼓励社区成员投票,即使他们的投票只是建议性的。
在 ASF 中如果要毕业成为顶级项目,投票是最后一步确认环节,虽然这是毕业于否的决定票,除了需要拿到足够的 Binding +1票,也需要考察项目自身活跃度、是否独立发布过版本、贡献者数量、贡献者分布、License、品牌等是否均符合 Apache 要求。
在 ASF 的孵化投票中,IPMC 的投票才会被记录参考,只有他们的投票是有效 Binding 的。由于邮件列表是公开的,对于非 PMC 也是可以投票,这些人的投票就是 Non-Binding 的。而对于 -1 票,代表有人不支持,这时投票人是必须要给出充分理由。APISIX 毕业,并没有反对票。
不仅投票表决这一关过得顺利,从尝试捐赠开始,APISIX 就和 ASF 非常投缘。
2019年9月,王院生和温铭决定着手将项目捐赠给 ASF。当时他们阅读 Apache 官网内容,按照要求逐个梳理所有检查项,提前准备 APISIX 捐献资料。
“在华为开源能力中心技术专家姜宁的推荐下,我们参与了一次小型 Apache 会议,并把我们提前准备的资料给 Apache 主席 Craig Russell,确定我们是否符合要求,并告诉他们我们目前还缺 mentor ,当时参会的 Justin Mclean 就说,‘我来当你们 mentor 吧’。这样我们就找到了所有 champion 和 mentor ”,王院生回忆。
“多去参加 Apache 的线下交流会是个好主意”,王院生认为,进入 ASF 孵化,除了需要自己要先认同 Apache 文化,还要与“圈内好友”多些互动,增加面对面的沟通弥补线上获取信息不足,防止自己对 Apache 文化理解有偏差。
除了线下方式,也可以通过更 Apache 的方式——主动在邮件列表为你的项目征求 mentor ,寻求孵化机会。
谈及 APISIX 的迅速孵化和发展,王院生透露,它的快速起步与之前一直做社区有关系,以前工作中积累的人气和经验直接推动 APISIX 成长,有些方法被证明非常高效:
线上+线下:两者要相结合,相互弥补。
寻找和自己比较 match 的社区,做适当宣传:这里不能太直,推荐知识分享的方式。
有意识培养新人:新建一些比较简单的 issue ,专门给想贡献的同学做开始。
招募学习班:每次手把手培养新同学,一对一的协助他们完成第一个 PR 提交,从而逐步开始能为项目做贡献。
避免私聊:引导大家到邮件列表或者仓库 issue 交流,知识需要沉淀、广播,对于某些特别有意义的话题,更是如此。
开源作品为了保持活跃度,需要有阶段性的产出,比如支持某重要功能、引入新概念等。要一直勾着开源用户的心,这些想法可能来自社区,也可能是社区委员会的不定期聚会。
此外一些个性有趣的用户使用过程、疑难杂症排除过程等,都可以记录下来给分享给社区。和大家一起学习一些问题排除方法,以及开源背后的故事。
用开源的方式让初创公司收获付费用户
APISIX 项目还有一个特点是,它是由初创公司的主要负责人开发并快速捐赠的。事实上,虽然开源作品不能为企业带来可预见的销售收入,但是可能将企业的技术服务能力转化成营收驱动力。
“对于我们这种小型初创类型公司,有一个开源身份和业内极致的网关作品,相反是更容易让更多用户知道我们,并导向成付费用户”,在关于商业化与开源的选择上,王院生认为,开源更注重长远效益。
目前基于 APISIX 的企业版开始对外试用,收费模式主要是根据 API 请求数量计费。王院生说,“由于 toB 的模式起步不会太快,短期内更看重高业务价值的客户来打磨产品,并努力把 APISIX 培养成被广泛使用、流行且好用的开源 API 网关。”
当然,APISIX 开源首先是作为开发者的个人的决定。王院生和温铭从2015年开始,就和开源文化、社区有了比较多的接触,也在社区交流中飞速成长。重新实现 APISIX ,并捐赠给 ASF,除了对已有网关的扩展性、性能等不满意外,也是希望把多年积累沉淀出的产品共享。
去年7月,APISIX 被纳入 CNCF 全景图,但 APISIX 并没有顺势进入 CNCF 孵化,“ASF 更加田园、理想,对个人开发者友好,有明确的 committer、contributor、PMC 精英管理机制”,王院生解释,他们是有些理想主义的创业青年,想为这个社会、广大程序员做点有价值的东西,所以从一开始就确定选择 ASF。
现在,APISIX 已经正式成为 ASF 顶级项目,可以预见,将会有更多开发者加入项目的维护,我们也期待 APISIX 的开源生态更加完善。
嘉宾介绍
王院生,APISIX 项目发起人,深圳支流科技联合创始人,开源布道者,比较忠爱对性能、流量要求比较高的流量管理类方向。
开源社简介
开源社是由国内外支持开源的企业,社区及个人,依“贡献,共识,共治”原则,所组织的厂商中立、纯志愿者、非营利的开源联盟,旨在共创健康可持续发展的开源生态体系,并推动中国开源社区成为全球开源软件的积极参与及贡献者。我们专注于开源治理、国际接轨、社区发展和开源项目。
相关阅读 | Related Reading
喜欢本篇内容请给我们点个在看