云杉網(wǎng)絡(luò)發(fā)布容器化微服務(wù)可觀測性方案

應(yīng)用軟件架構(gòu)經(jīng)過單體架構(gòu)、分布式架構(gòu),面向服務(wù)架構(gòu)、微服務(wù)架構(gòu)發(fā)展,在云計算、容器、網(wǎng)絡(luò)等技術(shù)的支撐下,更多企業(yè)的新一代應(yīng)用都開始選擇使用微服務(wù)架構(gòu)。

容器技術(shù)在LXC (Linux Container)、cgroups、namespaces 技術(shù)基礎(chǔ)上發(fā)展成型,是更輕量化的虛擬技術(shù)。隨著Kubernets的發(fā)展解決了大規(guī)模容器集群的編排和管理問題,將被拆分解耦的業(yè)務(wù)系統(tǒng)再統(tǒng)一管理起來讓服務(wù)可以自由融合、彼此協(xié)作為業(yè)務(wù)的發(fā)展提供高效的基礎(chǔ)能力。

01 | 容器化微服務(wù)面臨的監(jiān)控運維挑戰(zhàn)

容器化微服務(wù)在具備面向業(yè)務(wù)功能、降低開發(fā)難度、增加容錯度、服務(wù)間松耦合、彈性擴展、提高生產(chǎn)效率等優(yōu)勢同時,也面臨服務(wù)發(fā)現(xiàn)、限流、權(quán)限、版本管理等挑戰(zhàn),服務(wù)監(jiān)控也是其中挑戰(zhàn)之一。

▌監(jiān)控對象數(shù)量增大

傳統(tǒng)監(jiān)控以單體應(yīng)用為粒度,結(jié)合計算、存儲、網(wǎng)絡(luò)等基礎(chǔ)設(shè)施監(jiān)控進行運維保障。但在容器化微服務(wù)架構(gòu)下,監(jiān)控粒度細(xì)致到容器POD或微服務(wù)API級別,使得監(jiān)控對象的數(shù)量相比單體應(yīng)用呈指數(shù)級增長。

▌監(jiān)控路徑動態(tài)變化

基于微服務(wù)架構(gòu)的應(yīng)用動態(tài)性是監(jiān)控面臨的一個重要挑戰(zhàn)。應(yīng)用系統(tǒng)由很多個微服務(wù)組成,同時運行于容器環(huán)境中,服務(wù)通過相互調(diào)用、自身處理產(chǎn)生出復(fù)雜的行為。微服務(wù)并不是靜態(tài)的,而是隨著業(yè)務(wù)需求不斷變化,改變調(diào)用關(guān)系,處理過程以及優(yōu)化路徑。

▌信息維度多面

保障容器化微服務(wù),首要基礎(chǔ)就要有能力全面“度量刻畫”微服務(wù),這其中涉及到應(yīng)用、系統(tǒng)、基礎(chǔ)設(shè)施等相關(guān)資源屬性和性能指標(biāo)等,這是一張多維關(guān)聯(lián)的知識圖譜。以一個異常的服務(wù)訪問路徑為例,涉及到的指標(biāo)包括錯誤率,調(diào)用延時等。僅僅發(fā)現(xiàn)異常還不足以解決問題,因此會繼續(xù)產(chǎn)生一系列的疑問:

路徑上的異常服務(wù)有哪幾個?服務(wù)運行在哪個節(jié)點上,哪個區(qū)域中?訪問路徑在異常前有無變化?服務(wù)歷史中的調(diào)用關(guān)系有哪些?異常可能影響的范圍?

回答這些疑問,任何單一維度的排查都是管中窺豹。必須通過關(guān)聯(lián)服務(wù)、容器平臺、網(wǎng)絡(luò)流量、平臺事件等數(shù)據(jù)信息,構(gòu)建多維度的知識圖譜,在解決問題的過程中方可成竹在胸。

▌傳統(tǒng)監(jiān)控難以觸達(dá)

在云環(huán)境中,由于虛擬化技術(shù)應(yīng)用,傳統(tǒng)監(jiān)控工具難以觸達(dá)池化后的各類資源,導(dǎo)致“黑盒”化嚴(yán)重。此外,傳統(tǒng)監(jiān)控工具從數(shù)據(jù)開放性、架構(gòu)擴展性、監(jiān)控粒度上都難以滿足云原生應(yīng)用的需求。新興可觀測技術(shù),旨在通過系統(tǒng)的外部監(jiān)測數(shù)據(jù)(指標(biāo)、日志、追蹤等)實時分析系統(tǒng)的內(nèi)部狀態(tài)(吞吐、錯誤、時延等),徹底解決云內(nèi)監(jiān)控的“黑盒”問題。

02 | 監(jiān)控與可觀測性

