為什麼 Tetrate 逐漸成為 Envoy Gateway 的主心骨?

發表於2024-02-11

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 百花齊放的繁榮生態。使用者有更多的選擇,開發者有更多的競爭,未嘗不是件好事。

相關文章