开源,是一条历史悠久的长河,一个 6 年的周期,相对这条长河很短;但一个 6 年的周期,却能让一段人生因开源而改变,李凌的成长就是其一。

2016-2021 年,李凌完成了从一个纯「开源小白」向 Apache 顶级项目 PMC 成员的转变,期间他在 OpenResty、Apache APISIX、Kubeshpere 等社区留下了不同的贡献「印记」。也正是这些「印记」,让他感悟了什么是开源、什么是开源产品、什么是开源商业化。

腾源会 WeOpen Talk 栏目本期对话嘉宾——Apache APISIX PMC 成员、Shopify 中国区首位工程师李凌。他将带我们回顾这 6 年的成长经历与那些重要的所思。

1

从开源小白到 Apache APISIX PMC 成员

李凌与开源的结缘,得回到 2015 年 10 月,从开源一个 lua-aes 的加解密库开始。

当时李凌在 HelloTalk 这家公司为出海业务搭建底层基础架构。在众多技术工具中选型时,他发现了 OpenResty 这套基于 Nginx 与 Lua 的高性能开源框架。因为其简单性和易用性,命中了团队 95% 以上的需求,所以其团队很快在自身的生产环境、业务架构中基于 OpenResty 搭建了应用和基础服务。

到了 2016 年,李凌逐渐开始接触、深入 OpenResty 开源社区,为社区为周边库贡献代码。这也是他迈入开源圈子的第一个阶段。那会儿还是「门外汉」的李凌,没有任何参与 Apache 这类大型开源社区的贡献经验。

当时 OpenResty 开源社区的开发者比较少,生态和社区建设层面也不太完善。很多时候,我把代码发到 GitHub 上之后,也不怎么管,其中自己单独开发的一个库可能才 20 几个 Star,但是在 Github Traffic 里面,能看到每天有人在访问,让我觉得很兴奋。

这种半「自由」的状态,是李凌「半个脚迈入开源社区」的初始,也整整持续了 3 年时间。

虽然这段经历不算「波澜壮阔」,但在 OpenResty 社区,李凌收获了开源之路上最宝贵的人脉——温铭(支流科技创始人,Apache APISIX PMC 主席,腾源会导师)和王院生(支流科技创始人、Apache APISIX PMC 成员、OpenResty 软件基金会联合创始人)。

后来,温铭和王院生联合开始做 Apache APISIX 项目,这也成了李凌开源之路上至为关键的节点。

作为后端基础架构的技术负责人,李凌在 2019 年年中做技术选型时,恰好遇上了 APISIX 的冒头。一开始,李凌接触 APISIX 的原因只是 HelloTalk 的业务架构中需要这类 API 网关工具。

「但不得不说,其使用体验确实很好」,所以,李凌基于在 OpenResty 社区所沉淀的对开源贡献的经验,很快准备向 APISIX 社区贡献一些周边插件、测试案例或底层代码。

但,这次的「准入」却远远没有那么简单。不久后,一个「小插曲」的出现成了李凌很为难忘的经历:

我提交的第一个 Commit 就足足写了半个多月,一会写错这里,一会那里又不对。直到 2019 年 10 月 30 日,这个 Commit 才最终被 Merge(合并),这个日期我记得很清晰。

在 APISIX 社区,李凌所提交的第一个被合并的 Commit

随着后续贡献的增多,又同步深入参与到社区讨论、项目的版本更新、新特性应用和布道等工作,2019 年 6 月到 2020 年 3 月,李凌进入了在社区里、在开源上成长最快的一段时间。

李凌的成长与 APISIX 的成长,在步调上几乎是一致的。

温铭曾经在回顾 APISIX 从 0 到 1 的发展时提过, 这个项目于 2019 年 6 月开源,7 月加入 CNCF 全景图,10 月进入 Apache 孵化器,截至 12 月共计 17 个 committer,分别来自 16 家不同的公司……「社区化」是 APISIX 成功的很重要的因素之一,同时「社区化」也让像李凌这样的技术人,获得最大的「滋养」。

伴随价值贡献的不断加大,李凌成为了 APISIX 社区中第一位非初始的 Committer,接着又成为第一个被投票选举出的 PMC 成员。站在现在的时间节点上,李凌感慨:

从一个小白成长为 PMC 成员,如果没有那些「受挫」的经历,以及像温铭、院生这样的 Mentor,我可能没有办法在开源领域真正 on boarding。

李凌正式成为Apache PMC

2

开源项目的内核是产品,不是技术

这几年,因为一直在开源社区或独立开发者社区的缘故,李凌培养出一种认知——程序员一定要去接触业务,无论是不是在做开源,还是仅仅只敲代码。

