萬億流量轉發引擎BFE開源,技術派百度再次秀肌肉

國內開源圈裡剛剛發生了兩個標誌性的事件。

一是曾在2019年春晚紅包中扛住超大用戶壓力、數次流量波峰的轉發引擎——百度的統一七層流量轉發平臺BFE,在內部演化了七個年頭後,將以開源的形式幫助開發者們構建屬於自己的全局負載均衡系統。在業界掀起了巨大的聲浪。

二是KE meng在知乎回答中曬出了自己寫的“狗屁不通文章生成器”,意外受到了無數網友的“愛戴”,紛紛好奇這個富有靈魂的“生成器”可以製造出什麼樣的魔幻主義大作。短短一週的時間,該項目便衝上了GitHub趨勢榜榜首。

發生在同一時間點的兩起事件,無疑揭示了中國開源文化的兩個側面:我們從不缺少令人稱道的“民間高手”,但大眾對開源的認知仍侷限在淺顯的名詞上,還要娛樂化來吸引關注;我們並不缺少百度這樣在開源世界裡的標杆企業,但“開源貢獻主要來源於外國科技巨頭”的偏見仍然屢見不鮮。

萬億流量轉發引擎BFE開源,技術派百度再次秀肌肉

歸根結底,“開源”雖然是當前互聯網行業的共識,但中國相比歐美巨頭,在業界的眼中依然是一個“後來者”的姿態,潛力尚待挖掘。原因固然有主觀意識上的偏見,但更深層次的誘因在於評判的標尺,我們已經習慣按照市值論資排輩,技術能力幾乎視而不見,對開源社區的貢獻也鮮有提及。

想要走出這樣的認知誤區,還要從“工程師文化”開始說起。

“工程師文化”的秘密

百度之所以走開源世界裡收關注,並非是一個偶然事件。暫不談別的,僅在萬億流量轉發引擎BFE的開源,一個技術團隊默默堅持7年的心路歷程,就能讓我們有機會認識了百度工程師文化的精神內核。

2012年百度BFE團隊正式創建,定位是搭建統一的七層流量轉發平臺,應用場景包括流量的接入和轉發、流量全局調度、安全和防攻擊、實時數據分析等等。回頭來看,BFE團隊的成果不無豐碩,但過程中也冒著失敗的風險。

萬億流量轉發引擎BFE開源,技術派百度再次秀肌肉

特別是在2014年初,團隊開始對BFE進行重構,最大的爭議點就在於是否要基於新興的Go語言來編寫。彼時Golang的普及程度並不高,不少人還站在Golang的大門外,但BFE團隊相信Golang將成為互聯網創業公司的必備利器,憑藉對編程語言和系統知識的瞭解,硬著頭皮拍了板。

事實證明Go語言是一個正確的選擇,與業界普遍使用的Nginx相比,BFE有著更高的研發效率,特別是Go語言沒有C語言固有的緩衝區溢出隱患,規避了大量的穩定性漏洞和安全風險,同時對於異常可以捕捉,保證程序在快速迭代上線的情況下也不崩潰。

從長遠的趨勢來看,硬件資源的價格正在逐漸降低,開發人力成本、項目研發風險、系統穩定性在決策中的權重會進一步提升,基於C語言的Nginx勢必會走向衰落,而BFE等基於更高級編程語言的開源軟件將逐步成為主流。

值得一提的是,一位親歷BFE起步到開源過程的工程師,在BFE開源後寫下了一段意味深長的話:

“無論外人如何評說,我必須要說,到目前為止,我仍然堅定的認為,百度是中國最適合做技術的公司。百度給了工程師最大的尊重和自由,也願意為了技術研發承擔最大的風險。BFE團隊的另一個項目GTC(全局流量調度),前後研發了5年時間。曾經有一個朋友告訴我,也就只有百度可以給這麼多時間,在其它公司1年做不出來就cancel了。”

或許這就是工程師文化的秘密,一家企業的技術底色不在於招了多少程序員,不在於網羅了多少技術大牛,甚至不在於每年有多少錢投入到研發中,而是願不願意放權給一線的技術負責人,願不願意承擔技術研發的風險,有沒有科學而系統的方法論,有沒有重視過程而非結果的價值觀。

