APISIX 專訪:9個月成 ASF 頂級項目,開源能夠帶來付費用戶

本文做者:o****0html

7月15日,ASF 正式宣佈Apache APISIX 從孵化器畢業,並晉升頂級項目。git

若是你去看一看 APISIX 的發展軌跡,會發現它的成長速度很是快。開源不只讓 APISIX 快速迭代,更成爲它背後的初創公司向外溝通付費用戶的一張名片。程序員

去年4月,項目發起人溫銘和王院生開始着手寫代碼,同年6月宣佈開源,7月 APISIX 被歸入 CNCF 全景圖,10月捐贈給 ASF,到今年6月經過投票,7月正式成爲頂級項目,先後只用了一年3個月。es6

期間,還伴隨着商用落地——開源兩個月,就迎來首家付費央企用戶。截至目前,APISIX 已超過千個節點在線上環境服務,其中不乏騰訊、網易、貝殼、優信二手車等大致量或是高流量用戶。github

「APISIX 是目前速度最快的 API 網關」,王院生說,他們在最初選型上,會盡可能複用成熟組件,站在巨人肩膀上,避免本身造輪子,這樣就能夠把時間精力放到差別點上,如極致性能路由、熱插件、高性能字段校驗器、插件編排等 API 網關核心。apache

與大多數 API 網關不一樣,APISIX 不只能夠處理南北向流量,也能夠處理東西向、微服務間的流量。下一季度,APISIX 計劃落實 Service Mesh 領域相關功能。在兩位發起人的規劃裏,APISIX 還要成爲最受歡迎的開源 API 網關。api

2人2個月,作了個可兼管微服務間流量的 API 網關

許多開源項目誕生的初衷,都是開發者工做時發現須要某個服務,然而市場上卻沒有合適的項目能夠支撐,因而便自行開發並開源,填補空白,APISIX 也不例外。安全

「咱們須要一款高性能、雲原生的 API 網關」,王院生介紹,去年通訊院發佈的一個調查報告顯示,中國有60%的企業都在作微服務轉型,而 API 網關在微服務體系中很是重要,扮演「指揮家」的角色;同時,微服務愈來愈流行,傳統單體大應用的場景正在逐漸減小,而云原生又再次爲微服務演進提供了一些標準化方案。在這種大背景下,他們決定發起 APISIX 項目。負載均衡

以後的競品分析也讓他們看到機會。2019年 Gartner 發佈一篇《全生命週期 API 管理魔力象限》報告顯示,在魔力象限中很多大廠商好比 Google 家的 Apigee,核心的 API 網關部分技術棧總體偏老;而在技術方案上有優點的公司,都是新公司,「這一度讓咱們感受興奮,有種機會就在眼前的感受」,王院生說。框架

爲了作一個高性能 API 網關,APISIX 核心代碼遵循了精簡的原則,用王院生的話說就是,臃腫基本就和高性能無緣了。

2019年6月6日 APISIX 開源的時候,核心代碼只有幾千行。通過一年發展,插件代碼量早已超過核心部分。維持精簡能夠極大下降後期維護成本,尤爲是對於開源項目。

王院生介紹,核心精簡,功能、創新是不能少的。例如 APISIX 內置的 var 讀取加速,重複讀取同一 Nginx 變量提高了百倍。藉助 radixtree(基數樹) 方式匹配路由,讓 APISIX 成爲目前路由匹配速度最快的 API 網關。

如今,APISIX 保持着一到兩個月發佈一個版本的更新頻率。 

2019年 APISIX 捐獻給 ASF 的同時,也完成了 APISIX 的主體框架,好比動態負載均衡、全平臺支持、安全插件、SSL、gRPC、TCP/UDP 動態代理、單機模式等功能。

「這些功能實現都是按照生產標準編寫,有完整測試用例覆蓋,截至7月9號,依然有用戶在生產環境運行的是去年11月份版本,穩定性很是好,性能也是同類產品的2-10倍」,王院生說。

 

今年,APISIX 還將繼續豐富生態,除了循序漸進與社區一塊兒豐富功能插件外,還增長了 Dashboard 和 k8s ingress controller 實現,幫助 k8s 用戶更簡單、高效的管理入口流量。並創新性的爲 APISIX 增長插件編排機制,提升插件之間的聯動能力,擴展用戶場景。

25票贊同,從誕生到成爲 ASF 頂級項目只用了一年

在 ASF 經歷一次畢業投票,項目就接受了一次全盤檢查。

APISIX 的畢業投票是 25 個+1(贊同)票經過的,包括 10 個 Binding(約束性投票),15個 Non-Binding(無約束性投票),沒有 -1(否決) 票。

Apache 的投票過程可能看起來有點怪異。投票用-1和+1之間的數字表示,「-1」表示「否決」,「 + 1」表示「贊同」。
Binding Votes,約束性投票。一般,PMC 成員擁有正式的、有約束力的投票;針對從孵化器畢業項目的畢業投票,IPMC( Incubator PMC)擁有 Binding Votes。社區成員投票是 Non-Binding 無約束性投票,但一般鼓勵社區成員投票,即便他們的投票只是建議性的。