因为,开源项目本身依然是个产品,它的内核不是技术,而是产品本身。

「当你把开源项目看作一个产品时,你就会带着运营产品的理念,去思考如何做好开源。」这是李凌通过实践得出的观点。

去年,他作为中国首位工程师加入了全球最受欢迎的电商 SaaS 企业之一的 Shopify 。在选择 Shopify 的逻辑背后,李凌最看中的就是其在「产品化」和「全球化」上的领先实践和能力。

进入 Shopify 的头几天,李凌最深刻的感知就是,海外企业对 SaaS 的使用程度极高,海外的软件服务市场也相对更为成熟,例如一天的工作流中,Shopify 团队基本会用到上十款的 SaaS 工具。

也得受益于在 Shopify 这家全球化的工作经历,李凌眼中的 Shopify 是一家典型的从开源(Ruby on Rails)走出来的商业公司,并且它们积极拥抱和回馈开源社区。

因此,李凌在采访中,也用了自己总结的一句话来描述 Shopify 这家公司的特点:「A Positive-Sum SaaS company that worship techniques instead of substance, and port OpenSource to commerce!(崇尚技术而非物质、从开源走向商业、打造正和共赢的 SaaS 公司)」

Shopify 内部的大会也经常强调,是开源的文化造就了今日公司的成就。李凌也特别受到其内部对开源观念的鼓舞,他说他们内部经常会说:「As a team that greatly benefits from open-source software, we need to contributed back to the community.(作为一个从开源软件中获益匪浅的团队,我们需要为社区做出贡献)」。

李凌与 Shopify 团队的合影

受到这种理念的影响,李凌也越来越喜欢从 SaaS 实践和产品化的视角,来反观开源商业化。他认为:

第一,开源项目或开源社区成长的核心关键是人,做好一个开源社区的关键就是要足够有多样化,吸纳足够多(多样化)的人来使用,这样项目(产品)才能听到更多的反馈,推动项目不断地打磨。因为,执行产品的是机器,用你产品的是人。

从 2019 年开始到现在,李凌在 Apache 社区的实践持续了整整 3 年时间。他看过国内很多开源项目在 Apache 社区的成长,也看到一些项目在社区治理时,存在的问题:相对于产品本身,开发者更重视代码本身,认为开发者在社区,需要 Contribute 代码才算合格的贡献者。

但是,很多国际大型开源社区运作文化,如 Apache Way 反而会更看重项目的综合表现能力,例如项目的技术品牌、用户与应用增长、产品理念、社区活动等维度的发展,这种文化也不仅仅鼓励开发者们去社区贡献代码,而是更鼓励与开发者、用户一起共建社区和生态,鼓励开发者贡献更「性感」的一些周边库、辅助类工具(技术文档、白皮书)等,让这些更丰富的内容促进社区的多样性。

第二,一个好的开源项目千万不要有太重的「技术范儿」,做产品的核心很大程度上的目标是要有变现,对于开源项目也是一样,千万不要做没有商业变现能力的开源产品,否则产品容易失去生命力。

当下很多 SaaS 化产品,在开源侧基本都有替代品。一些开发者或企业把开源产品改一改、添加若干功能就能将其变成一个商业产品,说起来好像很简单,但做起来并不容易。

李凌观察到,很多开源项目在设计、定位和发展过程中,主导人缺少对 SaaS 化的感知能力、变现能力。「这是一个综合的商业能力,你只了解 SaaS 产品不够,或只了解开源技术也不够,如何把 SaaS 化的敏锐力嫁接到开源项目和开源产品上,完全是一个综合的发展需要。」

做产品,如何证明你的项目(产品)是有价值的?能赚到钱是很重要的衡量因素,因为「能不能挣钱」,在某种程度上证明了你的项目(产品)有没有解决人的痛点。但是,商业化最大的要义不只是挣钱。

李凌对「商业化」这件事情充满了兴趣,他喜欢一个在海外流行的打造产品的行为,叫「#BuildInPublic」,这是一种用开源的理念去运作商业 SaaS 产品的行为,项目本身可以做到 Monetization but for Public Good 。

李凌与Apache 首位华人董事吴晟的合影,他说「晟哥对其开源理念的形成也至关重要」

第三,做开源社区和开源产品,一定要和各个生态打通,这样你的用户群众基础会丰厚一些,一定要多去招募、拥抱新的贡献者加入你的社区。

这个过程中很重要的一点是,降低贡献者加入社区的门槛。

从李凌的观察和与社区的交流来看,很多「小白」或者「入门者」进入社区时都有恐惧心理,因为认知较少,他们通常都会一开始把社区想得特别高大上,会顾虑很多,如「我的 Contribution 会不会不能通过」、「我会不会犯错」。