隨著業(yè)務(wù)系統(tǒng)不斷上云,容器、微服務(wù)、持續(xù)發(fā)布等云原生技術(shù)被廣泛采用,從而為IT系統(tǒng)的監(jiān)控帶來了全新挑戰(zhàn)。為保障云原生應(yīng)用的穩(wěn)定性,可觀測技術(shù)被越來越多的企業(yè)所采用。針對于IT系統(tǒng),尤其是面向云原生應(yīng)用,可觀測技術(shù)應(yīng)包含如下需求:

▌零侵?jǐn)_

傳統(tǒng)APM/NPM等工具,要么需要應(yīng)用程序中打樁插碼,要么需要基礎(chǔ)設(shè)施中分光鏡像,均會對IT系統(tǒng)進行侵?jǐn)_??捎^測技術(shù)使用外部數(shù)據(jù)做分析,因此采用零侵?jǐn)_的方式獲取監(jiān)控數(shù)據(jù),無需打樁插碼、分光鏡像,而是通過開放系統(tǒng)架構(gòu)直接獲取監(jiān)控數(shù)據(jù)。零侵?jǐn)_的另一方面是要求低功耗,不能因為采集數(shù)據(jù)而影響應(yīng)用或基礎(chǔ)設(shè)施性能,通常采集點功耗不能超過業(yè)務(wù)功耗的1%。

▌多維度

要保障云原生應(yīng)用穩(wěn)定運行,可觀測技術(shù)必須包含多維度數(shù)據(jù)分析能力。具體來說,要將應(yīng)用的API、容器、主機、網(wǎng)絡(luò)等監(jiān)控數(shù)據(jù)進行全棧關(guān)聯(lián)分析。傳統(tǒng)的APM工具,可以定位代碼層問題,卻無法追蹤容器或主機網(wǎng)絡(luò)服務(wù)引起的故障。而傳統(tǒng)的NPM工具,又不能關(guān)聯(lián)應(yīng)用的TraceID從而追蹤穿越NAT、LB等網(wǎng)元的流量。因此,多維度的全棧數(shù)據(jù)分析,是可觀測平臺的第二個需求。

▌實時性

云原生應(yīng)用的動態(tài)性要求可觀測平臺必須具備實時性。如果應(yīng)用的升級/擴容在分鐘級完成,那么監(jiān)控系統(tǒng)就必須提供秒級的反饋能力。注意,這里的反饋需要對海量指標(biāo)/追蹤/日志數(shù)據(jù)進行查找分析,因此對可觀測平臺的海量數(shù)據(jù)實時處理能力提出了極高要求。

在Google Cloud的定義中,“可觀測性是可幫助團隊有效調(diào)試其系統(tǒng)的工具或技術(shù)解決方案,并有能力探索未知或事先未定義的屬性和模式。”

可觀測性并不是通過簡單使用一個工具所能具備,是需要根據(jù)企業(yè)組織、業(yè)務(wù)應(yīng)用、基礎(chǔ)設(shè)施以及已有的監(jiān)控體系的需求現(xiàn)狀,明確階段目標(biāo),伴隨著業(yè)務(wù)發(fā)展逐步建立,是一個持續(xù)發(fā)展的過程。

云杉網(wǎng)絡(luò)與客戶的共同實踐,基于云原生應(yīng)用發(fā)展的現(xiàn)狀,通過DeepFlow®與客戶的應(yīng)用、網(wǎng)絡(luò)、基礎(chǔ)設(shè)施整合,綜合分析各類指標(biāo)、日志以及追蹤數(shù)據(jù),形成一站式的容器化微服務(wù)可觀測性方案。

DeepFlow ®容器化微服務(wù)可觀測性方案

DeepFlow®提供適用于容器化微服務(wù)的可觀測性,解決云原生應(yīng)用診斷難的核心痛點。通過對全局微服務(wù)(UniversalServices)間的通信訪問、系統(tǒng)調(diào)用、平臺環(huán)境等數(shù)據(jù)進行深度分析,提供監(jiān)控告警、故障定位及風(fēng)險排查,保障業(yè)務(wù)在云原生環(huán)境中的穩(wěn)定、高效運行。

?分鐘級定位問題邊界

基于容器化微服務(wù)的云原生應(yīng)用出現(xiàn)故障時,快速明確問題邊界是解決問題的第一步。基于知識圖譜、微服務(wù)調(diào)用鏈、全棧追蹤等功能組合,快速檢索到異常單元所關(guān)聯(lián)涉及到的其他維度信息和影響范圍;直觀展示系統(tǒng)、容器、虛擬主機全棧性能指標(biāo)鎖定性能洼地等。

?大幅提升排障效率

排障過程并不僅是找到故障根因并修復(fù),而是從定位、根因、修復(fù)、驗證及預(yù)防一整套運維保障操作閉環(huán)。容器環(huán)境疊加微服務(wù)架構(gòu)使得排障更加復(fù)雜,需要避免以單次異常故障為視角,避免以單一數(shù)據(jù)為依據(jù)判斷根因進行排障工作,需要有效地將應(yīng)用、容器平臺、系統(tǒng)調(diào)用等運維數(shù)據(jù)進行關(guān)聯(lián),且對比指標(biāo)、跟蹤以及日志特征來提高根因的準(zhǔn)確性;并通過歷史視圖、系統(tǒng)運行表現(xiàn)、修復(fù)驗證等指標(biāo)來確認(rèn)從而提升效率。