在 ASF 中若是要畢業成爲頂級項目,投票是最後一步確認環節,雖然這是畢業於否的決定票,除了須要拿到足夠的 Binding +1票,也須要考察項目自身活躍度、是否獨立發佈過版本、貢獻者數量、貢獻者分佈、License、品牌等是否均符合 Apache 要求。 

在 ASF 的孵化投票中,IPMC 的投票纔會被記錄參考,只有他們的投票是有效 Binding 的。因爲郵件列表是公開的,對於非 PMC 也是能夠投票,這些人的投票就是 Non-Binding 的。而對於 -1 票,表明有人不支持,這時投票人是必需要給出充分理由。APISIX 畢業,並無反對票。 

不只投票表決這一關過得順利,從嘗試捐贈開始,APISIX 就和 ASF 很是投緣。

2019年9月,王院生和溫銘決定着手將項目捐贈給 ASF。當時他們閱讀 Apache 官網內容,按照要求逐個梳理全部檢查項,提早準備 APISIX 捐獻資料。

「在華爲開源能力中心技術專家姜寧的推薦下,咱們參與了一次小型 Apache 會議,並把咱們提早準備的資料給 Apache 主席 Craig Russell,肯定咱們是否符合要求,並告訴他們咱們目前還缺 mentor ,當時參會的 Justin Mclean 就說,‘我來當大家 mentor 吧’。這樣咱們就找到了全部 champion 和 mentor 」,王院生回憶。

「多去參加 Apache 的線下交流會是個好主意」,王院生認爲,進入 ASF 孵化,除了須要本身要先認同 Apache 文化,還要與「圈內好友」多些互動,增長面對面的溝通彌補線上獲取信息不足,防止本身對 Apache 文化理解有誤差。

除了線下方式,也能夠經過更 Apache 的方式——主動在郵件列表爲你的項目徵求 mentor ,尋求孵化機會。

談及 APISIX 的迅速孵化和發展,王院生透露,它的快速起步與以前一直作社區有關係,之前工做中積累的人氣和經驗直接推進 APISIX 成長,有些方法被證實很是高效:

  • 線上+線下:二者要相結合,相互彌補。
  • 尋找和本身比較 match 的社區,作適當宣傳:這裏不能太直,推薦知識分享的方式。
  • 有意識培養新人:新建一些比較簡單的 issue ,專門給想貢獻的同窗作開始。
  • 招募學習班:每次手把手培養新同窗,一對一的協助他們完成第一個 PR 提交,從而逐步開始能爲項目作貢獻。
  • 避免私聊:引導你們到郵件列表或者倉庫 issue 交流,知識須要沉澱、廣播,對於某些特別有意義的話題,更是如此。
  • 開源做品爲了保持活躍度,須要有階段性的產出,好比支持某重要功能、引入新概念等。要一直勾着開源用戶的心,這些想法可能來自社區,也多是社區委員會的不按期聚會。
  • 此外一些個性有趣的用戶使用過程、疑難雜症排除過程等,均可以記錄下來給分享給社區。和你們一塊兒學習一些問題排除方法,以及開源背後的故事。

用開源的方式讓初創公司收穫付費用戶

APISIX 項目還有一個特色是,它是由初創公司的主要負責人開發並快速捐贈的。事實上,雖然開源做品不能爲企業帶來可預見的銷售收入,可是可能將企業的技術服務能力轉化成營收驅動力。

「對於咱們這種小型初創類型公司,有一個開源身份和業內極致的網關做品,相反是更容易讓更多用戶知道咱們,並導向成付費用戶」,在關於商業化與開源的選擇上,王院生認爲,開源更注重長遠效益。

目前基於 APISIX 的企業版開始對外試用,收費模式主要是根據 API 請求數量計費。王院生說,「因爲 toB 的模式起步不會太快,短時間內更看重高業務價值的客戶來打磨產品,並努力把 APISIX 培養成被普遍使用、流行且好用的開源 API 網關。」 

固然,APISIX 開源首先是做爲開發者的我的的決定。王院生和溫銘從2015年開始,就和開源文化、社區有了比較多的接觸,也在社區交流中飛速成長。從新實現 APISIX ,並捐贈給 ASF,除了對已有網關的擴展性、性能等不滿意外,也是但願把多年積累沉澱出的產品共享。

去年7月,APISIX 被歸入 CNCF 全景圖,但 APISIX 並無順勢進入 CNCF 孵化,「ASF 更加田園、理想,對我的開發者友好,有明確的 committer、contributor、PMC 精英管理機制」,王院生解釋,他們是有些理想主義的創業青年,想爲這個社會、廣大程序員作點有價值的東西,因此從一開始就肯定選擇 ASF。

如今,APISIX 已經正式成爲 ASF 頂級項目,能夠預見,將會有更多開發者加入項目的維護,咱們也期待 APISIX 的開源生態更加完善。

嘉賓介紹

王院生,深圳支流科技聯合創始人,開源佈道者,比較忠愛對性能、流量要求比較高的流量管理類方向。

原文連接地址:https://developer.baidu.com/topic/show/291093

相關文章
相關標籤/搜索