至於為何要將歷經多次大流量洗禮的BFE開源貢獻社區?因為這才是技術價值體現的重要方式,百度和百度的工程師們篤信於此。

為什麼需要重視開源?

有百度這樣工程師文化綻放的公司,可以說是中國互聯網之幸,如果只有百度一家相信開源力量的企業,無疑會是中國最大的悲哀。

站在全人類的立場上,如果沒有開源運動,沒有Linux、GCC、Android、瀏覽器…….整個互聯網世界將不復存在,軟件和工具被少數幾家企業牢牢控制在手中,人們的生活仍然會像20世紀之前那樣“枯燥無味”。

站在中國企業的立場上,當人口紅利的消失成為既定事實,歷史的車輪駛向產業互聯網,開源恰恰是爭奪的下一個制高點。“一流企業定標準、二流企業做品牌、三流企業做產品”,樸實而簡單的道理影響著互聯網世界裡的每一家企業,想要在未來的商業博弈中掌握話語權,就要讓自己的產品被更多人使用,不斷加速產品研發的速度,積極參與技術標準的制定,開源不失為一條“捷徑”。

萬億流量轉發引擎BFE開源,技術派百度再次秀肌肉

人工智能就是一個例子。

根據科技部發布的《中國新一代人工智能發展報告2019》,中國已經是全球AI專利數量最多的國家,呈現出了中美雙寡頭競爭的格局。可細究一下的話,中國的AI專利主要集中在應用層面,AI基礎技術的核心力量仍然在美國企業手中。原因不無直接,倘若中國的人工智能創業者只知道在TensorFlow、PyTorch等框架上“縫縫補補”,專利申請自然會嚮應用層傾斜。

然而開源社區和開源軟件的中立終究都是相對的,有如谷歌重金加持的全球第二大開源代碼託管平臺GitLab,在最近的一份公開聲明中直言不會給中國、俄羅斯公民提供offer,那些有權限訪問客戶數據的員工,現在也不能移居到中國或俄羅斯。如果中國沒有自己的開源力量,終究無法擺脫受制於人的魔咒。

同時BFE又證明了另一個道理,儘管歷史上很多優秀的開源軟件都出自“外國人”之手,但中國的開源力量並非沒有彎道超車的可能。

不只是比Nginx使用了更高級的編程語言,BFE在設計中特別增加了對企業級應用場景的優化。比如與Nginx從Web Server轉型為Proxy的進化路徑不同,BFE直接為轉發場景設計,從轉發模型和轉發配置方面更滿足轉發場景的需求;針對雲計算場景下多租戶複用的需求,BFE在設計中內置提供了多租戶的支持;考慮到線上監控的需求,BFE通過HTTP方式向外暴露數千個內部狀態變量......

除了BFE之外,百度在AI領域不乏頂級開源項目:中國唯一的功能完備的開源深度學習平臺飛槳;全球首個自動駕駛開源項目;中國首個開源的邊緣計算框架BAETYL……

當百度等技術派在開源世界中豎起大旗,當越來越多企業開始意識到開源技術的必要性,在中國程序員絕對的數量優勢下,讓外界看到開源世界裡的中國力量,需要的可能只是時間上的發酵。

寫在最後

每每談到中國在開源世界裡的定位時,總是有人以重複造輪子為由辯駁,百度BFE團隊的工程師們再次證明了這樣一個道理:技術迭代的浪潮從未停歇,每一個新的歷史時期都需要新的輪子出現。

何況商業和技術本就有著辯證的關係,也許搬運和拿來主義可以在短時間內低成本獲取巨大的收益,可當紅利消失的時候,技術又屢屢被證實是最可靠的驅動引擎,二者沒有孰優孰劣之分,卻有著短期和長期的差別。

即便是從自身利益的角度出發,中國的互聯網企業也需要像百度這樣,打造適合做技術的土壤,給工程師最大的開放和自由,讓程序員們願意花時間做開源項目、維護開源項目,在開源世界裡佔據一席之地。


分享到:


相關文章: