| 作者: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

开源社媒体组招募 | 找暑期实习的小伙伴看过来

暑期2020“大咖说开源”之吴雪 | 开源的商业创新

关于在开源社区中的“工作倦怠”,你所需要知道的事

喜欢本篇内容请给我们点个在看

项目开源一年多就从ASF毕业,开发者可以从中学到什么相关推荐

  1. 暑期2020“大咖说开源”之 孙金城:参与 ASF 开源贡献的正确姿势

    | 主办方: 中科院软件所.openEuler 社区.开源社 | 编辑:王皓月 | 设计:朱亿钦 活动介绍 Overview 开源供应链点亮计划 - 暑期 2020 (https://isrc.isc ...

  2. 基于英飞凌AURIX的平衡单车组逐飞BLDC项目开源

    简 介: 本文转载了来自于SeekFree科技关于无刷直流电机电路设计开源方案,仅供大家学习使用.对于参加全国大学生智能车竞赛的同学请注意:室内单车组平衡轮驱动允许直接使用直流电机驱动,也允许使用无刷 ...

  3. 测试项目开源_测验您对开源的承诺

    测试项目开源 在今年的OSCON上, Bluehost的 Jared Smith谈到了我们的公司如何成为良好的开源公民. 在ByWater Solutions ,我的工作包括参与社区外展活动,并让每个 ...

  4. 医疗项目 开源_医疗保健受开源影响最大的行业之一

    医疗项目 开源 医疗保健是当今时代最紧迫的社会经济问题之一. 今年,Opensource.com看到了许多有关采用开源方式和开源软件(包括工具)来缓解医疗保健行业所面临的许多问题的新闻和专题报道. 这 ...

  5. BILIBILI 高并发实时弹幕系统那些事(项目开源、架构演变)

    原文地址:http://blog.csdn.net/hxqneuq2012/article/details/52813937 B 站建立开源工作组:ijkplayer 等多个项目开源 SegmentF ...

  6. 【嵌入式项目开源】基于ESP32的墨水屏桌面小屏幕

    首先简要介绍一下这个项目: 这个项目的开源主要包括硬件,固件和软件两部分,外壳后面如果做了也会开源出来.该项目主要是参考了以下教学视频. 链接:桌面小屏幕实战教学 其中硬件部分改动不大,主要是把USB ...

  7. 并联四足机器人项目开源教程(六)--- Cheetah开源项目的代码框架移植

    这个是本人在大三期间做的项目 ---- 基于MIT的Cheetah方案设计的十二自由度并联四足机器人,这个项目获得过两个国家级奖项和一个省级奖项.接下来我会将这个机器人的控制部分所有代码进行开源,并配 ...

  8. 医疗项目 开源_开源医疗IT的未来

    医疗项目 开源 弗雷德·特罗特(Fred Trotter)很容易辨认: 他是个身材高大的男人. 不管他是在挥舞着招牌的金发般的震撼力,还是像他每年一次那样剃光秃头,他都不会在人群中失踪. 在聚集了开源 ...

  9. 人脸搜索项目开源了:人脸识别(M:N)

    ​ 一.人脸检测相关概念 人脸检测(Face Detection)是检测出图像中人脸所在位置的一项技术,是人脸智能分析应用的核心组成部分,也是最基础的部分.人脸检测方法现在多种多样,常用的技术或工具大 ...

最新文章

  1. Java IDE——Eclipse下载与安装
  2. 小甲鱼Python课程18课课后题
  3. php ip访问mysql什么配置_PHP与MYSQL配合完成IP的存取
  4. python win10还是linux_在win10的Linux子系统(WSL)上搭载python编程环境
  5. THYMELEAF 如何用TH:IF做条件判断
  6. Protel中的快捷键使用(网上资源)
  7. web基础编程-图片管理网站
  8. 【Away3D代码解读】(一):主要类及说明
  9. python大法之二-一些基础(一)
  10. 在Fedora 11中安装Apache2+PHP5+MySQL(LAMP)
  11. ballerina 学习二十六 项目docker 部署 运行(二)
  12. 【50】了解new和delete的合理替换时机
  13. c语言统计字符个数回车字符,C语言统计一串字符中空格键、Tab键、回车键、字母、数字及其他字符的个数(Ctrl+Z终止输入)...
  14. ojdbc14:11.2.0.1.0出错
  15. python双向链表以及双向循环链表
  16. 树莓派 Raspberry 4B 刷机、上网、录音外设、文件传输、电脑投屏问题汇总
  17. 十六进制字符串转换为字节数组
  18. Spring Data ElasticSearch增删改查
  19. C++grammer开篇
  20. 泪目!曾风靡全国的国产网游,宣布停运!

热门文章

  1. 中国象棋程序的设计与实现(三)--2012本科毕业论文等重要文档资料
  2. 概率性抽卡模拟器v2.0(GUI实现)
  3. python质数判断代码_Python 质数判断
  4. 凭借扫地机器人,科沃斯能“扫出”舒适区吗?
  5. Python数据分析实践项目 教育平台的线上课程智能推荐
  6. 04FPGA组合逻辑—多路选择器(二选一)
  7. 专业显卡打游戏测试软件,通吃游戏和渲染!专业卡和游戏卡实际测试对比
  8. 中兴ZTE4G网卡显示数据卡未连接 或者 USB-AT USB-log USB-Rndis黄色感叹号
  9. 左手坐标系右手坐标系
  10. JavaScript 实现空间直角坐标系转换为大地坐标系(XYZ→BLH)