多領域落地實踐,百度開源碩果大分享

語言: CN / TW / HK

 7 月 31 日至 8 月 1 日,由開放原子開源基金會與 Linux 基金會亞太區聯合開源中國共同舉辦的“全球開源技術峰會 GOTC 2021 深圳站”在深圳會展中心圓滿召開。峰會匯聚國內頂尖開源廠商和開源社群成員,吸引了來自全國各地的數千名開源愛好者參會,共話中國開源生態的發展趨勢。

  在 GOTC 深圳站峰會上,百度帶來多個技術領域的開源產品和落地實踐,包括自動駕駛平臺Apollo、七層負載均衡 BFE、函式計算引擎 EasyFaaS、雲原生資料庫Doris、百度超級鏈、AI Edge、雲邊融合 Baetyl 等。其中,百度Apollo自動駕駛開放平臺擁有全國最大的自動駕駛車隊,規模超過了 500 輛,落地全國 30 座城市,取得了 293 張測試牌照,總路測里程突破了 1300 萬公里,相關的專利達到了 2900 多件。百度超級鏈成立首個區塊鏈SIG小組,在哈爾濱工業大學、雲南大學等高校落地區塊鏈課程,開源生態逐漸繁榮。百度智慧雲邊緣計算團隊在 LF Edge Akraino 專案中建立了 The AI Edge Blueprint Family,已經落地包括智慧駕駛、視覺 AI、AI 安防、邊緣聯邦機器學習等專案。BFE專案於今年 6 月正式上線 1.2 版本,已聚集 80 多位來自不同公司或組織的貢獻者。落地使用者案例涵蓋銀行、媒體、保險、交通運輸、網際網路等行業。百度一直堅持開源共享、繁榮生態的理念,希望能與更多開發者一起共同打造前沿技術的開源生態。

雲原生開源計算領域:七層負載均衡 BFE、函式計算引擎EasyFaaS

  七層負載均衡 BFE

  2019 年 7 月,百度核心七層負載均衡轉發引擎BFE對外開源。 BFE(Beyond Front End),其前身是百度從 2012 年開始建設和使用的現代化的七層負載均衡和流量轉發平臺,2014 年使用 Go 語言重構。目前,BFE在百度每日轉發請求達到萬億級別,日峰值QPS超過 1千萬。

  自開源以來,BFE 產品快速迭代,20 個月釋出 15 個版本,至今年 6 月,正式上線 1.2 版本。7位維護者,來自百度、快手、位元組跳動;80+位來自不同公司或組織的貢獻者;收到 800+ 提交,4800+ stars;落地使用者案例涵蓋銀行、媒體、保險、交通運輸、網際網路等。2020 年 6 月,BFE 成為 CNCF Sandbox Project,這也是中國首個網路方向的 CNCF 開源專案。

  百度資深產品專家宋健介紹了 BFE 的技術特性。一是高安全性和穩定性,BFE 基於 Go 語言開發,在記憶體管理方面記憶體洩露的風險大大降低,可以捕捉異常,使執行更加穩定。以百度為例,在百度的規模下 BFE 平臺穩定執行,已經支撐了百度集團絕大部分的流量轉發。二是功能快速開發,因為 BFE 有良好的模組化外掛化設計,Go 語言程式碼又易於編寫和維護。三是複雜場景支援,BFE 開源可以支援多租戶模型,有強大的路由轉發模型,支援多資料中心/多容器叢集排程。四是運維友好支援,內建大量狀態探針,這些探針資料可以以 Prometheus 的格式對外暴露,適合對接基於開源生態搭建的監控和運維視覺化平臺,支援配置動態熱載入。這也是很多使用者採用 BFE 的原因,此前配置載入對於業務會產生一定影響,BFE 支援動態熱載入,可以實現更高的可用性。