因此,做好开源社区的关键,是需要设立一批这样的人——类似向导,他们为新手们建立一些「引导」和「规范」。这也是李凌自身在 APISIX 社区成长过程中最大的受益。

此外,Apache APISIX 社区也经常会向新入社区的伙伴们发一个 Good First Issue(新手引导),专门让新入者去 Debug 或 Comment ,以增强他们的信心。

3

参与开源的价值终会有所反馈

通过这几年的开源实践,李凌对开源这件事的本质认知已经有了很大的不同。

在访谈过程中,李凌感谢的温铭、王院生两人,在他的谈话中出现得极为频繁,他认为,导师的帮扶,是他一步步成长为 PMC 成员的最关键要素。

李凌在广州与 Apache APISIX 社区伙伴们的合影(一排右5为李凌,左5为温铭,左2为王院生)

因为我自己是受益于社区的,所以我现在非常勉励年轻人在步入职场早期就去做开源。

这和李凌的成长经历有关的。在其参与开源的早期,无论是技术上还是对开源的理解上,李凌自认为并不是「厉害的苗子」。但是深入之后他的深刻体会是,开源的参与门槛并不高——「哪怕你贡献一两行代码都是好的,这有谁做不了呢?壁垒在哪里?」。

李凌带的一个实习生就曾受他的影响走上了开源。一年多前,这个实习生同他说,想去某互联网头部公司入职,问李凌是不是好的选择。李凌和他讲了很多,但总的方向就是鼓励他去做开源。不出意外,这个实习生在毕业一年后,就加入了 K8S 社区。

「也许很多刚入门开源的乍一听会觉得,『怎么这么厉害』,刚毕业就能进 K8S 社区?这就是一种误区。实际上,开源社区的参与与融入并不复杂。」李凌解释说,这个实习生通过一段时间对 K8S 生态和社区文化的了解,发现了一个 Good First Issue,这个过程中,开源大神会带着他逐步深入社区,一步步地指导他怎么操作。

李凌收获温铭老师赠予的一枚 Apache Committer 纪念勋章

在社区中,李凌他们更多强调的是 Diversity ,而非代码。所以对于很多年轻人的辅导,李凌的心态也相较以前有了很大的转变。之前辅导一些年轻人的时候,李凌经常会心态崩溃,内心动不动就会想说「哎呀,你能不能快点搞完了」。

但现在,李凌会变得非常耐心,「因为辅导我的人,他们就是这么耐心地教过我的。所以将心比心,对于现在的很多新人,我也会非常有耐心地指导他们慢慢做,不要急。」

所有这些心态的变化,让李凌形成一种认知——做开源不要想着急匆匆赚快钱,做开源是帮到别人。

做开源和做 SaaS 产品是一样的,要真正解决用户需求和痛点,用户会自动找上门来问你这个东西能不能付费的。因为你写的代码一直沉淀在社区,沉淀到你 50 岁,可能还会有人看得到,还能够知道这个代码是你写的,只是概率性的问题而已。

李凌相信,开源的价值反馈,一定最终会反馈到每一个参与开源的人身上,不在早晚。■

「WeOpen Talk」是腾源会全新上线的「对话开源」内容专栏,每周为读者呈现一期与尖峰开源人物的精彩对话内容。在「WeOpen Talk」栏目中,我们将深刻诠释开源先锋者们的开源精神、开源理念及其眼中的开源世界,深度挖掘开源领军者们在实践、参与开源过程中的有效方法论和最佳经验。

互动环节

看完本期 WeOpen Talk 栏目,你有什么想法或者疑问,欢迎在评论区留言。本周五 18 点前,点赞前 3 名将获得下方精美礼品之一哦!

腾源会是腾讯云成立的汇聚开源项目、开源爱好者、开源领导者的开放社区,致力于帮助开源项目健康成长、开源爱好者能交流协助、开源领导者能发挥领袖价值,让全球开源生态变得更加繁荣。

欢迎关注「腾源会」公众号,期待你的「在看」哦~

