原文发布在 公众号:琚致远,也欢迎阅读 创业 2 年值得分享的事情 😊
2015 年我在读大一,在部署 Web 项目时用到了 Apache Web Server ,Apache 软件的羽毛标志只需看一眼就能牢牢记住。
Apache 软件基金会成立于 1999 年(我出生于 1997 年),作为全球最大的开源软件基金会,我从未想过会现在与它有更深入地联系。
2019 年大学毕业后不久,APISIX 项目发起人联系到我,希望我能为 APISIX 贡献一个 Dashboard 项目。首先,什么是 APISIX ?那时我对 APISIX 项目的理解仅仅是一个开源的 API 网关,那什么是 API 网关呢?我没有使用过这类产品,更谈不上如何做一个与 APISIX 配套的 Dashboard 了。
在大学期间自己接了许多项目(来自学校、朋友介绍、政府部门),尽管我对“如何构建 API 网关控制台”没有思路,但我清楚一个 Web 项目包含了“需求确认、产品设计、代码开发、功能测试、服务上线”这几项基本流程。
在多次与 温铭、院生 沟通产品需求后,我为 APISIX 项目制作了 APISIX Dashboard V1:它没有精致的 UI (如下图所示),但能够满足对 APISIX 核心概念地操作,此时自己对 API 网关以及 APISIX 相关概念更加清晰了。
值得一提的是:APISIX 内置了数十种插件对 API 请求、响应进行处理,这些插件通过 JSONSchema 进行插件配置参数地合法性检查。以 limit-req
插件为例,它的 JSONSchema 规则如下:
local schema = {
type = "object",
properties = {
rate = {type = "number", exclusiveMinimum = 0},
burst = {type = "number", minimum = 0},
key = {type = "string"},
key_type = {type = "string",
enum = {"var", "var_combination"},
default = "var",
},
rejected_code = {
type = "integer", minimum = 200, maximum = 599, default = 503
},
rejected_msg = {
type = "string", minLength = 1
},
nodelay = {
type = "boolean", default = false
},
allow_degradation = {type = "boolean", default = false}
},
required = {"rate", "burst", "key"}
}
当用户为某一条 Route 配置插件时,为了降低用户理解 JSONSchema 规则的难度,我们尝试在界面中根据规则直接渲染表单字段,如何在界面中动态地生成插件配置表单是我遇到的最大的挑战。通过一系列调研与测试,我自定义了一个 UI 组件,它可以通过接收 JSONSchema 规则渲染指定表单,这个组件得到了许多用户好评。
在 2020 年中,我们计划开发 Dashboard V2 ,主要原因有:
react-jsonschema-form
这个流行的 JSONSchema 表单生成器组件,希望使用它来解决表单生成的问题;直到今天,Apache APISIX Dashboard 依然在缓缓维护着 V2 版本。
具体开发过程不再赘述,但值得分享的事情是自 2019 年到 2020 年末,Apache APISIX Dashboard 与 Website 两个项目的 Web 贡献者非常少,这是由于 Apache APISIX 这个 API 网关属于中间件分类,用户以服务端开发者居多。为了解决事情多、贡献者少的问题,我选择使用 Ant Design 作为 UI 组件库、使用 Ant Design Pro 作为项目脚手架,直接原因是那段时间社区以中国开发者居多,采用文档清晰、产品质量高的 Ant Design 作为项目基础组件,会降低中国开发者的贡献门槛,唯一缺点是 Ant Design 在中国太流行了,许多项目的 Dashboard 长得非常像。
从下图可见,自 2020 年中到年末,Dashboard 贡献者数量在明显地上升。来自中国、印度的贡献者们,从一些国际化内容修改到大块模块地开发,为 Dashboard 项目添砖加瓦。其中,有几位贡献者的故事令人瞩目,我会在另一篇文章进行记述。
中学时我对 Web 渗透技术非常感兴趣,会在各种技术论坛中学习、交流,那时我便经常听到“社区”这个词。2016 年,我参与到了 freeCodeCamp 中文社区中,并与 Miya 等人参与到中国多个城市站建设当中,以成都、上海、杭州之活跃,并结交了众多志同道合的朋友们。
2019 年参与到开源项目 APISIX 后,我在不断为项目贡献代码之外,也在关注、回复 GitHub 、邮件列表的用户问题,并与开源用户进行讨论。随着用户地逐渐增多、讨论越来越频繁,忽然我觉得有“社区”的味道了。
APISIX 项目被捐献给 Apache 软件基金会、2020 年从基金会毕业、拥有众多国内大 B 用户地生产使用案例等,每一个事件都吸引了众多行业用户关注、为社区带来了更多用户与贡献者、为项目带来了更多生产用户的内部反馈与实践。
社区是由人构建的,Apache APISIX 社区是由来自全球各地、有着不同语言与文化的贡献者、用户以及社区共同参与维护的。在过去 3 年时间里,我们一直在做这样的事情:
经过不懈的努力与坚持,Apache APISIX 社区贡献者已超过 400 位!🎉
成为 Apache APISIX 贡献者,我们会尝试联系大家并邮寄一份周边以表心意。每当收到来自不同国家的贡献者动态,作为社区建设的一份子,因 TA 们付出的卓越贡献而激动不已、也会为自己感到骄傲与自豪!
Apache APISIX 属于基础软件设施的中间件分类,其用户指全球使用 API 的企业。
2019 年末,贝壳找房是已知的首家超大流量生产用户,那时起便每天处理过亿生产流量,Apache APISIX 表现的非常稳定。
想象一下:每乘地铁、出差乘飞机、购买咖啡 /奶茶、看哔哩哔哩、使用 WPS 时,这些数字服务的背后都有 Apache APISIX 的存在,这种感觉是多么的棒!
我们还有许多生产用户,请访问https://apisix.apache.org/showcase 了解更多。
2019 年刚参与 Apache APISIX 时,仅仅是因为它是一个开源项目、自己一直希望深度参与到一个开源项目当中,在 2019 年 10 月份,温铭 告诉我项目成功捐赠到了 Apache Software Foundation ,在毕业之前叫做 apache/incubator-apisix
,我被邀请进入 initial committer
。我记得很清楚:那天在办公室,内心充满欣喜地打印 Apache CLA 文件,并签名、拍照、上传,然后拥有了自己的 Apache ID juzhiyuan
!!!🎉
2020 年,项目从 Apache 软件基金会毕业后,自己成为了正式的 Apache APISIX PMC 成员,除了贡献代码外也在积极维护社区建设,帮助、观察新的贡献者并选举优秀的贡献者加入 Committer 。到目前为止,我已成功推选 8 位优秀的 Committer ,其中 2 现在是 Apache APISIX PMC 成员。
2022 年 3 月某一天早上,自己收到了 Apache Member 邀请邮件,这是多么惊喜的事情呀!意味着自己除了关注 Apache APISIX 社区之外,也有了更多的责任与义务,与各位共同维护、发展 Apache 软件基金会。为此,社区专门采访了我,请阅读琚致远:95 后 Apache Member 的成长之路。
1
jolanyu 2022-06-10 08:36:41 +08:00 via Android 1
在今年中科院的开源之夏看到了 apisix dashboard v3 项目
|
2
ccyu220 2022-06-10 08:38:32 +08:00
看懂的谁总结一下
|
4
l4ever 2022-06-10 08:56:18 +08:00 1
恕我直言, 这不就是 antd 么?
|
5
kappa 2022-06-10 09:40:22 +08:00 6
> 2019 年大学毕业后不久,APISIX 项目发起人联系到我,希望我能为 APISIX 贡献一个 Dashboard 项目。
??? |
6
misaka19000 2022-06-10 09:42:58 +08:00
楼主你们还招人吗?
|
7
Ashore 2022-06-10 09:45:21 +08:00
太长不看系列
|
8
kop1989smurf 2022-06-10 09:45:27 +08:00 30
|
9
ffLoveJava 2022-06-10 09:50:13 +08:00
就用 阿里的 antd 做了前端的展示页面呗 ? 你写的太乱了 没看明白
|
10
yylzcom 2022-06-10 09:54:32 +08:00 via Android 1
感谢楼主为开源事业贡献的力量!
|
11
C603H6r18Q1mSP9N 2022-06-10 10:04:16 +08:00
这种文章不讨喜
|
12
Singular 2022-06-10 10:09:26 +08:00
这是展示 pyq 的 blog 吗?除了 Dashboard ,没太看懂其他和 Apache Software Foundation 有啥太多关系
|
13
reiji 2022-06-10 10:21:26 +08:00 via Android 2
有些老哥戾气别这么大,有代码贡献,能被认可是值得夸的
|
15
xooass 2022-06-10 10:35:57 +08:00 1
肯参与贡献并有实际行动,就是好的,非常支持
|
16
leeg810312 2022-06-10 10:38:14 +08:00
粗略浏览,主题就是 github 开源项目贡献的过程吧。流水账写的好乱,看了头大,不想细看。
|
17
aaaaaaaaa 2022-06-10 10:38:23 +08:00
@kappa 哈哈哈,看到这同样黑人问号,APISIX 项目发起人是你亲戚吗?怎么你一毕业就主动联系你了?还是说你原先就有某种 buff 但是没提?普通人完全没法参与,因为不会有某个 apache 基金会的项目发起人来主动联系一个普通人 :dog
|
18
manami 2022-06-10 10:41:20 +08:00 29
不知道是不是语言表达的问题,这个帖子 op 字里行间想给人传达的是:我很厉害。
翻看了 op 的前几个帖子,也都是这种风格。 P.S. 看了 op 的微信朋友圈截图,朋友圈这样玩,估计被好友屏蔽的差不多了,这样的动态只会给人形成一种感觉:装逼。 个人观点,不喜勿喷。 |
19
shaoyaoju OP @l4ever 没错,是用的 Ant Design Pro 作为脚手架。由于项目偏服务端组件、Web 贡献者很少很少,因此选择了文档更加清晰、易读的 Ant Design Pro 作为脚手架。
|
20
felixcode 2022-06-10 10:45:44 +08:00 via Android
所以是在等着大家夸你吗?
|
21
shaoyaoju OP @misaka19000 👋 有的。
团队一直在邀请合适的伙伴加入,我们希望对 公司 与 候选人 双向负责,会更在意候选人是否适合在 当前阶段 加入公司。可以将简历发送至 [email protected] 😉 |
22
SxqSachin 2022-06-10 10:55:30 +08:00
2019 年大学毕业后不久,APISIX 项目发起人联系到我,希望我能为 APISIX 贡献一个 Dashboard 项目。这个可以展开讲讲吗,很多人大概就是没这个机会
|
23
shaoyaoju OP @kop1989smurf 参与开源项目与社区的过程中会遇到不同技术经验与背景的参与者们,TA 们会提出一些显而易见或与项目无直接关系的问题,我们能够理解并给出建议或提供相关方法。这是我们维护者认为同理心重要的一点。😉
|
24
37Y37 2022-06-10 11:02:46 +08:00
but anyway ,你很牛皮!
|
25
shaoyaoju OP > @kappa 哈哈哈,看到这同样黑人问号,APISIX 项目发起人是你亲戚吗?怎么你一毕业就主动联系你了?还是说你原先就有某种 buff 但是没提?普通人完全没法参与,因为不会有某个 apache 基金会的项目发起人来主动联系一个普通人 :dog
@aaaaaaaaa 很好的问题,这是该问题的背景补充: 1. 项目发起人是 OpenResty 国内社区组织者,也在许多技术微信群中,我是通过微信群认识的; 2. 2019 年 APISIX 项目刚刚开始(尚未捐献给基金会,不属于基金会项目),需要有一个能够通过界面控制 APISIX 配置的服务。由于我在 freeCodeCamp 中文社区活跃,因此他便联系到了我。 |
26
isb 2022-06-10 11:51:49 +08:00 9
为什么社区现在戾气这么重?参与开源分享都是过错了?
楼主参与开源,获得认可,一起分享,这不就是很好么? 自我实现的需要,楼主获得了自我满足,众多使用开源软件的人也获得了便利和实用。 为什么发个帖子就被人认为炫耀? 楼主分享了如何参与开源项目,开源项目获得 apache 认可,以及从 apache 毕业,给后续有兴趣的参加开源人写了一条参考实践的路子。感谢楼主的分享。 对那种这就是一个前端:talk is cheap show me the code |
27
ecloud 2022-06-10 11:54:29 +08:00
图太多,懒得看,谁给我总结一下咋回事?
|
28
fregie 2022-06-10 11:58:52 +08:00 1
哈哈,和院生聊过,没看上我,可能我主要不是做 lua 和 C 吧
|
29
WillBC 2022-06-10 12:16:22 +08:00 via iPhone 3
楼主为开源贡献了自己的力量,值得肯定和夸奖。
|
30
Macolor21 2022-06-10 12:35:34 +08:00 via iPhone
@isb 就第一点 ( 2019 年大学毕业后不久,APISIX 项目发起人联系)
90%的人都没有这个条件,哪里来的参考实践路子? 最合理最友好的方法是 learn document ,然后发现错误提 PR ,这是最简单也是最入门的方式。 |
31
shaoyaoju OP @manami
> 不知道是不是语言表达的问题,这个帖子 op 字里行间想给人传达的是:我很厉害。 > 翻看了 op 的前几个帖子,也都是这种风格。 > P.S. 看了 op 的微信朋友圈截图,朋友圈这样玩,估计被好友屏蔽的差不多了,这样的动态只会给人形成一种感觉:装逼。 > 个人观点,不喜勿喷。 今年 3 月被邀请为 Apache Member 后,我花了一些时间将过去 3 年在基金会项目参与过程进行记录,末尾的一系列截图构成了参与过程的时间线。 这篇文章首先是为自己记录的,自参与到开源商业化创业中后,时间与精力几乎全部投入到产品、社区与公司建设中,因此很少有时间整理对外的内容;其次,希望通过这篇文章将经历分享出去,与对此感兴趣、志同道合的伙伴建立连接。 至于 `这个帖子 op 字里行间想给人传达的是:我很厉害。`,感谢你对我的认可,但我在同步到 V2EX 之前并未想过这件事,仅仅是作为经历的记录。参与开源社区、与人建立联系是我所热爱的,其它评价、机会更像是副产品。 |
32
shaoyaoju OP > 最合理最友好的方法是 learn document ,然后发现错误提 PR ,这是最简单也是最入门的方式。
@Macolor21 认同这种方式:跟着文档用起来、发现文档问题(错别字、过期的内容)并进行修复。 |
33
SoulSleep 2022-06-10 13:03:06 +08:00 1
看完了,OP 付出了自己的能力和时间很好的推广了 apisix 社区的发展,虽然不是那种名声显赫的大人物,但也做的非常积极和优秀了,这评论,真是一言难尽。。。见不得别人比你好吗?
如果没有 OP 这种人持续的为开源社区增加活跃度,就不要赖国内开源技术现状和外面的差距了 |
34
fds 2022-06-10 13:03:48 +08:00 1
厉害,很有领导者的气场。OP 从小就有这种组织能力吗?是父母培养还是性格就这样子呢?有没有总结回顾呢?
|
35
hackape 2022-06-10 13:20:45 +08:00 via iPhone 2
请忽略柠檬精们的发言,你做的事情非常棒!维护过大项目的人都知道,核心技术有多牛逼真不是项目成功的重要标准,最终要的是日复一日的坚持,持续不断的维护打磨各方面的细节。commit chart 初始的几座山仅仅是开始,让项目成功的是后面那条长长的尾巴,以及数量不断增加的 contributors 。长期做好这件事本身比一周肝一万行代码难的多。
|
36
EarthChild 2022-06-10 13:28:10 +08:00
不考虑去省会开个公司增加就业岗位嘛
|
38
manami 2022-06-10 13:40:53 +08:00 7
>今年 3 月被邀请为 Apache Member 后,我花了一些时间将过去 3 年在基金会项目参与过程进行记录,末尾的一系列截图构成了参与过程的时间线。
>这篇文章首先是为自己记录的,自参与到开源商业化创业中后,时间与精力几乎全部投入到产品、社区与公司建设中,因此很少有时间整理对外的内容;其次,希望通过这篇文章将经历分享出去,与对此感兴趣、志同道合的伙伴建立连接。 分享从来都值得赞扬,但是表达方式很耐人寻味。 比如你的帖子 /t/561076 里面: “身边的朋友们一个个都要毕业了,近期有朋友问我:马上毕业、可是考研失利,想找一份 Web 方向的工作,但是大学四年都没有好好学,这该怎么办? 我的建议是: 首先确定是否真的要做 Web 方向; 接着请教有相关经验的朋友,都需要学习什么技能; 最后用一定的时间规划学习周期,持久地、分阶段性学习。 于我,在学习(做)一件事情的时候便是按照上面的步骤来的。过程不复杂,但在最后一步,坚持下来的能有多少人?有一个可以支持自己长期做一件事儿的小技巧:尽可能做自己喜欢做的事儿。” 这是分享?看不出来。通篇看到的是一个自恋且高高在上给“后来人”建议的“成功人士”形象。 |
39
qaweqa 2022-06-10 13:51:38 +08:00 4
挺搞笑的,类似于写了一篇我与清华的故事,前后都描述自己表现平平,唯独中间一段如何考入清华被一笔略过了。
|
40
felixcode 2022-06-10 13:58:32 +08:00
看到这风格不由联想到唐骏的《我的成功可以复制》
|
41
lakehylia 2022-06-10 14:02:13 +08:00
有课代表总结一下吗?
|
42
pastor 2022-06-10 14:21:14 +08:00 26
@lakehylia
我想尝试课代表: 1. 标题就是傍大腿装逼的风格。其实 apache 项目要分三六九等,进入 apache 未必就是真的牛逼的东西 2. 文章内容拖沓,找不到重点干货,更适合去做 PPT 忽悠老板然后给自己升职加薪,详情参考《沙漠骆驼》新东方年会版。踏实做技术的本分人,没几个不烦这种 PPT 技术达人的 3. 一个使用 antd 开发的 dashboard ,功能通常不会比很多公司的管理后台复杂,这玩意本身确实不牛逼 4. 年纪不大,语气是成功人事高高在上,少年非要装老成却又并没见到真正牛逼的点,肯定不讨喜 5. 而且说白了,这就是个间接的推广软文,我不反对推广干货,但是实在没看到干货,所以就烦了 要是像隔壁 3 年的同学一样谦虚 /t/858318 ,没人会在这里喷 OP ,而且隔壁 3 年的同学已经很牛逼了,对比之下,OP 这个标题、自己的实力和行文的口气,真忍不住想喷 |
43
zhw2590582 2022-06-10 14:21:40 +08:00 via iPhone
只看了第一段,后面忽略了,楼主之前是不是做过什么牛逼的事,让别人主动联系你?
|
44
shaoyaoju OP @fregie 我加入公司较早,招聘有几个阶段:
1. 2020 年我们招聘十分严格(非社招),希望能邀请到一起创业的伙伴,到年末时不到 10 人; 2. 2021 年我个人认为简历筛选宽松了一点点,且开始招聘实习生,但社会招聘通过率不理想,因此又收紧了简历筛选标准; 3. 2022 年我们主要在海外招聘,并加入 2 位 Web 工程师和设计师。 这些年我们一直在寻找可以长久合作、一起创业的伙伴。😊 |
45
shaoyaoju OP @zhw2590582 嗨,我在这里补充了联系原因: https://v2ex.com/t/858593#r_11753806
|
47
shaoyaoju OP |
48
pocketz 2022-06-10 15:15:33 +08:00
建议把时间线折叠一下,这样观感会好一些
看起来 Apache Member 好像很厉害的样子,有人能介绍一下吗 |
49
maplelin 2022-06-10 15:25:39 +08:00
希望 OP 多分享一下刚开始参与开源的经历(受邀请加入 APISIX 之前的经历),因为大部分有意成为开源贡献者的开发者可能都没有机会参与到知名项目的贡献中去,我觉得这部分内容 v 友会更有兴趣一点。
|
51
smalllam 2022-06-10 15:40:02 +08:00 via iPhone 2
不管楼上说啥,对于真正做事出成绩的,我个人一律表示支持肯定,就这样。
|
52
min 2022-06-10 16:02:21 +08:00
课代表帮忙总结一下,这软件是干嘛的?稳定么? 使用广泛么? 有替代竞品么?
|
53
lasuar 2022-06-10 16:08:35 +08:00
更多是在宣传自己
|
55
yogogo 2022-06-10 16:25:28 +08:00
牛逼~~找不到其他词了,抱歉
|
56
liangch 2022-06-10 16:48:26 +08:00
宣传就好好宣传。思路有点乱。
|
57
jin5354 2022-06-10 16:51:27 +08:00 2
看了半天做的只是 dashboard 吗?如果没有技术深度,当然得不到 V 友的认可。。码农 PK ,技术至上。
lz 讲了太多的运营,合作,搞人脉,这些其实没那么多人想看,感觉 lz 适合当 CEO 而不是 CTO 。 有趣的是可以引用 @isb 的一句话 talk is cheap show me the code ,lz 的文章其实是 talk 太多 code 太少的例子。 |
58
jin5354 2022-06-10 16:58:17 +08:00 1
不是指 code 量少,其实还是如此浩瀚的篇幅的宏达的叙事,没能撑起大伙儿对技术的期望吧。
|
59
webfrogs 2022-06-10 17:12:25 +08:00 1
目前在用 apisix , 也贡献了几个小 pr 。好用,支持,加油~~
|
60
yuu95 2022-06-10 17:19:16 +08:00 via Android
牛逼。我看的总结
|
61
fiypig 2022-06-10 17:20:49 +08:00
大佬厉害
|
62
hhjswf 2022-06-10 17:31:20 +08:00
谁能总结一下吗
|
63
www5070504 2022-06-10 17:36:50 +08:00
风格像极了那些纯 ppt 选手
|
64
ren2881971 2022-06-10 17:38:28 +08:00 1
说实话没看懂你想表达什么? 求职?拉人加入社区?还是推广这个项目?
|
65
really28 2022-06-10 17:51:56 +08:00 2
看完感觉浪费了生命中可贵的几分钟。哎~
|
66
28Sv0ngQfIE7Yloe 2022-06-10 18:46:41 +08:00
最开始粗略的看了一遍,然后看完了评论,最开始指责文章水的评论让我感觉回复者有点「酸」,于是我又认真的看了下文章,发现之前看来认为「酸」的评论好像不无道理。。。。
|
67
Guidoo 2022-06-10 19:31:41 +08:00
写 ppt 肯定是个好手
|
68
bigwhite1 2022-06-10 20:14:20 +08:00
发这么一长串,真以为会有人看完么,楼主自己开心就好~
|
69
danhahaha 2022-06-10 20:20:10 +08:00 3
看到简历部分我就知道楼主什么水平了
|
70
cmdOptionKana 2022-06-10 20:25:09 +08:00 1
不知道是没有能力把文章写得清晰易懂,还是故意写得混乱,感觉云里雾里。
|
71
w3cll 2022-06-11 00:39:31 +08:00 2
直接看课代表得总结,太多了,看了头几行完全没兴趣,不知所云。最后发现,原来是来推广的,然后来吹吹牛批的。不过话说,你搞技术就好好搞技术,贴上你的 GitHub 地址,用代码说服大家。这个地方是 V 站,楼主这种方式,不太讨好,效果适得其反。
|
72
cassyfar 2022-06-11 09:25:17 +08:00 1
看到很多楼上问“怎么参与”的。
其实没有门槛,只是大多数人没有行动力或者说习惯了上学时候的“等老师安排”。你愿意参与,就去感兴趣的项目下提 issue ,或者参与 issue 讨论,慢慢就混熟了。不单 apache ,你也可 0 基础加入 linux kernel 这种大项目。 |
74
cassyfar 2022-06-12 06:28:18 +08:00
@qaweqa 你是不是对开源有什么误解。。。这是免费干活,只要出活,还有什么容易不容易。另外正因为是开源,没人在意你头衔。
|
75
EminemW 2022-06-12 17:33:27 +08:00
"他小学开始接触电脑,学习 Flash 技术,初高中自学 Web 渗透,爱上黑客文化,加入乌云白帽,大学加入 freeCodeCamp 社区,成为 Web 技术的布道师、引路人,从此和开源结下不解之缘"
|