應(yīng)用軟件架構(gòu)經(jīng)過(guò)單體架構(gòu)、分布式架構(gòu),面向服務(wù)架構(gòu)、微服務(wù)架構(gòu)發(fā)展,在云計(jì)算、容器、網(wǎng)絡(luò)等技術(shù)的支撐下,更多企業(yè)的新一代應(yīng)用都開(kāi)始選擇使用微服務(wù)架構(gòu)。
容器技術(shù)在LXC (Linux Container)、cgroups、namespaces 技術(shù)基礎(chǔ)上發(fā)展成型,是更輕量化的虛擬技術(shù)。隨著Kubernets的發(fā)展解決了大規(guī)模容器集群的編排和管理問(wèn)題,將被拆分解耦的業(yè)務(wù)系統(tǒng)再統(tǒng)一管理起來(lái)讓服務(wù)可以自由融合、彼此協(xié)作為業(yè)務(wù)的發(fā)展提供高效的基礎(chǔ)能力。
01 | 容器化微服務(wù)面臨的監(jiān)控運(yùn)維挑戰(zhàn)
容器化微服務(wù)在具備面向業(yè)務(wù)功能、降低開(kāi)發(fā)難度、增加容錯(cuò)度、服務(wù)間松耦合、彈性擴(kuò)展、提高生產(chǎn)效率等優(yōu)勢(shì)同時(shí),也面臨服務(wù)發(fā)現(xiàn)、限流、權(quán)限、版本管理等挑戰(zhàn),服務(wù)監(jiān)控也是其中挑戰(zhàn)之一。
▌監(jiān)控對(duì)象數(shù)量增大
傳統(tǒng)監(jiān)控以單體應(yīng)用為粒度,結(jié)合計(jì)算、存儲(chǔ)、網(wǎng)絡(luò)等基礎(chǔ)設(shè)施監(jiān)控進(jìn)行運(yùn)維保障。但在容器化微服務(wù)架構(gòu)下,監(jiān)控粒度細(xì)致到容器POD或微服務(wù)API級(jí)別,使得監(jiān)控對(duì)象的數(shù)量相比單體應(yīng)用呈指數(shù)級(jí)增長(zhǎng)。
▌監(jiān)控路徑動(dòng)態(tài)變化
基于微服務(wù)架構(gòu)的應(yīng)用動(dòng)態(tài)性是監(jiān)控面臨的一個(gè)重要挑戰(zhàn)。應(yīng)用系統(tǒng)由很多個(gè)微服務(wù)組成,同時(shí)運(yùn)行于容器環(huán)境中,服務(wù)通過(guò)相互調(diào)用、自身處理產(chǎn)生出復(fù)雜的行為。微服務(wù)并不是靜態(tài)的,而是隨著業(yè)務(wù)需求不斷變化,改變調(diào)用關(guān)系,處理過(guò)程以及優(yōu)化路徑。
▌信息維度多面
保障容器化微服務(wù),首要基礎(chǔ)就要有能力全面“度量刻畫(huà)”微服務(wù),這其中涉及到應(yīng)用、系統(tǒng)、基礎(chǔ)設(shè)施等相關(guān)資源屬性和性能指標(biāo)等,這是一張多維關(guān)聯(lián)的知識(shí)圖譜。以一個(gè)異常的服務(wù)訪問(wèn)路徑為例,涉及到的指標(biāo)包括錯(cuò)誤率,調(diào)用延時(shí)等。僅僅發(fā)現(xiàn)異常還不足以解決問(wèn)題,因此會(huì)繼續(xù)產(chǎn)生一系列的疑問(wèn):
路徑上的異常服務(wù)有哪幾個(gè)?服務(wù)運(yùn)行在哪個(gè)節(jié)點(diǎn)上,哪個(gè)區(qū)域中?訪問(wèn)路徑在異常前有無(wú)變化?服務(wù)歷史中的調(diào)用關(guān)系有哪些?異常可能影響的范圍?
回答這些疑問(wèn),任何單一維度的排查都是管中窺豹。必須通過(guò)關(guān)聯(lián)服務(wù)、容器平臺(tái)、網(wǎng)絡(luò)流量、平臺(tái)事件等數(shù)據(jù)信息,構(gòu)建多維度的知識(shí)圖譜,在解決問(wèn)題的過(guò)程中方可成竹在胸。
▌傳統(tǒng)監(jiān)控難以觸達(dá)
在云環(huán)境中,由于虛擬化技術(shù)應(yīng)用,傳統(tǒng)監(jiān)控工具難以觸達(dá)池化后的各類(lèi)資源,導(dǎo)致“黑盒”化嚴(yán)重。此外,傳統(tǒng)監(jiān)控工具從數(shù)據(jù)開(kāi)放性、架構(gòu)擴(kuò)展性、監(jiān)控粒度上都難以滿足云原生應(yīng)用的需求。新興可觀測(cè)技術(shù),旨在通過(guò)系統(tǒng)的外部監(jiān)測(cè)數(shù)據(jù)(指標(biāo)、日志、追蹤等)實(shí)時(shí)分析系統(tǒng)的內(nèi)部狀態(tài)(吞吐、錯(cuò)誤、時(shí)延等),徹底解決云內(nèi)監(jiān)控的“黑盒”問(wèn)題。
02 | 監(jiān)控與可觀測(cè)性
隨著業(yè)務(wù)系統(tǒng)不斷上云,容器、微服務(wù)、持續(xù)發(fā)布等云原生技術(shù)被廣泛采用,從而為IT系統(tǒng)的監(jiān)控帶來(lái)了全新挑戰(zhàn)。為保障云原生應(yīng)用的穩(wěn)定性,可觀測(cè)技術(shù)被越來(lái)越多的企業(yè)所采用。針對(duì)于IT系統(tǒng),尤其是面向云原生應(yīng)用,可觀測(cè)技術(shù)應(yīng)包含如下需求:
▌零侵?jǐn)_
傳統(tǒng)APM/NPM等工具,要么需要應(yīng)用程序中打樁插碼,要么需要基礎(chǔ)設(shè)施中分光鏡像,均會(huì)對(duì)IT系統(tǒng)進(jìn)行侵?jǐn)_??捎^測(cè)技術(shù)使用外部數(shù)據(jù)做分析,因此采用零侵?jǐn)_的方式獲取監(jiān)控?cái)?shù)據(jù),無(wú)需打樁插碼、分光鏡像,而是通過(guò)開(kāi)放系統(tǒng)架構(gòu)直接獲取監(jiān)控?cái)?shù)據(jù)。零侵?jǐn)_的另一方面是要求低功耗,不能因?yàn)椴杉瘮?shù)據(jù)而影響應(yīng)用或基礎(chǔ)設(shè)施性能,通常采集點(diǎn)功耗不能超過(guò)業(yè)務(wù)功耗的1%。
▌多維度
要保障云原生應(yīng)用穩(wěn)定運(yùn)行,可觀測(cè)技術(shù)必須包含多維度數(shù)據(jù)分析能力。具體來(lái)說(shuō),要將應(yīng)用的API、容器、主機(jī)、網(wǎng)絡(luò)等監(jiān)控?cái)?shù)據(jù)進(jìn)行全棧關(guān)聯(lián)分析。傳統(tǒng)的APM工具,可以定位代碼層問(wèn)題,卻無(wú)法追蹤容器或主機(jī)網(wǎng)絡(luò)服務(wù)引起的故障。而傳統(tǒng)的NPM工具,又不能關(guān)聯(lián)應(yīng)用的TraceID從而追蹤穿越NAT、LB等網(wǎng)元的流量。因此,多維度的全棧數(shù)據(jù)分析,是可觀測(cè)平臺(tái)的第二個(gè)需求。
▌實(shí)時(shí)性
云原生應(yīng)用的動(dòng)態(tài)性要求可觀測(cè)平臺(tái)必須具備實(shí)時(shí)性。如果應(yīng)用的升級(jí)/擴(kuò)容在分鐘級(jí)完成,那么監(jiān)控系統(tǒng)就必須提供秒級(jí)的反饋能力。注意,這里的反饋需要對(duì)海量指標(biāo)/追蹤/日志數(shù)據(jù)進(jìn)行查找分析,因此對(duì)可觀測(cè)平臺(tái)的海量數(shù)據(jù)實(shí)時(shí)處理能力提出了極高要求。
在Google Cloud的定義中,“可觀測(cè)性是可幫助團(tuán)隊(duì)有效調(diào)試其系統(tǒng)的工具或技術(shù)解決方案,并有能力探索未知或事先未定義的屬性和模式。”
可觀測(cè)性并不是通過(guò)簡(jiǎn)單使用一個(gè)工具所能具備,是需要根據(jù)企業(yè)組織、業(yè)務(wù)應(yīng)用、基礎(chǔ)設(shè)施以及已有的監(jiān)控體系的需求現(xiàn)狀,明確階段目標(biāo),伴隨著業(yè)務(wù)發(fā)展逐步建立,是一個(gè)持續(xù)發(fā)展的過(guò)程。
云杉網(wǎng)絡(luò)與客戶的共同實(shí)踐,基于云原生應(yīng)用發(fā)展的現(xiàn)狀,通過(guò)DeepFlow®與客戶的應(yīng)用、網(wǎng)絡(luò)、基礎(chǔ)設(shè)施整合,綜合分析各類(lèi)指標(biāo)、日志以及追蹤數(shù)據(jù),形成一站式的容器化微服務(wù)可觀測(cè)性方案。
DeepFlow ®容器化微服務(wù)可觀測(cè)性方案
DeepFlow®提供適用于容器化微服務(wù)的可觀測(cè)性,解決云原生應(yīng)用診斷難的核心痛點(diǎn)。通過(guò)對(duì)全局微服務(wù)(UniversalServices)間的通信訪問(wèn)、系統(tǒng)調(diào)用、平臺(tái)環(huán)境等數(shù)據(jù)進(jìn)行深度分析,提供監(jiān)控告警、故障定位及風(fēng)險(xiǎn)排查,保障業(yè)務(wù)在云原生環(huán)境中的穩(wěn)定、高效運(yùn)行。
?分鐘級(jí)定位問(wèn)題邊界
基于容器化微服務(wù)的云原生應(yīng)用出現(xiàn)故障時(shí),快速明確問(wèn)題邊界是解決問(wèn)題的第一步?;谥R(shí)圖譜、微服務(wù)調(diào)用鏈、全棧追蹤等功能組合,快速檢索到異常單元所關(guān)聯(lián)涉及到的其他維度信息和影響范圍;直觀展示系統(tǒng)、容器、虛擬主機(jī)全棧性能指標(biāo)鎖定性能洼地等。
?大幅提升排障效率
排障過(guò)程并不僅是找到故障根因并修復(fù),而是從定位、根因、修復(fù)、驗(yàn)證及預(yù)防一整套運(yùn)維保障操作閉環(huán)。容器環(huán)境疊加微服務(wù)架構(gòu)使得排障更加復(fù)雜,需要避免以單次異常故障為視角,避免以單一數(shù)據(jù)為依據(jù)判斷根因進(jìn)行排障工作,需要有效地將應(yīng)用、容器平臺(tái)、系統(tǒng)調(diào)用等運(yùn)維數(shù)據(jù)進(jìn)行關(guān)聯(lián),且對(duì)比指標(biāo)、跟蹤以及日志特征來(lái)提高根因的準(zhǔn)確性;并通過(guò)歷史視圖、系統(tǒng)運(yùn)行表現(xiàn)、修復(fù)驗(yàn)證等指標(biāo)來(lái)確認(rèn)從而提升效率。
?微服務(wù)可用性指標(biāo)
應(yīng)用微服務(wù)化后,衡量判斷眾多微服務(wù)的質(zhì)量以及可用性是一個(gè)繁瑣的問(wèn)題。涉及到不同開(kāi)發(fā)團(tuán)隊(duì),設(shè)定具體指標(biāo),周期性的記錄和評(píng)估,發(fā)現(xiàn)性能洼地及熱點(diǎn)等等。這些工作都是要建立在數(shù)據(jù)積累的基礎(chǔ)之上,DeepFlow®平臺(tái)也是基于此來(lái)進(jìn)行對(duì)微服務(wù)各維度的畫(huà)像評(píng)估。通過(guò)對(duì)應(yīng)用中所涉及的幾十、上百個(gè)微服務(wù)運(yùn)行的歷史指標(biāo)數(shù)據(jù)進(jìn)行量化分析,在一個(gè)運(yùn)行周期中,能實(shí)時(shí)監(jiān)控業(yè)務(wù)是否達(dá)到99.99%的可用性要求(Service Level Object),并分析出潛在影響可用性的各種原因。
▌運(yùn)行環(huán)境
在公有云環(huán)境中,例如由騰訊云、阿里云等的云服務(wù)商提供的IaaS服務(wù)基礎(chǔ)上,可以直接選擇容器服務(wù)或者通過(guò)開(kāi)源Kubernetes軟件搭建容器平臺(tái),部署運(yùn)行各類(lèi)容器化微服務(wù)。DeepFlow ®通過(guò)零侵?jǐn)_采集技術(shù),獲取各類(lèi)運(yùn)維監(jiān)控?cái)?shù)據(jù),如基礎(chǔ)設(shè)施資源配置、網(wǎng)絡(luò)流量、API調(diào)用等,并通過(guò)后臺(tái)實(shí)時(shí)數(shù)倉(cāng),對(duì)多維度數(shù)據(jù)進(jìn)行實(shí)時(shí)分析處理,滿足不同場(chǎng)景下的微服務(wù)可觀測(cè)能力。
▌兼容現(xiàn)有監(jiān)控工具
在監(jiān)控體系發(fā)展以及客戶的實(shí)際使用中,存在各類(lèi)監(jiān)控工具,如資源監(jiān)控ZABBIX、容器監(jiān)控Prometheus、日志監(jiān)控ElasticSearch、應(yīng)用追蹤Skywalking等等。DeepFlow®憑借零侵?jǐn)_、低消耗、高性能的流量采集技術(shù),可以為現(xiàn)有監(jiān)控工具補(bǔ)充難以獲取的豐富指標(biāo)數(shù)據(jù),結(jié)合客戶已有的環(huán)境及工具平臺(tái),達(dá)到監(jiān)控?cái)?shù)據(jù)關(guān)聯(lián),運(yùn)維流程聯(lián)動(dòng),滿足微服務(wù)保障的告警、定位、排障以及預(yù)測(cè)量化服務(wù)質(zhì)量的要求。
以DeepFlow®做為基礎(chǔ)數(shù)據(jù)平臺(tái),結(jié)合Prometheus、ZABBIX、云監(jiān)控?cái)?shù)據(jù)構(gòu)成對(duì)應(yīng)用、系統(tǒng)、云基礎(chǔ)設(shè)施的指標(biāo)數(shù)據(jù)基礎(chǔ),通過(guò)開(kāi)放數(shù)據(jù)對(duì)接告警平臺(tái)、認(rèn)證平臺(tái)以及 Grafana等數(shù)據(jù)可視化平臺(tái),向微服務(wù)開(kāi)發(fā)部門(mén)、業(yè)務(wù)部門(mén)展現(xiàn)關(guān)鍵指標(biāo)數(shù)據(jù)。通過(guò)TraceID、SpanID、URL、資源ID等關(guān)鍵值關(guān)聯(lián)追蹤數(shù)據(jù),在應(yīng)用出現(xiàn)異常或者調(diào)優(yōu)過(guò)程中,以高效對(duì)接歷史指標(biāo)趨勢(shì)劃定資源范圍,使特定應(yīng)用請(qǐng)求過(guò)程與指標(biāo)鉆取統(tǒng)計(jì)不再割裂。實(shí)現(xiàn)對(duì)云上微服務(wù)的全方位可觀測(cè)能力。
總結(jié)
云杉網(wǎng)絡(luò)DeepFlow®容器化微服務(wù)可觀測(cè)性方案,面向公有云K8s、容器環(huán)境。利用eBPF等新技術(shù)的零侵入特性實(shí)現(xiàn)對(duì)網(wǎng)絡(luò)、系統(tǒng)、應(yīng)用的全棧黃金指標(biāo)的采集。對(duì)服務(wù)調(diào)用鏈以及Service mesh、iptables/ipvs、NAT的逐跳鏈路追蹤,對(duì)服務(wù)訪問(wèn)的零采樣全留存,并結(jié)合云資源知識(shí)圖譜和變更事件數(shù)據(jù),搭建立體化的微服務(wù)可觀測(cè)平臺(tái)。
云計(jì)算以及容器將是今后承載微服務(wù)業(yè)務(wù)應(yīng)用的主要平臺(tái),對(duì)于云網(wǎng)絡(luò)以及云原生應(yīng)用保障,將面臨規(guī)模廣、彈性大、波動(dòng)性強(qiáng)等諸多挑戰(zhàn),云杉網(wǎng)絡(luò)目標(biāo)就是幫助客戶補(bǔ)齊云網(wǎng)監(jiān)控的拼圖,保障云及微服務(wù)業(yè)務(wù)有序可控發(fā)展。
(免責(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)鏈接。 )