阿里、蚂蚁、晟腾、中科加禾精彩分享 AI 基础设施洞见,现购票可享受 9 折优惠 |AICon 了解详情
写点什么

参与开源,让程序员都成为发明家而不是“码农”|DIVE 基础软件大会专访

  • 2022-01-11
  • 本文字数:3311 字

    阅读完需:约 11 分钟

参与开源,让程序员都成为发明家而不是“码农”|DIVE 基础软件大会专访

“您是如何定义自己的?”

“首先是个程序员,然后有点理想主义,想把自己的名字写到‘册’上,靠梦想活着......”


近日,InfoQ 有幸与【DIVE全球基础软件创新大会2021】讲师、开源商业公司 API7.AI 创始人 & CTO 王院生就个人成长和开源创业话题进行了交流。并且,从这位开源人身上,我们也看到了较为浓厚的理想色彩。“我希望程序员都能成为发明家,而不是码农。”他如是说。

用知识连接社区


开源项目“OpenResty”可以说是王院生真正接触开源的契机。2014 年,王院生加入 360 公司。2015 年,为了让正在扩张的团队能更快速、高效地学习 OpenResty,王院生和同事温铭等人一同合作完成技术实践书《OpenResty 最佳实践》,没想到的是,因为这本书而把许多技术人聚集起来,并形成了上万人的社区群体。


“相当于用知识的方式把大家给连接到了一起。”王院生回忆道,当时团队成员身居不同城市,写书的方式能更好地将大家的知识对接起来,比如有人列目录、有人负责完成一些主要的章节等等,希望能通过一边写书一边分享的方式来推动协作和成长。


2015 年,在完成《OpenResty 最佳实践》后,同年王院生等人还创办了 OpenResty 社区。2015 年 12 月,罗永浩在锤子科技产品发布会上宣布将门票收入全部捐赠给 OpenResty,这也让更多的人知道了 OpenResty。紧接着,社区开始举办一些线下会议,包括每年的 OpenResty 大会。


但正由于这些“无心插柳”的相关经历,使得王院生对开源越来越感兴趣,后来更是选择全身心投奔开源事业。2017 年~2019 年,他离开 360 公司并加入到一家开源创业公司。2019 年 3 月,他和志同道合的伙伴一起创业,发起 API 网关开源项目“APISIX”,并创办 API7.AI(即支流科技)。


Apache APISIX 在 2019 年 6 月 6 号开源,同年 10 月就进入 Apache 孵化器。从开源之初,APISIX 保持每个月发布一个版本,并坚持测试驱动开发、自动化 CI/CD 等理念,以保证代码的质量和稳定性。 2020 年 7 月 15 日,Apache 软件基金会宣布 Apache APISIX 毕业成为 Apache 软件基金会顶级项目。


总的来说,从 2015 年到 2019 年,王院生已经经历过多个开源角色,包括从社区的协办者到社区领导者,以及从开源软件的使用者到开源软件的贡献者。而这段经历,让他在正式创业前,完成了从 0~1 的“开源沉淀”。

开源创业,必须要做到第一名


Apache APISIX 是基于 OpenResty 构建的 API 网关,因此从这个角度看,作为较早从事 OpenResty 技术研发与布道的从业者,王院生等人会创建 APISIX 项目似乎也是件“水到渠成”的事情。


但王院生指出,其实刚开始的创业并不容易,2019 年无论是从创业大环境还是开源商业化方面来说,形势都不是很明朗。当时他和创始人都直接裸辞全职投入到 APISIX,项目从 0 开始没有任何收益,风险颇大,而支撑他们走下去的原因,是因为大家都是正朝着自己骨子里真正向往的、喜欢的方向前进。


“小时候我想成为宇航员、科学家,最后发现这两个梦想都实现不了。之后就期望这辈子能把自己名字写入史册,有意思的是现如今的我们,已不需要史册了。”对于王院生来说,开源创业正是能与其曾经的梦想产生共鸣的事情,每每投入开源工作就充满激情,这里面可能包含某种使命感、又或者是对成功的憧憬。总之,在这开源事业里他有强烈的动力去持续付出。


“开源创业跟别的商业模式不太一样,你必须要做到所在行业的第一,才能有机会。如果你只是做第二第三第四,大概率会‘饿死’。从开源的第一天,我们的目标就是要成为最优秀的、被市场所认可的、最受欢迎的 API 网关。”他强调,Apache APISIX 不但做到了“全世界最活跃的开源 API 网关项目”,而且其活跃度领先地位也坚持了很长时间。