函式計算引擎 EasyFaaS

  隨著雲端計算技術的演進,Serverless 技術因其優勢越來越受到關注。百度雲原生團隊為了更好地推廣Serverless技術,2021 年 4 月 6 日,百度函式計算引擎 EasyFaaS 開源。

  百度雲原生 Serverless 高階研發工程師何守芬介紹,EasyFaaS 專案靈感來源於何守芬所在團隊在探索一些函式計算應用場景時的發現。據何守芬介紹,EasyFaaS 來源於百度雲原生團隊對 CDN 邊緣計算的一些業務場景探索。在 CDN 節點上,有很多關於在邊緣上基於使用者自定義的一些請求的裁剪,視訊編解碼等這樣需要將算力放到邊緣的需求,非常適合使用函式計算來滿足使用者這樣的需求。

  團隊之前在做的時候首先想到的是直接將雲上已有的函式計算服務部署在邊緣,但是失敗了,原因在於邊緣計算場景與雲端IDC機房有很大差別,它的叢集環境更加複雜,中心與邊緣節點之間的通訊容易受到網路質量影響,同時公有云上函式計算產品有很多依賴,比如ETCD,中心的K8S等服務,中心元件的運維成本比較高,因此團隊想要設計適合邊緣計算場景的函式計算引擎,擁有適配性強,資源佔用少,依賴輕,無狀態和自治的特點,因此就有了 EasyFaaS。

  EasyFaaS核心技術主要體現在三方面。第一高內聚,EasyFaaS 引擎可以作為最小服務單元,本身無狀態且內部自治。第二高彈性,支援動態調整,比如函式例項容器資源大小可以進行動態容量調整,程式碼執行時也支援動態掛載及解除安裝。第三高效能,一些技術使用了多層快取機制,為了降低冷啟動時延,預啟動了資源池。目前,EasyFaaS 的功能框架也分為三層。一是產品功能方面,提供基本函式源資訊管理、程式碼包管理、版本管理、灰度釋出。二是請求控制與容器排程,支援函式呼叫請求非常快地排程到對應的使用者工作容器、併發控制、錯誤重試功能。三是底層依賴容器網路技術,還有因為函式計算需要語言執行,我們對於多語言執行時和執行掛載都做了相應處理。

邊緣計算領域:邊緣 AI 的雲原生落地實踐、智慧邊緣融合端雲的技術實踐

  邊緣 AI 的雲原生落地實踐

  據市場調研機構 MarketsandMarkets 預測,全球邊緣人工智慧(Edge AI)軟體市場規模將從 2018 年的 3.56 億美元增長到 2023 年的 11.52 億美元。IDC 預測, 到 2024 年,全球企業在邊緣應用上的支出將達到 2,500 億美金,其中與硬體+AI 相關的支出將達到 326 億美元,佔整體邊緣市場支出的 13%。但是市場需求旺盛的大背景下,AI 落地邊緣仍然面臨很多挑戰。

  百度智慧雲邊緣計算部架構師孔德超以“邊緣 AI 的雲原生落地實踐”為題演講,他指出,目前邊緣算力有限,使用場景複雜,如何讓 AI 在邊緣高效落地,算力最大化使用是亟待解決的問題。為此,百度做了一系列的佈局,打造邊緣 AI 雲原生生態。

  2019 年,百度智慧雲邊緣計算團隊在 LF Edge Akraino 專案中建立了 The AI Edge Blueprint Family,目的是解決 AI 在邊緣如何落地的問題。The AI Edge Blueprint Family 已經落地包括智慧駕駛、視覺 AI、AI 安防、邊緣聯邦機器學習等專案。

  此外,百度還建立了雲邊容器引擎 + 邊緣AI彈性計算框架,構建一體化開源方案——AIEdge 開源方案,在資源有限的情況下,通過運算元編排,算力排程,最大化利用算力。釋出適配於單機的邊緣 AI 排程框架 AIEdge Lite,採用更輕量的算力排程,最大化利用算力,完成更多的 AI 任務……

智慧邊緣融合端雲的技術實踐

  百度智慧雲物聯網主任架構師李樂丁介紹,百度對邊緣計算採取非常開放的態度,百度在邊緣計算上的開源戰略是向開發者提供 Opensource 方案,藉助合作伙伴的力量共同組建一個包含硬體、軟體和中間平臺在一起的完整的端到端的解決方案。

  李樂丁著重介紹了 Baetyl 專案。Baetyl 是 Linux 基金會旗下開源專案,其目標是為邊緣側的裝置提供標準的雲原生的編排能力,從而讓邊緣和雲連線一起。Baetyl 的作用是溝通邊緣計算和雲端計算的粘合劑。百度在雲上有非常多強大的能力,如百度的 Apollo,以及其他友商提供的服務,百度希望能夠利用雲上強大的計算能力不斷地迭代資料模型和 AI 模型,讓我們有更好的知識和認知能力。另一方面讓 AI 上的專案處理隱私和身邊的事件,如何將兩個不同的元素結合在一起?Baetyl 希望承擔其中的責任。

  迴歸到 Baetyl 本身,Baetyl 支援將雲端計算將雲端計算的應用無縫擴充套件到邊緣,使雲和邊緣的資料實現自由交換;具備跨平臺特性,支援 x86/ARM/MIPS CPU,各類 GPU 和神經網路晶片。

