Envoy Gateway 的发起 是 2022 年网络领域的一件大事。扛着 Envoy 这面大旗,Envoy Gateway 奉天子以令不臣,任何基于 Envoy 的网关都不得不回答一个问题:“你和 Envoy Gateway 是什么关系”。比如:
- Higress 在自己的 FAQ 里面开头就有 “Higress 和 Envoy Gateway 有什么区别?”:https://higress.io/zh-cn/docs/overview/faq/#2
- 网易数帆在接受 InfoQ 的采访时,例行要回答关于 Envoy Gateway 的问题:https://www.infoq.cn/article/hpu9ifgk71elkapthwun
从 2022 年 4 月份 Envoy Gateway 提交第一个 commit,到现在的 2024 年 1 月份,Envoy Gateway 已经走过了 22 个月的开发历程, 计划在 2024 年 3 月前完成 GA 的发版。作为一个八卦之人,和关心 Envoy Gateway 背后的技术一样,我也在意 Envoy Gateway 背后的人事安排和权力分配。本文即是为此所作。
Envoy Gateway (以下简称 EG)是由 Tetrate、VMware、Ambassador Labs 这三家共同发起的。(在 EG 的成立公告中,Fidelity 也被列入 initial sponsors
,但未查到提供了什么研发上的协助)
EG 的提交记录,在 GitHub 上可以查到。虽然许多组织宣称自己关心并参与了 EG 的发展,但是这里我采用了较为狭窄(也易于分析)的评价标准:只有提交了代码才算参与。提交 proposal 和参与讨论,尽管也算是一种参与,但是很难分清它是实质上的支持,还是过了一把甲方的瘾。另外有些人的贡献是“功夫在诗外”,比如成为 EG 的宣传大使,不过这方面的贡献因为难以衡量,所以在此我不得不舍弃对它的分析。
为了突出变化,我这里选择了一头一尾来观察主要贡献者来源的变化。
头的部分是 2022 年的前十贡献者分布:
https://github.com/envoyproxy/gateway/graphs/contributors?from=2022-04-10&to=2022-12-31&type=c
从上面链接可以看到,前十人中:
- 来自 Tetrate 的:@danehans @arkodg
- 来自 VMware 的:@skriss
- 来自 Ambassador Labs 的:@AliceProxy @LukeShu
- 个人贡献者:@Xunzhuo @zirain @chauhanshubham @zhaohuabing @daixiang0
(个人贡献者里可能有受雇于前三个公司的,由于笔者掌握的信息有限被分到错误的类别)
可以看出,这段时间内,三家发起公司都出了真金白银来开发 EG,而且开发者的分布保持均衡。但如果稍微仔细看就会发现,实际的提交代码量里,来自 Tetrate 的是其他两个公司的两倍。可见即使人头数是一样的,Tetrate 的员工在 EG 上投入了更多的时间。@danehans 和 @arkodg 应该是全职做 EG,而另外三个人恐怕只是兼职搞搞。
尾的部分是最近半年内的前十贡献者分布:
https://github.com/envoyproxy/gateway/graphs/contributors?from=2023-07-31&to=2024-01-29&type=c
从上面链接可以看到,前十人中:
- 来自 Tetrate 的:@arkodg @zirain @zhaohuabing
- 个人贡献者:@Xunzhuo @shawnh2 @shahar-h @liorokman @tmsnan @cnvergence @ardikabs
(个人贡献者里可能有受雇于发起公司的,由于笔者掌握的信息有限被分到错误的类别)
在第一年的前十人中,@danehans 跳槽去了 solo.io,@LukeShu 不再在 Ambassador Labs 上班,@zirain 和 @zhaohuabing 则加入了 Tetrate。总的来说,贡献者变化呈两个趋势:
- 个人贡献者队伍壮大。在早期阶段,项目连个脚手架都没有。虽然有 Envoy 这个金字招牌,并非人人都看好该项目的长期愿景。如今该项目已经逐渐完善,自然能吸引到更多人自发参与到共建中。
- 项目的含 T 量上升。@zirain 和 @zhaohuabing 的加入,不仅接替了 @danehans 的班,还增大了 Tetrate 在前十贡献者的比例。外加上 VMware 和 Ambassador Labs 的人从该项目中撤出,如今 EG 的开发者可以分成两类:加入 Tetrate 的和未加入 Tetrate 的。事实上,从一开始 Tetrate 就对这个项目很积极,投入也比其他两家多了一倍。事实上含 T 量的上升,更主要是因为其他两家的逐渐淡出。
为什么会出现这种变化呢?
我并不是 EG 圈内人士,所以以下只是我的猜测:
在发起 EG 之前,Tetrate 没有自己的南北网关,所以它可以心无旁骛地大举投入该项目。而 VMware 已经有了 Contour,Ambassador Labs 有了 Emissary,他们都有“左右互搏”的顾虑。后两家公司自然是有亲 EG 派的,不然不可能坐下来和 Tetrate 一起发起该项目。像有 Gloo 的 solo.io 就没有一起玩。
亲 EG 派给公司里其他人画的饼是,未来 EG 会很成功,然后现有的用户可以通过:
either via translation and replacement, or via those projects becoming wrappers around the Envoy Gateway core
https://blog.envoyproxy.io/introducing-envoy-gateway-ad385cc5...
切换到 EG 上。
好,这个饼其实是经不起推敲的。
现有用户迁移到 EG,对 Contour 和 Emissary 有什么好处?亲 EG 派总不能对着自己的 Contour 和 Emissary 同僚说,“你们下岗,我们上岗”吧。如果投入资源可以让 EG 发展得更好,吸引更多用户使用 EG,进而获取商业上或影响力上的收益 —— 那同样的资源,为什么不投入亲儿子 Contour 和 Emissary 呢?毕竟 EG 是和别人合办的。
那么走第二条路,保持 Contour 和 Emissary 的品牌,核心换成 Envoy Gateway 可行吗?但凡做过几个新老项目交替的程序员都知道,新旧项目是极难保持配置和行为一致的。这意味着,如果核心切换到了 EG,那么原来 Contour 和 Emissary 积累的生态要想迁过来,肯定会掉一层皮。这会是个洗牌的过程,而且不利于 Contour 和 Emissary。另外,无论是 EG 的开发者,还是 Tetrate,都不会接受只是做一个 core。为了自己的收益,EG 肯定会越做越厚,而不会因为某个有用的功能不在 Gateway API 或者 Contour 已经做了,就克制住不做。那么即使 Contour 和 Emissary 掉了一层皮把自己迁移到 EG 上,终究要面对和 EG core 竞争的场面。
等到国际友谊的激情散去,EG 里来自 VMware 和 Ambassador Labs 的开发者,自然会感受到继续合作带来的收益有限。汉室虽然有号召力,力出一孔的愿景虽然有诱惑,但现实就是现实。举个现实的例子,Tetrate 出了款产品叫 “Tetrate Enterprise Envoy Gateway”,Ambassador Labs 如果出了个产品 “Ambassador Labs Enterprise Envoy Gateway”,怎么做差异化?考虑到 Tetrate 对 EG 的投入远远多于 Ambassador Labs,Ambassador Labs 的销售应该如何拓客呢,难不成打价格战打到地板去?
Ambassador Labs 和 VMware 从 EG 的开发中淡出,并不代表基于 Envoy 网关路线遭到了失败。诚如 Envoy 创始人 Matt Klein 所言,Envoy 之所以有今天的成功,有一个原因是他没有成立 Envoy 背后的商业公司。Envoy 社区是有利益各异的组织和个人组成的。正是由于没有一个组织声称自己是代表整个 Envoy 社区的正统,才成就了今天 Envoy 百花齐放的繁荣生态。用户有更多的选择,开发者有更多的竞争,未尝不是件好事。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。