eBPF,何以稱得上是革命性的內(nèi)核技術(shù)?

eBPF 的全稱是 extended Berkeley Packet Filter,它被稱之為 “革命性” 的內(nèi)核技術(shù),可以在 Linux 內(nèi)核中運(yùn)行沙盒程序,而無(wú)需更改內(nèi)核源代碼或加載內(nèi)核模塊。它提供了一種通用執(zhí)行引擎,可以基于系統(tǒng)或程序事件高效安全地執(zhí)行特定代碼,就像在實(shí)時(shí) (JIT) 編譯器和驗(yàn)證引擎的幫助下進(jìn)行本機(jī)編譯一樣。

如今,eBPF 被廣泛用于各種場(chǎng)景:在現(xiàn)代數(shù)據(jù)中心和云原生環(huán)境中提供高性能網(wǎng)絡(luò)和負(fù)載平衡,以低成本提取細(xì)粒度的安全可觀測(cè)性數(shù)據(jù),幫助應(yīng)用程序開(kāi)發(fā)人員跟蹤應(yīng)用程序,為性能故障排除、預(yù)防性應(yīng)用程序和容器運(yùn)行時(shí)安全實(shí)施提供見(jiàn)解等等。一些項(xiàng)目如 Facebook 公司的高性能 4 層負(fù)載均衡器 Katran,IO Visor 項(xiàng)目開(kāi)源的 BCC、 BPFTrace 和 Kubectl-Trace,以及 CloudFlare 公司開(kāi)源的 eBPF Exporter 和 bpf-tools 都使用了該技術(shù)。

eBPF為何備受追捧?

用云杉網(wǎng)絡(luò)VP向陽(yáng)的話來(lái)說(shuō):“eBPF最重要(沒(méi)有之一)的特點(diǎn)是安全性”。他表示,以往必須編寫內(nèi)核模塊才能做到的工作現(xiàn)在基本都能做到。但關(guān)鍵性的區(qū)別在于,eBPF 代碼會(huì)經(jīng)過(guò) Verifier 嚴(yán)格的驗(yàn)證,杜絕了死循環(huán)、內(nèi)存泄露等問(wèn)題。它會(huì)確保內(nèi)核運(yùn)行的安全,使得企業(yè)愿意在運(yùn)行關(guān)鍵業(yè)務(wù)的生產(chǎn)系統(tǒng)中開(kāi)啟此能力,從而釋放前所未有的內(nèi)核可編程性。

云杉網(wǎng)絡(luò) VP 向陽(yáng)

eBPF 對(duì)可觀測(cè)性技術(shù)的影響更是革命性的,一方面這個(gè)場(chǎng)景下 eBPF 的「安全性」體現(xiàn)的更加淋漓盡致,它甚至不會(huì)對(duì)數(shù)據(jù)進(jìn)行任何的修改;另一方面 eBPF 的「零侵?jǐn)_」特性使得云原生應(yīng)用實(shí)現(xiàn)全景、全棧的可觀測(cè)性成為現(xiàn)實(shí)。隨著云基礎(chǔ)設(shè)施的迭代和發(fā)展、微服務(wù)的拆分,業(yè)務(wù)中的編程語(yǔ)言構(gòu)成越來(lái)越復(fù)雜、服務(wù)間通信路徑涉及到的團(tuán)隊(duì)越來(lái)越多。與此同時(shí),現(xiàn)有的可觀測(cè)性方案往往要求打樁插碼,為開(kāi)發(fā)者帶來(lái)了巨大的工作量,因此如何為所有業(yè)務(wù)支撐團(tuán)隊(duì)呈現(xiàn)一個(gè)全景、全棧的可觀測(cè)性視圖成為急需解決的一個(gè)問(wèn)題。eBPF 采集的數(shù)據(jù)能覆蓋系統(tǒng)、網(wǎng)絡(luò)、應(yīng)用等多個(gè)層面,能回答基礎(chǔ)設(shè)施的性能瓶頸位置,也能回答應(yīng)用程序中的代碼函數(shù)熱點(diǎn),在這方面表現(xiàn)出了得天獨(dú)厚的優(yōu)勢(shì)。

云杉網(wǎng)絡(luò)開(kāi)源的云原生可觀測(cè)性平臺(tái) DeepFlow 就充分利用了 eBPF 技術(shù)。借助 eBPF 的零侵?jǐn)_性和安全性優(yōu)勢(shì),開(kāi)發(fā)者無(wú)需修改任何一行代碼、無(wú)需改變?nèi)魏我粋€(gè)運(yùn)行參數(shù)、甚至無(wú)需重啟任何一個(gè)進(jìn)程,即可實(shí)現(xiàn)全景、全棧的分布式追蹤、全景應(yīng)用拓?fù)?、全棧性能指?biāo)能力,覆蓋各類語(yǔ)言的應(yīng)用、各類云原生基礎(chǔ)設(shè)施,為云原生環(huán)境下的可觀測(cè)性帶來(lái)了革命性的創(chuàng)新。

