Envoy Gateway 的发起 是 2022 年网络领域的一件大事。扛着 Envoy 这面大旗,Envoy Gateway 奉天子以令不臣,任何基于 Envoy 的网关都不得不回答一个问题:“你和 Envoy Gateway 是什么关系”。比如:

从 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。总的来说,贡献者变化呈两个趋势:

  1. 个人贡献者队伍壮大。在早期阶段,项目连个脚手架都没有。虽然有 Envoy 这个金字招牌,并非人人都看好该项目的长期愿景。如今该项目已经逐渐完善,自然能吸引到更多人自发参与到共建中。
  2. 项目的含 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 百花齐放的繁荣生态。用户有更多的选择,开发者有更多的竞争,未尝不是件好事。


spacewander
5.5k 声望1.5k 粉丝

make building blocks that people can understand and use easily, and people will work together to solve the very largest problems.