要做到行业领先地位,这意味着创业方向的选择也不能出错。王院生认为,选择创业方向往往有两个思考维度,第一是“世界需要什么”,然后是“我们能干什么”,有的时候,也可以反过来回答,先看看“我们强在哪?我们能干什么?”,再看看这个世界需要什么。


他解释称:“相对来说,API 网关是我们可以自信可以比别人做得更好的一个技术方向。而随着云原生、微服务技术的火热,行业对于流量管理的需求越来越大,API 网关从原本不被大家所重视、变成越发被重视的工具。”


据介绍,最初 APISIX 团队也有专门去做行业调研,确定了大方向没问题,并且看得到自己在这里面能够做哪些事、有什么机会、大概的可行路径等等,才最终决定要做,否则盲目往前推还是很危险的。“简单来说,世界需要一个非常优秀的 API 网关,因为之前的一些实现不能够满足现在一些产品上的更高的要求。而我们在这方面刚好有技术积累,因此也能保证我们在这个方向上做得比别人更好。”

如何让项目活跃


谈及开源项目怎么样才能变得活跃,王院生总结说,开源项目首先要能解决用户的实际问题,这样才能获得社区的认可。而要想把一个项目做成,项目与周边的关联也非常重要,比如周边的软件生态、硬件生态、开发者关系以及语言生态等,而不能是独善其身。


“以 Apache APISIX 这样的网关项目为例,它刚好处于充满连接的位置,它既可以连接安全、连接管理,也可以连接用户的业务,在这个位置上大家是可以去做很多的有意义的连接工作。就像我们公司的愿景和口号,期望能够为未来的数字世界提供更加稳定、安全、可靠的连接。”


除了要解决实际问题和建立关系,王院生还提到一些补充因素,比如项目的发起人/牵头人是一个什么样的人,是否理解社区或者理解开源精神,比如所属组织是否靠谱,对项目是什么样的态度等等。


但他还特别强调的一点是“开源项目的工程质量”:开源社区的参与人来自全球各地,如何能够保证大家在水平不一的情况下,对项目作出贡献之后,最终能产生好的结果。“这是软件工程经常强调的,我们到底以什么样的方式来保证工程的质量?不管是 Apache 的项目,还是 CNCF 的所有的项目,我们基本上没有见过哪个项目不包含完整的测试用例。甚至乎,对于开源项目来说,有的时候工程质量的重要性大于前面提到的问题。”


从所在赛道来看,API 网关算得上是小众细分市场,目前也出现了一些友商。但王院生认为,从另一角度看,API 网关的辐射范围很广,它可以负责 API 安全,也可以和人工智能体系对接,做流量识别的工作,而随着 5G 技术的不断成熟,边缘计算将逐渐兴起,这里又是 API 网关可以大展身手的地方,并且现在常提到的 Kubernetes 或者服务网格这些新技术,都少不了服务网关这重要一环。


面对市场竞争,王院生表示“把自己的事做好”就好。“观察友商是一方面,但既然我们现在有了一些领先性,那我们就要继续保持领先性,甚至是扩大。担忧并没有用,把自己的事情做好,看清楚这个世界和市场到底需要什么,给大家提供最好的选型,目前没有比这个更重要的事情了。”

写在最后:开源的魅力


再谈“为什么要为开源做贡献?”这个老生常谈的问题时,王院生笑说这应该是工程师问的问题。他表示自己就是一个典型的例子,参与开源社区,一方面是能够学习优秀的代码,提升自己的代码质量,这是性价比最高的能获取全世界最好的知识的快速渠道。另一方面,参与开源社区之后,可以接触到全球最优秀的工程师并与之交流,对于很多人来说,这在日常工作中是非常难得的机会。他感慨道,现在中国的程序员整体比较辛苦,期望能够做一些能让大家自己去主导推进的事情,并希望程序员都能成为发明家,而不是“码农”。


在开源大潮中,一个可喜的趋势是,越来越多的学生参与到开源社区。GitHub 2021 年度报告显示,GitHub 2021年度报告显示,所有贡献中有 27.9% 来自于学生,而所有开源项目贡献中超过半数均来自于学生。王院生表示,这是一个很好的信号,学生代表着未来。“从我们的观察来看,国内参加过类似‘编程之夏’活动的学生,确实在能力上会比同届的其他人更优秀些,希望能看到更多的学生去主动了解开源、参与开源。”