很多人都在關(guān)注eBPF介入后,應(yīng)用程序性能會(huì)有所損耗。向陽(yáng)認(rèn)為,由于 eBPF 程序會(huì) Hook 至內(nèi)核函數(shù)中執(zhí)行,它帶來(lái)的性能開(kāi)銷與應(yīng)用程序本身的資源消耗相關(guān)。如果應(yīng)用本身邏輯非常簡(jiǎn)單,例如時(shí)延不到 1ms,此時(shí) eBPF 介入帶來(lái)的耗時(shí)占比會(huì)比較明顯。但對(duì)于大量的業(yè)務(wù) —— 通常會(huì)有復(fù)雜的計(jì)算邏輯、更長(zhǎng)的耗時(shí),在生產(chǎn)環(huán)境上的經(jīng)驗(yàn)是大多只會(huì)引入 1%~5% 的性能影響。另一方面,DeepFlow 也希望通過(guò)自身的開(kāi)源來(lái)推進(jìn) eBPF 應(yīng)用的繁榮,這樣也能更加促進(jìn) eBPF 技術(shù)自身的性能優(yōu)化。而 DeepFlow 自身的持續(xù)測(cè)試機(jī)制也會(huì)在每次代碼合入之后進(jìn)行自動(dòng)化的性能影響評(píng)估,讓用戶清晰的知道影響到底有多大。

eBPF 技術(shù)還在不斷發(fā)展,還有什么可能性有待挖掘?2023 年 5 月 28 日,GOTC 2023 eBPF 分論壇將于上海舉行,將一覽無(wú)余地展現(xiàn) eBPF 技術(shù),并分享如何將其結(jié)合到實(shí)際工作中。

與此同時(shí),GOTC 2023 很榮幸邀請(qǐng)到向陽(yáng)成為該分論壇的聯(lián)合出品人。早在清華大學(xué)攻讀計(jì)算機(jī)系博士學(xué)位期間,向陽(yáng)就實(shí)現(xiàn)了世界上第一個(gè)全球 BGP 路由劫持實(shí)時(shí)監(jiān)測(cè)系統(tǒng),獲得了網(wǎng)絡(luò)測(cè)量領(lǐng)域國(guó)際頂級(jí)會(huì)議 IMC 頒發(fā)的社區(qū)貢獻(xiàn)獎(jiǎng),這也是該獎(jiǎng)項(xiàng)首次頒發(fā)給中國(guó)大陸科研人員。畢業(yè)后,向陽(yáng)即加入了云杉網(wǎng)絡(luò),如今作為云杉網(wǎng)絡(luò)的研發(fā) VP,負(fù)責(zé) DeepFlow 產(chǎn)品。正是在他的帶領(lǐng)下,云杉網(wǎng)絡(luò)將 eBPF 技術(shù)深度應(yīng)用于 DeepFlow 之中。

全球開(kāi)源技術(shù)峰會(huì)(Global Open-source Technology Conference),簡(jiǎn)稱 GOTC,是由開(kāi)放原子開(kāi)源基金會(huì)、 Linux 基金會(huì)亞太區(qū)、上海浦東軟件園和開(kāi)源中國(guó)聯(lián)合發(fā)起的,面向全球開(kāi)發(fā)者的一場(chǎng)盛大開(kāi)源技術(shù)盛宴。 5 月 27 日至 28 日,GOTC 2023 將于上海舉辦為期 2 天的開(kāi)源行業(yè)盛會(huì)。大會(huì)將以行業(yè)展覽、主題發(fā)言、特別論壇、分論壇的形式展現(xiàn),與會(huì)者將一起探討元宇宙、3D 與游戲、eBPF、Web3.0、區(qū)塊鏈等熱門技術(shù)主題,以及開(kāi)源社區(qū)、AIGC、汽車軟件、開(kāi)源商業(yè)化、開(kāi)源教育培訓(xùn)、云原生等熱門話題,探討開(kāi)源未來(lái),助力開(kāi)源發(fā)展。

GOTC 2023報(bào)名通道現(xiàn)已開(kāi)啟,誠(chéng)邀全球各技術(shù)領(lǐng)域開(kāi)源愛(ài)好者共襄盛舉!

(免責(zé)聲明:本網(wǎng)站內(nèi)容主要來(lái)自原創(chuàng)、合作伙伴供稿和第三方自媒體作者投稿,凡在本網(wǎng)站出現(xiàn)的信息,均僅供參考。本網(wǎng)站將盡力確保所提供信息的準(zhǔn)確性及可靠性,但不保證有關(guān)資料的準(zhǔn)確性及可靠性,讀者在使用前請(qǐng)進(jìn)一步核實(shí),并對(duì)任何自主決定的行為負(fù)責(zé)。本網(wǎng)站對(duì)有關(guān)資料所引致的錯(cuò)誤、不確或遺漏,概不負(fù)任何法律責(zé)任。
任何單位或個(gè)人認(rèn)為本網(wǎng)站中的網(wǎng)頁(yè)或鏈接內(nèi)容可能涉嫌侵犯其知識(shí)產(chǎn)權(quán)或存在不實(shí)內(nèi)容時(shí),應(yīng)及時(shí)向本網(wǎng)站提出書(shū)面權(quán)利通知或不實(shí)情況說(shuō)明,并提供身份證明、權(quán)屬證明及詳細(xì)侵權(quán)或不實(shí)情況證明。本網(wǎng)站在收到上述法律文件后,將會(huì)依法盡快聯(lián)系相關(guān)文章源頭核實(shí),溝通刪除相關(guān)內(nèi)容或斷開(kāi)相關(guān)鏈接。 )