李凌:6 年,我如何从开源小白成为 Apache 顶级项目 PMC相关推荐

  1. GitHub 标星 10,000+,Apache 顶级项目 ShardingSphere 的开源之路

    [CSDN 编者按]几天前,当 GitHub 全球产品技术生态总经理 Michael Francisco 谈到中国开发者已经成为 GitHub 上最活跃的群体时,有开发者提出数量之后质量也要跟上.的确 ...

  2. 微服务开源项目ServiceComb 毕业成为Apache顶级项目

    全球最大的开源软件基金会Apache软件基金会(以下简称Apache)于北京时间10月24日宣布Apache ServiceComb 毕业成为Apache 顶级项目. \\ ServiceComb 由 ...

  3. 开源雨林 | 从高校中走出的 Apache 顶级项目 —— IoTDB 核心成员黄向东访谈实录...

    本文转载自开源雨林(ID:Huawei-KKYL),作者王瑶 本文共3000字,建议阅读10分钟本文为大家带来参与Apache顶级项目的核心成员黄向东访谈实录. 本期访谈嘉宾:黄向东 Apache 顶 ...

  4. 从开源小白到 Apache Member,我的成长之路

    2019独角兽企业重金招聘Python工程师标准>>> 我们走过的每一步路,都会留下印记,越坚实,越清晰. 近日,Apache 软件基金会(ASF)官方 Blog 宣布全球新增 40 ...

  5. 从开源小白到 Apache Member,阿里技术小哥的成长之路

    我们走过的每一步路,都会留下印记,越坚实,越清晰. 近日,Apache 软件基金会(ASF)官方 Blog 宣布全球新增 40 位 Apache Member,张乎兴有幸成为其中一位. 目前,全球共有 ...

  6. Apache孵化器主席Justin Mclean:如何成为Apache顶级开源项目

    近日,Apache孵化器主席.Apache基金会成员.Dubbo & RocketMQ等开源项目的导师Justin Mclean来到阿里巴巴西溪园区,与众多开发者分享了如何打造一个Apache ...

  7. 腾讯宣布开源 RoP:Apache Pulsar 支持原生 RocketMQ 协议

    作者 | 冉小龙,刘昱 RocketMQ 用户可以无缝迁移到 Apache Pulsar 了.自此,Apache Pulsar 补齐了兼容主流消息队列协议的能力. 我们很高兴地宣布腾讯云中间件开源 R ...

  8. Apache软件基金会Member陈亮:一名开源拓荒者的 Apache之旅

    今年是 Apache 软件基金会20周年庆,作为一家全球性的以开发开源软件为公共利益的慈善组织,正在变得更加的多元化.日渐丰富与完善.从本土软件产业的角度而言,须以站在世界的角度来认识.参与.贡献,进 ...

  9. 从开源爱好者到 Apache 董事,他花了 11 年

    姜宁致力于成为连接国内开源圈与Apache基金会的桥梁.如他所说:"开源这条路越走越宽",他的贡献被认可并成功当选了ASF Board成员.那么,从开源小白到ASF董事要几步?本期 ...

最新文章

  1. RDKit | 基于Fraggle算法评估化合物的相似性
  2. linux 切换python版本_Linux下python默认版本切换成替代版本(示例代码)
  3. CentOS各个版本国内镜像下载地址,下载速度10M+
  4. Request的学习笔记(属Servlet学习课程)
  5. 解决虚拟机在能ping通网关情况下出现From 192.168.1.10: icmp_seq=1 Redirect Network(New nexthop: 192.168.1.1)问题
  6. Microsoft .NET Framework 2.0对文件传输协议(FTP)操作(上传,下载,新建,删除,FTP间传送文件等)实现汇总1...
  7. java mongodb 使用场景_MongoDB 数据库引用
  8. 安卓TV开发(前言)— AndroidTV模拟器初识与搭建
  9. rstudio查询命令_RStudio终端操作
  10. CentOS7通过SpeedTest工具网络测速
  11. 数据增强:YoloV4当中的Mosaic数据增强方法
  12. 1--STM32 ADC1与ADC2 16通道DMA采集笔记
  13. Python实现 鱼群算法库
  14. 小说《肖申克的救赎》的优秀读后感2600字
  15. gitee仓库创建和git一些常见命令
  16. NETCTOSS代码实现第五版
  17. VMware虚拟机桥接方式实现上网互通
  18. beanstalk 常用方法、说明
  19. iPhoneX适配之UI设计、交互设计
  20. 入手域名可以通过哪些方式?

热门文章

  1. 探究影像辨識裡的臉部偵測技術(五)
  2. [应急响应]7款WebShell扫描检测查杀工具
  3. python 开发微信公众平台 的坑
  4. 绿平衡(Green Balance)
  5. Android 选择器
  6. 浅谈动感歌词-歌词补充篇
  7. Latex设置字体颜色
  8. 深度强化学习中利用Q-Learngin和期望Sarsa算法确定机器人最优策略实战(超详细 附源码)
  9. CSharp 部署简记
  10. Rust雪山怎么防冷_冬天卫生间太冷怎么办?这4样“防冷神器”少不了,你们家有吗...