3 月 26 日,王院生将于 DIVE 全球基础软件创新大会的《基础软件人才培养和发展》专题中,带来“开源浪潮下基础软件人才培养和实践”的分享。希望借本次分享,能透过 Apache APISIX 开源项目的视角,系统阐述开源项目与基础软件人才的关系以及成长模式,让观众从实例中了解如何进行公开透明的全球协作,以及如何培养和吸引人才。“开源项目没有黑魔法,只有解决实际生产问题才有根基。”


采访嘉宾介绍:

王院生,API7.AI 创始人 & CTO,Apache APISIX PMC Member,《OpenResty 最佳实践》作者。


2022-01-11 18:365087
用户头像
罗燕珊 InfoQ中文站编辑

发布了 422 篇内容, 共 244.6 次阅读, 收获喜欢 757 次。

关注

评论

发布
暂无评论
发现更多内容

火遍网络的KPI异常检测到底什么梗?

乌龟哥哥

2月月更

云原生时代,软件交付有何不同 | 研发效能提升36计

阿里云云效

阿里云 云原生 持续交付 云平台 研发

新年开工新气象|OceanBase 祝大家开工大吉!

OceanBase 数据库

开源 OceanBase 社区版 开工大吉

教你从零搭建Web漏洞靶场OWASP Benchmark

华为云开发者联盟

渗透测试 漏洞 安全测试 漏洞靶场

前端培训:分享web前端面试“区别”题

@零度

前端开发 前端面试

带你读AI论文:NDSS2020 UNICORN: Runtime Provenance-Based Detector

华为云开发者联盟

漏洞 apt APT攻击 UNICONRN 数据来源分析

Go 语言入门很简单:技巧和窍门(Tips and Tricks)

宇宙之一粟

Go 语言 2月月更

知名云计算厂商云宏加入龙蜥社区,共同打造信息安全坚实“地基”

OpenAnolis小助手

云计算 Linux 开源 社群运营

蚂蚁大规模 Kubernetes 集群无损升级实践指南【探索篇】

SOFAStack

云原生 etcd #Kubernetes# #k8s SIGMA

使用JMX Exporter监控Rainbond上的Java应用

北京好雨科技有限公司

JVM进阶(十二):JAVA 可视化分析工具

No Silver Bullet

JVM 监控工具 2月月更

golang 面试总结

yuexin_tech

golang 面试

王者荣耀商城异地多活架构设计

swallowluo

架构实战营 #架构实战营 「架构实战营」

HarmonyOS canvas绘制“飞机大战”小游戏,真香!

HarmonyOS开发者

HarmonyOS

混合云模式下,如何定义一款好的 API 网关

API7.ai 技术团队

流量控制 api 网关 微服务治理 Apache APISIX

vivo直播应用技术实践与探索

vivo互联网技术

RTMP 直播技术

你使用的是数据结构还是对象?

蜜糖的代码注释

Java 后端开发 2月月更

Nodejs内置模块path与fs模块简单使用

编程江湖

nodejs

Mybatis常用注解中的SQL注入

编程江湖

JVM进阶(十三):阶段学习回顾

No Silver Bullet

JVM 2月月更 回顾

营销MM让我讲MySQL日志顺序读写及数据文件随机读写原理

华为云开发者联盟

MySQL 磁盘 数据读写 日志顺序读写 数据文件随机读写

也谈向上管理

wood

向上管理 300天创作

金3银4面试前,把自己弄成卷王!

小傅哥

面试 小傅哥 金三银四 项目学习

浅谈数仓建设及数据治理 | 社区征文

五分钟学大数据

数仓 新春征文

第1章:初识数据库与MySQL----数据库基本概念

乌龟哥哥

MySQL 2月月更

Nacos服务注册与发现的2种实现方法!

王磊

nacos SpringCloud Alibaba

鸿蒙轻内核源码分析:文件系统FatFS

华为云开发者联盟

鸿蒙 Fat 文件系统 鸿蒙轻内核 FatFS

经验分享 | TDengine在智能船舶领域的实践手册

TDengine

数据库 大数据 tdengine 物联网 时序数据库

[JAVA冷知识]为什么动态加载不适合数组?如何动态加载一个数组?

山河已无恙

Java 2月月更

try{}catch居然可以隐藏?让我们用函数式接口来实现吧

山河已无恙

Java 2月月更

DDD[0]·序

陆乘风

领域驱动设计 领域驱动设计DDD 领域驱动设计思想

参与开源,让程序员都成为发明家而不是“码农”|DIVE 基础软件大会专访_行业深度_罗燕珊_InfoQ精选文章