?微服務(wù)可用性指標(biāo)

應(yīng)用微服務(wù)化后,衡量判斷眾多微服務(wù)的質(zhì)量以及可用性是一個繁瑣的問題。涉及到不同開發(fā)團隊,設(shè)定具體指標(biāo),周期性的記錄和評估,發(fā)現(xiàn)性能洼地及熱點等等。這些工作都是要建立在數(shù)據(jù)積累的基礎(chǔ)之上,DeepFlow®平臺也是基于此來進行對微服務(wù)各維度的畫像評估。通過對應(yīng)用中所涉及的幾十、上百個微服務(wù)運行的歷史指標(biāo)數(shù)據(jù)進行量化分析,在一個運行周期中,能實時監(jiān)控業(yè)務(wù)是否達(dá)到99.99%的可用性要求(Service Level Object),并分析出潛在影響可用性的各種原因。

▌運行環(huán)境

在公有云環(huán)境中,例如由騰訊云、阿里云等的云服務(wù)商提供的IaaS服務(wù)基礎(chǔ)上,可以直接選擇容器服務(wù)或者通過開源Kubernetes軟件搭建容器平臺,部署運行各類容器化微服務(wù)。DeepFlow ®通過零侵?jǐn)_采集技術(shù),獲取各類運維監(jiān)控數(shù)據(jù),如基礎(chǔ)設(shè)施資源配置、網(wǎng)絡(luò)流量、API調(diào)用等,并通過后臺實時數(shù)倉,對多維度數(shù)據(jù)進行實時分析處理,滿足不同場景下的微服務(wù)可觀測能力。

▌兼容現(xiàn)有監(jiān)控工具

在監(jiān)控體系發(fā)展以及客戶的實際使用中,存在各類監(jiān)控工具,如資源監(jiān)控ZABBIX、容器監(jiān)控Prometheus、日志監(jiān)控ElasticSearch、應(yīng)用追蹤Skywalking等等。DeepFlow®憑借零侵?jǐn)_、低消耗、高性能的流量采集技術(shù),可以為現(xiàn)有監(jiān)控工具補充難以獲取的豐富指標(biāo)數(shù)據(jù),結(jié)合客戶已有的環(huán)境及工具平臺,達(dá)到監(jiān)控數(shù)據(jù)關(guān)聯(lián),運維流程聯(lián)動,滿足微服務(wù)保障的告警、定位、排障以及預(yù)測量化服務(wù)質(zhì)量的要求。

以DeepFlow®做為基礎(chǔ)數(shù)據(jù)平臺,結(jié)合Prometheus、ZABBIX、云監(jiān)控數(shù)據(jù)構(gòu)成對應(yīng)用、系統(tǒng)、云基礎(chǔ)設(shè)施的指標(biāo)數(shù)據(jù)基礎(chǔ),通過開放數(shù)據(jù)對接告警平臺、認(rèn)證平臺以及 Grafana等數(shù)據(jù)可視化平臺,向微服務(wù)開發(fā)部門、業(yè)務(wù)部門展現(xiàn)關(guān)鍵指標(biāo)數(shù)據(jù)。通過TraceID、SpanID、URL、資源ID等關(guān)鍵值關(guān)聯(lián)追蹤數(shù)據(jù),在應(yīng)用出現(xiàn)異常或者調(diào)優(yōu)過程中,以高效對接歷史指標(biāo)趨勢劃定資源范圍,使特定應(yīng)用請求過程與指標(biāo)鉆取統(tǒng)計不再割裂。實現(xiàn)對云上微服務(wù)的全方位可觀測能力。

總結(jié)

云杉網(wǎng)絡(luò)DeepFlow®容器化微服務(wù)可觀測性方案,面向公有云K8s、容器環(huán)境。利用eBPF等新技術(shù)的零侵入特性實現(xiàn)對網(wǎng)絡(luò)、系統(tǒng)、應(yīng)用的全棧黃金指標(biāo)的采集。對服務(wù)調(diào)用鏈以及Service mesh、iptables/ipvs、NAT的逐跳鏈路追蹤,對服務(wù)訪問的零采樣全留存,并結(jié)合云資源知識圖譜和變更事件數(shù)據(jù),搭建立體化的微服務(wù)可觀測平臺。

云計算以及容器將是今后承載微服務(wù)業(yè)務(wù)應(yīng)用的主要平臺,對于云網(wǎng)絡(luò)以及云原生應(yīng)用保障,將面臨規(guī)模廣、彈性大、波動性強等諸多挑戰(zhàn),云杉網(wǎng)絡(luò)目標(biāo)就是幫助客戶補齊云網(wǎng)監(jiān)控的拼圖,保障云及微服務(wù)業(yè)務(wù)有序可控發(fā)展。

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