Red Hat公司首席軟件工程師Bart?omiej P?otka確定了現(xiàn)代云計(jì)算可觀察性的五個(gè)關(guān)鍵和新興趨勢。
在高度抽象、虛擬化、通常是短暫且始終動(dòng)態(tài)的云計(jì)算資源的世界中,實(shí)現(xiàn)持續(xù)可觀察性的需求是關(guān)鍵。然而,一些企業(yè)創(chuàng)建云計(jì)算服務(wù)時(shí)并沒有考慮到內(nèi)部系統(tǒng)的可觀察性。它最初是作為通過資源靈活性和成本可管理性實(shí)現(xiàn)IT敏捷性的關(guān)鍵途徑而銷售的。
現(xiàn)在云計(jì)算采用率也在增長,人們需要退后一步評估可觀察性能力。此外,隨著云原生實(shí)現(xiàn)跨越公有云、私有云、混合云、多云(多個(gè)供應(yīng)商)實(shí)例,可以開始考慮多云,其中應(yīng)用程序和數(shù)據(jù)服務(wù)工作負(fù)載的不同部分通過不同的云計(jì)算服務(wù)提供商區(qū)分開。
基于控制理論,現(xiàn)代云計(jì)算時(shí)代的可觀察性以多種形式表現(xiàn)出來,那么哪些關(guān)鍵驅(qū)動(dòng)因素正在塑造企業(yè)遷移到云中以獲得更好視野的方式?
APM無處不在
許多人希望了解云計(jì)算可觀察性和APM(應(yīng)用程序性能監(jiān)控)之間的區(qū)別是什么。人們過去“只是簡單地”擁有虛擬機(jī),這意味著計(jì)算塊或?qū)嵗梢韵鄬θ菀椎乇┞队诳捎^察性。
人們現(xiàn)在生活在嵌套虛擬化、軟件定義基礎(chǔ)設(shè)施(SDI)和云計(jì)算服務(wù)的世界中。企業(yè)的應(yīng)用程序工作負(fù)載通常被軟件層(也稱為“應(yīng)用程序”)包圍:操作系統(tǒng)、代理、編排軟件、容器引擎、虛擬機(jī)、外部服務(wù)等等。
由于APM幾乎已經(jīng)成為可觀察性的同義詞,現(xiàn)在看到它擴(kuò)展到整個(gè)IT堆棧的每一層和結(jié)構(gòu)。顯然,人們需要APM用于應(yīng)用程序,但還需要基礎(chǔ)設(shè)施APM(iAPM),并且它需要能夠針對現(xiàn)在所在的虛擬化設(shè)備。
人們可能正處于不需要區(qū)分APM和非應(yīng)用程序監(jiān)控的時(shí)候。業(yè)界已經(jīng)可以利用類似的方式利用工具來監(jiān)控和觀察云中的各種軟件。
聯(lián)合集中編排視圖
在人們擁有多個(gè)不同的云計(jì)算提供商和許多云計(jì)算實(shí)例的世界中,需要一個(gè)協(xié)調(diào)的聯(lián)合可觀察性級別,具有集中視圖以及跨多個(gè)集群中的多個(gè)云平臺(tái)進(jìn)行過濾和聚合的能力,如果希望能夠保持控制的話。
將可觀測性數(shù)據(jù)聯(lián)合到一個(gè)集中的位置是當(dāng)今一種常見的技術(shù)和過程。這已被證明是查找云過載、糟糕的配置和實(shí)例閑置的“僵尸”云浪費(fèi)的最佳方法。當(dāng)將所有這些結(jié)合在一起時(shí),可以驅(qū)動(dòng)更高效的云計(jì)算資源來服務(wù)內(nèi)容交付網(wǎng)絡(luò),并在更智能的層面全面工作。
考慮內(nèi)部的相關(guān)性
現(xiàn)在消耗和產(chǎn)生的數(shù)據(jù)量使人們能夠獲得更多信號(hào)來跟蹤可觀察性要求。如果考慮到物聯(lián)網(wǎng)正在以指數(shù)方式增加數(shù)據(jù)點(diǎn)這一事實(shí),就數(shù)據(jù)流而言,大量數(shù)據(jù)會(huì)使可觀察性變得更加困難。
為了應(yīng)對這一挑戰(zhàn),需要考慮相關(guān)性。當(dāng)人們尋求分析系統(tǒng)指標(biāo)、日志和跟蹤時(shí),需要能夠在這些程序和任務(wù)之間快速跳轉(zhuǎn),以便在IT堆棧的不同部分動(dòng)態(tài)工作。由于需要觀察的內(nèi)容太多,連接的相關(guān)性有助于在數(shù)據(jù)源之間提供至關(guān)重要的鏈接,這些數(shù)據(jù)源實(shí)際上對IT功能的運(yùn)行至關(guān)重要。
連續(xù)分析
可觀察性目標(biāo)讓人們不斷尋找可以提高性能效率的優(yōu)化。這意味著需要尋找、跟蹤和分析不同的可觀察性信號(hào)。執(zhí)行此操作的最佳方法之一是分析。這種技術(shù)使人們能夠知道應(yīng)用程序的哪個(gè)部分使用了多少計(jì)算資源(CPU時(shí)間、內(nèi)存、磁盤或網(wǎng)絡(luò)IO),而無需在查看進(jìn)程的資源使用情況時(shí)進(jìn)行猜測。
連續(xù)分析使人們能夠查看應(yīng)用程序,并在感興趣的情況下查看過去的性能特征。如果它即將耗盡內(nèi)存并可能使整個(gè)節(jié)點(diǎn)崩潰,則它特別有用。如果可以每60秒查看一次應(yīng)用程序配置文件(或者甚至更頻繁),那么人們就可以看到應(yīng)用程序源代碼中的某個(gè)函數(shù)可能需要優(yōu)化或擴(kuò)充的地方。即使在編譯(而不是解釋)的應(yīng)用程序的情況下,也可以回顧性地執(zhí)行此操作,因?yàn)樗度肓苏{(diào)試符號(hào),使人們能夠向后映射到特定的函數(shù)調(diào)用。
eBPF的大量活動(dòng)
最后是eBPF,或擴(kuò)展Berkeley數(shù)據(jù)包過濾器以使用其全名。這是一種允許人們在Linux內(nèi)核中執(zhí)行附加代碼的機(jī)制。當(dāng)可以使用這種“特殊機(jī)構(gòu)”技術(shù)查看內(nèi)核內(nèi)部的特定功能時(shí),就可以獲得對可觀察性的新控制。另外一個(gè)好處是,還可以注意到,eBPF不需要應(yīng)用程序級別的工具來開始捕獲指標(biāo)。
盡管它最初是為安全而設(shè)計(jì)的,但現(xiàn)在可以更主動(dòng)地用于公開應(yīng)用程序的度量。人們曾經(jīng)考慮使用服務(wù)網(wǎng)格作為在應(yīng)用程序周圍放置代理的一種方式,但是可以用eBPF代替服務(wù)網(wǎng)格,eBPF具有更低的開銷和更多的功能。
“金絲雀部署”可能仍然需要服務(wù)網(wǎng)格,應(yīng)該注意到,服務(wù)網(wǎng)格仍然存在不可觀察性用例,例如金絲雀部署(對流量進(jìn)行嚴(yán)格控制)和授權(quán)(通過相互TLS)中的那些用例。目前還沒有eBPF嘗試在這種級別上調(diào)整流量,目前eBPF的用例只是安全性和可觀察性。
如果尋求在現(xiàn)代IT堆棧中實(shí)現(xiàn)可觀察性的過程中考慮這些因素和一些功能,那么可以了解在云端將會(huì)發(fā)生什么。