LF AI &DATA Forum 2021:百度Apollo自動駕駛開放平臺

  2013 年起,百度就開始了自動駕駛領域的研究,希望能夠發揮百度在人工智慧領域技術優勢,普及自動駕駛技術發展,從而帶動全行業創新能力的提升。在 2017 年 4 月以前,主要以百度內部研發為主。2017 年 4 月以後,百度正式宣佈了 Apollo 計劃,推出了全球首個自動駕駛開放平臺Apollo。現在,百度Apollo已經成長為全球最活躍的自動駕駛開放平臺,擁有全球生態合作伙伴超過210家,匯聚全球開發者 65000 名,開原始碼數60萬行。Apollo自成立之初就在不斷探索開源道路,在每個階段,都致力於將已有的積累以開源開放的方式同行業分享,拓寬自動駕駛技術領域,加速創新引領行業的發展,全面賦能整個行業。

  百度 Apollo 資深技術佈道師胡曠介紹,Apollo 開放計劃是百度自動駕駛歷史中的重要里程碑事件。截至目前,Apollo擁有全國最大的自動駕駛車隊,規模超過了 500 輛,落地全國 30 座城市,取得了 293張測試牌照,總路測里程突破了 1300 萬公里,相關的專利達到了 2900 多件。百度不僅擁有 T1-T4 各級測試的牌照,而且是中國第一家也是唯一一家獲得 T4 牌照的企業。從Apollo 1.0到Apollo 6.0 EDU版本,Apollo經歷了10次迭代更新,每一次都向著貼近開發者的實際需求更近一步,解決實際研發中的問題,成為更完善的自動駕駛解決方案。Apollo 6.0 EDU更是專注教育生態建設,助力自動駕駛領域培訓更加適合的人才。

  實現更加深刻的開源,賦能自動駕駛行業,構建持續向好的自動駕駛生態體系,是Apollo當下的要務。賦能綠色智慧礦山,助力大國工業,讓技術深入生產生活各個領域,讓開源惠及更多開發者、合作伙伴,共同推動自動駕駛生態良性迴圈,加速自動駕駛時代的快速到來。

  “從開放開源之初,Apollo 秉承開放能力,共享資源,加速創新、持續共贏的理念,得到了業界的廣泛認同,接下來 Apollo 將持續賦能自動駕駛的發展,也願意與眾多的開發者和合作夥伴一起不斷推動自動駕駛行業創新發展。”胡曠表示。

  大前端領域:Apache ECharts 5 背後的技術升級

  2018 年 3 月,百度將 ECharts 專案捐贈給 Apache 基金會,ECharts 成為了 Apache 基金會孵化級專案,同時也是首個由百度貢獻給國際頂尖基金會的開源專案。2021 年1 月 26 日晚,Apache 基金會正式官宣 Apache ECharts 順利通過孵化階段,畢業晉升為 Apache 頂尖專案。

  Apache ECharts 核心開發者,百度資深研發工程師宿爽在 GOTC 現場分享了 Apache ECharts 的現狀和技術升級。目前,Apache ECharts 的 npm每週下載量31萬多,GitHub依賴專案151K,周邊專案7606,程式碼貢獻者165 位,正式committers 25個,專案管理委員會成員14位。

  最新版本 Apache ECharts 5 分五大模組:動態敘事、視覺設計、互動能力、開發體驗、可訪問性。其中互動狀態增強方面,包括為所有系列提供選中和淡出狀態、資料的單選和多選、系列的聚焦外淡出、標籤和自定義系列的聚焦外淡出等等。折線圖的高效能繪製繪製方面,包括一千萬資料縮放平移、使用 TypeArray 減少記憶體開銷 、LTTB 降取樣 (LTTB Down Sampling)。遷移為 TypeScript,遷移主體工作集中完成,遵循邏輯等價變換(不邊遷移邊重構)。遷移之後可帶來提高程式碼可讀性、重構的正確行保證、避免不易發現的 bug、對於 ECharts 使用者使得型別精度大幅提高等等益處。髒矩形渲染方面,現在可只擦除畫面中有修改的部分。敘事能力提升包括自定義系列的過渡動畫配置等等。

  資料庫領域:雲原生資料倉庫 Apache Doris

  Apache Doris 的歷史最早可以追溯到 2008 年,當時主要服務於百度鳳巢的統計報表,隨著百度業務的飛速發展對系統進行了多次迭代和升級,並於2017 年正式對外開源,2018 年更名為 Doris 並捐獻給 Apache 基金會。Apache Doris PPMC,來自百度的資深研發工程師陳明雨介紹了選擇Apaceh Doris 的幾個理由。

  一是足夠簡單。系統架構方面,Doris採取主從架構,系統有兩類程序模組,FE模組作為管控節點主要負責使用者請求接入、元資料儲存以及解析查詢計劃等工作,BE模組主要負責執行查詢計劃以及資料儲存,任何節點都可線性擴充套件,而且不依賴任何第三方元件,包括HDFS、Zookeeper等,最大化降低了分散式系統的運維成本。SQL支援方面,Doris在FE模組上實現了MySQL相容協議層,使用者使用標準MySQL客戶端即可方便地連線到Doris,並且Doris還支援標準SQL語言。Doris的分散式管理框架可以自動管理資料副本分佈、修復和均衡,副本損壞時Doris可以自動感知並修復,節點擴容過程僅需一條SQL語句即可完成,整個過程不影響線上業務執行,後臺自動進行資料的遷移和資料分片的負載均衡。同時Doris升級方式極其簡單,只需替換二進位制程式、滾動重啟叢集即可,升級過程中Doris還具備一些查詢自動重試和故障理由功能,可以極大程度減少對業務側的影響。

  二是足夠高效。儲存引擎方面,Doris具備一個高效的列式儲存引擎,可以獲得極高的壓縮率。在儲存結構上採用多種編碼方式、自適應編碼、按需讀取;在索引結構上方面,Doris提供了豐富的索引結構來幫準加速資料的讀取和過濾,包括資料寫入時自動生成的智慧索引(如字首稀疏索引和MinMax索引),以及使用者自主在某些列上新增的二級索引(如BloomFilter、倒排索引等)。同時在讀取邏輯上Doris也有很多優化,如延遲物化功能,先過濾、再取數,減少查詢請求對 IO的資源消耗。

  查詢引擎方面,Doris是基於 MPP 的火山模型,通過MPP查詢框架實現了資料Reshuffle能力,更好利用多節點資源進行資料處理。同時,Doris還對很多查詢運算元進行了優化、例如Runtime Filter等,開啟功能後查詢延遲得到極大幅度降低。 Doris還 在查詢優化器方面也做了大量的工作,能夠同時進行基於規則和基於代價的查詢優化。

  三是功能豐富。Doris能夠支援高併發的線上服務場景的,單節點可以支援上千QPS的查詢請求;還支援 SQL 級別和 Partition 級別的 Cache,非常適合查詢頻繁的場景;同時,Adhoc這類高吞吐的即席查詢和庫內ETL也是Doris的強項,在TB級別資料上Doris可以部分代替Hive等離線系統的功能,在一套系統中滿足所有需求。在使用者行為分析業務中,Doris通過Bitmap資料型別進行高基數精準去重,非常適合使用者留存分析、漏斗分析以及使用者畫像圈人等場景。Doris還可以通過物化檢視加速查詢響應,並能支援基於主鍵的資料更新。

  四是開源開放,Doris 目前每週的活躍貢獻者能夠達到20多人,Contributor數量也已經到達 180+,社群呈現活躍度呈持續上升趨勢。隨著更多開發者和使用者的加入,Doris 社群會逐步發展壯大。

  區塊鏈領域:區塊鏈開源平臺 XuperChain

  XuperChain(超級鏈)是中國國產自研且開源的區塊鏈技術,擁有近500篇區塊鏈技術專利,具備全球化網路和聯盟化網路部署能力,自主研發了超級節點、鏈內並行、立體網路、可插拔共識機制等技術,在安全、可控、高效、易用上領先行業。

  2019年5月,XuperChain在國內率先對外開源。2020年9月,XuperChain作為首個專案捐贈給開放原子開源基金會,以全新形態培育和發展。目前,XuperChain開源社群擁有2萬+使用者,產生100餘篇開源文件,線上直播、線下沙龍不斷,社群活躍,開發者踴躍貢獻文件和程式碼,形成了良好的開源技術氛圍。2021 年,XuperChain開源社群先後在北京、上海、深圳舉辦多場線下開發者沙龍活動,釋出區塊鏈開源核心XuperCore,成立首個區塊鏈SIG小組,吸引黑曜石實驗室等企業參與貢獻一站式開發工具Xuper IDE,在哈爾濱工業大學、雲南大學等高校落地區塊鏈課程,開源生態逐漸繁榮。

  XuperChain核心開發者、百度資深研發工程師樊冰新現場分享了XuperChain的開源框架和應用場景。XuperChain秉承開源開放的理念,採用輕框架理念,所有元件可插拔,不斷提高可擴充套件性、安全性和效能,降低區塊鏈開發門檻。開源以來,XuperChain推出了一系列易用性提升措施,加速區塊鏈應用落地,包括基於功能和基於業務場景的智慧合約模板,如存證、溯源、積分管理等,滿足政務、金融等多領域,支援多種應用場景快速接入。

  目前,百度將區塊鏈與人工智慧、大資料、IOT等技術創新融合,推出三十多個全場景、全行業、全領域解決方案,將區塊鏈應用深入至產品溯源、存證取證、版權保護、資料共享、智慧製造等諸多領域,形成一批成熟的商用化解決方案。