經(jīng)過(guò)多年在混合云環(huán)境下的耕耘,云杉網(wǎng)絡(luò)自主研發(fā)的DeepFlow可觀測(cè)性平臺(tái)得到了多家企業(yè)客戶的認(rèn)可,并在金融、電信、能源等行業(yè)得到了廣泛的應(yīng)用。今天正式宣布開(kāi)源DeepFlow核心的可觀測(cè)性數(shù)據(jù)流引擎,希望將高度自動(dòng)化的可觀測(cè)性能力、自動(dòng)追蹤和自動(dòng)標(biāo)簽?zāi)芰﹂_(kāi)放到整個(gè)行業(yè),幫助企業(yè)客戶優(yōu)化云原生運(yùn)維工作運(yùn)行的效率、穩(wěn)定性和計(jì)算成本。
一、為什么需要可觀測(cè)性?
大量云原生技術(shù)的采用,導(dǎo)致IT系統(tǒng)越來(lái)越復(fù)雜,快速排障變得越來(lái)越難。傳統(tǒng)的應(yīng)用監(jiān)控(APM)和網(wǎng)絡(luò)監(jiān)控(NPM)工具,可以發(fā)現(xiàn)某個(gè)函數(shù)調(diào)用失敗或者某個(gè)鏈路性能下降,卻難以在復(fù)雜的云環(huán)境下找到故障發(fā)生的根本原因。Epsagon的一項(xiàng)調(diào)查表明,應(yīng)用開(kāi)發(fā)者有高達(dá)30%的時(shí)間花在可觀測(cè)性能力建設(shè)上,另有20%的時(shí)間花在代碼Debug上,而Debug花費(fèi)的大部分時(shí)間又恰好是可觀測(cè)性建設(shè)不足導(dǎo)致。
可觀測(cè)性建設(shè)的難點(diǎn)包括兩個(gè)方面:
埋點(diǎn)插碼難
開(kāi)發(fā)者需要考慮為每一種語(yǔ)言、每一種框架進(jìn)行埋點(diǎn)和插碼。一些公司的業(yè)務(wù)開(kāi)發(fā)團(tuán)隊(duì)很幸運(yùn),會(huì)有類似IDP(Internal Developer Platform)的團(tuán)隊(duì)負(fù)責(zé)整個(gè)公司的可觀測(cè)性能力建設(shè),提供埋點(diǎn)和插碼的SDK。但大部分語(yǔ)言缺乏類似JVM的字節(jié)碼注入機(jī)制,IDP團(tuán)隊(duì)每一次的SDK升級(jí)都需要業(yè)務(wù)開(kāi)發(fā)團(tuán)隊(duì)同步發(fā)版、上線。
開(kāi)發(fā)者需要考慮在微服務(wù)之間如何傳遞追蹤上下文。同樣需要為每一種語(yǔ)言、每一種框架進(jìn)行埋點(diǎn)和插碼,另一方面像MQTT 3.X、MySQL、Redis等缺乏Header Option字段的協(xié)議經(jīng)常成為追蹤的噩夢(mèng)。
開(kāi)發(fā)者需要為每一個(gè)指標(biāo)、追蹤、日志數(shù)據(jù)注入大量的屬性標(biāo)簽,以便于后續(xù)能夠?qū)τ^測(cè)數(shù)據(jù)進(jìn)行靈活的過(guò)濾、分組及關(guān)聯(lián)。然而這些標(biāo)簽已經(jīng)存在于K8s apiserver、服務(wù)注冊(cè)中心、應(yīng)用協(xié)議Header中,開(kāi)發(fā)者不得不重復(fù)這份工作將他們搬遷到觀測(cè)數(shù)據(jù)中。平臺(tái)運(yùn)維難
開(kāi)發(fā)者需要考慮如何避免指標(biāo)數(shù)據(jù)中攜帶高基標(biāo)簽,有些時(shí)候因?yàn)楹蠖薚SDB(Time Series Database)性能的不足,無(wú)奈將高基Tag字段轉(zhuǎn)換為Metrics,甚至丟棄;限制觀測(cè)數(shù)據(jù)的猖獗增長(zhǎng),在復(fù)雜的采樣策略之間權(quán)衡選擇以降低數(shù)據(jù)量,但通常會(huì)在某次問(wèn)題排查時(shí)發(fā)現(xiàn)數(shù)據(jù)不全而無(wú)法進(jìn)行;維護(hù)復(fù)雜的可觀測(cè)平臺(tái),他們通常有著負(fù)載均衡、消息隊(duì)列依賴。隨著復(fù)雜度的增長(zhǎng),可觀測(cè)性平臺(tái)本身的可觀測(cè)性能力同樣也成為問(wèn)題。
二、DeepFlow可觀測(cè)性平臺(tái)
云杉網(wǎng)絡(luò)在SDN及云網(wǎng)絡(luò)領(lǐng)域深耕近十年,逐步從SDN核心技術(shù)走向IT系統(tǒng)的自動(dòng)化和可觀測(cè)性,率先推出了DeepFlow云原生可觀測(cè)性平臺(tái),面向混合云、容器、微服務(wù)的全棧虛擬化環(huán)境,實(shí)現(xiàn)對(duì)網(wǎng)絡(luò)、系統(tǒng)、應(yīng)用的全棧指標(biāo)和全鏈路追蹤,結(jié)合云資源知識(shí)圖譜實(shí)現(xiàn)100+維度指標(biāo)數(shù)據(jù)的動(dòng)態(tài)標(biāo)注,擁有零侵?jǐn)_部署的特性。獲得眾多大型銀行的青睞和認(rèn)可,成為商用的云原生監(jiān)控產(chǎn)品,并在近百家重點(diǎn)行業(yè)的企業(yè)云數(shù)據(jù)中心得到廣泛應(yīng)用。
隨著云時(shí)代為了讓業(yè)務(wù)運(yùn)行更加穩(wěn)定、業(yè)務(wù)創(chuàng)新更加高效,開(kāi)發(fā)、運(yùn)維、SRE團(tuán)隊(duì)對(duì)可觀測(cè)性的需求空前高漲,但不同的團(tuán)隊(duì)所選擇的可觀測(cè)性方案和實(shí)踐路徑又各有不同,從應(yīng)用開(kāi)發(fā)團(tuán)隊(duì)看來(lái)可觀測(cè)性建設(shè)已成為一項(xiàng)必要工作。
為幫助大家有效應(yīng)對(duì)以上困境,正式將DeepFlow核心的可觀測(cè)性數(shù)據(jù)流引擎開(kāi)源,這一個(gè)為云原生應(yīng)用開(kāi)發(fā)者建設(shè)可觀測(cè)性能力而量身打造的全棧、全鏈路、高性能數(shù)據(jù)引擎,能夠顯著降低開(kāi)發(fā)者的埋點(diǎn)、插碼、維護(hù)負(fù)擔(dān),通過(guò)AutoTagging機(jī)制打破數(shù)據(jù)孤島,解鎖數(shù)據(jù)下鉆能力;基于創(chuàng)新的高性能SmartEncoding機(jī)制告別高基煩惱和資源焦慮;利用DeepFlow的可編程能力和開(kāi)放接口,開(kāi)發(fā)者可以快速將其融入到自己的可觀測(cè)性技術(shù)棧中。
三、開(kāi)源的DeepFlow(原名:MetaFlow)有什么優(yōu)勢(shì)?
全棧
DeepFlow開(kāi)源版使用AF_PACKET、BPF、eBPF技術(shù)實(shí)現(xiàn)的AutoMetrics機(jī)制,可以自動(dòng)采集任何應(yīng)用的RED性能指標(biāo),精細(xì)至每一次應(yīng)用調(diào)用,覆蓋從應(yīng)用到基礎(chǔ)設(shè)施的所有軟件技術(shù)棧。在云原生環(huán)境中,DeepFlow開(kāi)源版 的AutoTagging機(jī)制自動(dòng)發(fā)現(xiàn)服務(wù)、實(shí)例、API的屬性信息,自動(dòng)為每個(gè)觀測(cè)數(shù)據(jù)注入豐富的標(biāo)簽,從而消除數(shù)據(jù)孤島,并釋放數(shù)據(jù)的下鉆能力。
全鏈路
DeepFlow開(kāi)源版使用eBPF技術(shù)創(chuàng)新的實(shí)現(xiàn)了AutoTracing機(jī)制,在云原生環(huán)境中自動(dòng)追蹤任意微服務(wù)、基礎(chǔ)設(shè)施服務(wù)的分布式調(diào)用鏈。在此基礎(chǔ)上,通過(guò)與OpenTelemetry的數(shù)據(jù)集成,將eBPF Event與OTel Span自動(dòng)關(guān)聯(lián),實(shí)現(xiàn)完整的全棧、全鏈路追蹤,讓追蹤無(wú)盲點(diǎn)。
高性能
DeepFlow開(kāi)源版創(chuàng)新的SmartEncoding標(biāo)簽注入機(jī)制,能夠?qū)?biāo)簽數(shù)據(jù)的存儲(chǔ)性能提升10倍,從此告別高基標(biāo)簽和數(shù)據(jù)采樣焦慮。使用Rust實(shí)現(xiàn)Agent,擁有極致處理性能的同時(shí)保證內(nèi)存安全。使用Golang實(shí)現(xiàn)Server,重寫(xiě)了Golang的map、pool基礎(chǔ)庫(kù),數(shù)據(jù)查詢和內(nèi)存申請(qǐng)均有近10倍的性能提升。
可編程
DeepFlow開(kāi)源版目前支持了對(duì)HTTP、HTTPS、Dubbo、MySQL、Redis、Kafka、MQTT、DNS協(xié)議的解析,并將保持迭代增加更多的應(yīng)用協(xié)議支持。除此之外,DeepFlow開(kāi)源版計(jì)劃基于WASM技術(shù)提供了可編程接口,讓開(kāi)發(fā)者可以快速具備對(duì)私有協(xié)議的解析能力,并可用于構(gòu)建特定場(chǎng)景的業(yè)務(wù)分析能力,例如5GC信令分析、金融交易分析、車(chē)機(jī)通信分析等。
開(kāi)放接口
DeepFlow開(kāi)源版支持接收廣泛的可觀測(cè)數(shù)據(jù)源,并利用AutoTagging和SmartEncoding提供高性能、統(tǒng)一的標(biāo)簽注入能力。支持插件式的數(shù)據(jù)庫(kù)接口,開(kāi)發(fā)者可自由增加和替換最合適的數(shù)據(jù)庫(kù)。向上為所有觀測(cè)數(shù)據(jù)提供統(tǒng)一的標(biāo)準(zhǔn)SQL查詢能力,便于使用者快速集成到自己的可觀測(cè)性平臺(tái)中,也提供了在此基礎(chǔ)上繼續(xù)開(kāi)發(fā)方言QL的可能性。
易于維護(hù)
DeepFlow開(kāi)源版僅由Agent、Server兩個(gè)組件構(gòu)成,將復(fù)雜度隱藏在進(jìn)程內(nèi)部,將維護(hù)難度降低至極致。DeepFlow Server集群可對(duì)多資源池、異構(gòu)資源池、跨Region/AZ資源池中的Agent進(jìn)行統(tǒng)一管理,且無(wú)需依賴任何外部組件即可實(shí)現(xiàn)水平擴(kuò)展與負(fù)載均衡。
四、為什么要開(kāi)源?
建設(shè)可觀測(cè)性已經(jīng)成為云原生應(yīng)用開(kāi)發(fā)者的必要工作,然而現(xiàn)有的解決方案正悄無(wú)聲息的消耗著開(kāi)發(fā)者越來(lái)越多的時(shí)間。開(kāi)發(fā)者需要考慮如何為新的框架插入追蹤代碼?如何為新的語(yǔ)言增加打樁點(diǎn)?如何為每條日志和指標(biāo)注入上百個(gè)標(biāo)簽?如何維護(hù)越來(lái)越復(fù)雜的可觀測(cè)性數(shù)據(jù)平臺(tái)?這些工作嚴(yán)重?cái)D占了業(yè)務(wù)開(kāi)發(fā)工作的時(shí)間。
開(kāi)源DeepFlow是云杉網(wǎng)絡(luò)送給新時(shí)代開(kāi)發(fā)人員、運(yùn)維人員的一份禮物。希望開(kāi)發(fā)人員能有更多的時(shí)間聚焦在業(yè)務(wù)上,將可觀測(cè)性更多的交給自動(dòng)化的DeepFlow,讓自己的代碼更清晰整潔。通過(guò)DeepFlow,希望讓觀測(cè)更自動(dòng),讓開(kāi)發(fā)者更自由。
五、擁抱DeepFlow!
你是否正在規(guī)劃或者實(shí)施云原生可觀測(cè)性、提升網(wǎng)絡(luò)故障定位效率的項(xiàng)目?
你是否正在頭痛數(shù)據(jù)孤島、資源開(kāi)銷(xiāo)的問(wèn)題?Metrics、Tracing、Logging三類數(shù)據(jù)無(wú)法關(guān)聯(lián)、無(wú)法流通,使用困難?
你是否正在經(jīng)歷追蹤和日志數(shù)據(jù)體量大,經(jīng)常需要削足適履,做采樣抹掉高基數(shù)字段?
非常歡迎你通過(guò)GitHub/微信 的方式聯(lián)系我們體驗(yàn)DeepFlow
(免責(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)鏈接。 )