新聞中心
?譯者 | 布加迪

為灞橋等地區(qū)用戶提供了全套網(wǎng)頁設(shè)計制作服務(wù),及灞橋網(wǎng)站建設(shè)行業(yè)解決方案。主營業(yè)務(wù)為網(wǎng)站建設(shè)、網(wǎng)站制作、灞橋網(wǎng)站設(shè)計,以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務(wù)。我們深信只要達到每一位用戶的要求,就會得到認可,從而選擇與我們長期合作。這樣,我們也可以走得更遠!
審校 | 孫淑娟
運行云原生應(yīng)用程序時,可觀測性(observability)很關(guān)鍵。在云原生領(lǐng)域,應(yīng)用程序功能來自在多個位置運行的眾多微服務(wù)之間的交互。微服務(wù)應(yīng)用程序具有松散耦合性,可能意味著每個微服務(wù)都以各自的方式報告其活動。如果沒有一種工具來匯總和關(guān)聯(lián)這些遙測數(shù)據(jù),自始至終跟蹤請求的處理就算并非沒有可能,也是非常困難的。
這種細粒度、循序漸進的跟蹤對于故障排除和性能調(diào)優(yōu)而言至關(guān)重要。在物色一種多功能的可觀測性工具時,NGINX現(xiàn)代應(yīng)用程序參考架構(gòu)(MARA)項目背后的團隊選擇了OpenTelemetry。這篇博文解釋了為什么OpenTelemetry對微服務(wù)架構(gòu)而言如此重要,以及它在如何改變云原生應(yīng)用程序格局。
OpenTelemetry驅(qū)動可觀測性2.0
OpenTelemetry在2019年巴塞羅那KubeCon大會上首次宣布,此后就吸引了一批狂熱的貢獻者。今天,它仍然是云原生計算基金會(CNCF)的一個高人氣項目。越來越多的貢獻者表明OpenTelemetry已趨成熟,開始跨越愿意嘗新的早期采用者和渴望成熟產(chǎn)品的實用主義者之間的這條鴻溝。
OpenTelemetry專注于數(shù)據(jù),具體說來是最有效地了解、檢測和改進應(yīng)用程序所需要的數(shù)據(jù)和數(shù)據(jù)流(遙測)。數(shù)據(jù)只有在可以大規(guī)模聚合、分析和可視化后才有用。雖然OpenTelemetry并不提供可視化數(shù)據(jù)方面的指導(dǎo),但它讓我們從此不必操心我們獲得什么數(shù)據(jù),而是專注于我們可以用數(shù)據(jù)做什么。
OpenTelemetry簡化了跨數(shù)據(jù)源和應(yīng)用程序關(guān)聯(lián)事件的工作。這由此帶來了可觀測性2.0,這是用于測量云端應(yīng)用程序活動的新基準。由于數(shù)據(jù)自動關(guān)聯(lián),我們不再局限于僅僅知道應(yīng)用程序是否在運行。現(xiàn)在我們可以了解任何請求通過我們的應(yīng)用程序所經(jīng)過的確切數(shù)據(jù)路徑。
為了實現(xiàn)這一點,OpenTelemetry的兩個功能方面非常關(guān)鍵:分布式跟蹤和應(yīng)用程序智能。
為何現(xiàn)代應(yīng)用程序架構(gòu)需要分布式跟蹤?
雖然分布式跟蹤已經(jīng)存在多年了(可以追溯到Solaris中的DTrace),但過去十年發(fā)生的許多變化加大了用戶對它的需求。使用Cynefin框架,我們可以著重表明如今在現(xiàn)代應(yīng)用程序方面面臨的一些變化和挑戰(zhàn):
Cynefin框架表明了從簡單向復(fù)雜變化時,我們的實踐或做法會發(fā)生怎樣的變化。面臨的挑戰(zhàn)是,我們沿兩條不同的路徑前進,每條路徑有其特點;從簡單變成復(fù)雜后,試圖直接抄捷徑常常會造成混亂和不完整的進展。
不妨看看哪些要素構(gòu)建了現(xiàn)代應(yīng)用程序和云原生旅程中的路徑。在第一條路徑(Cynefin圖中的Y軸)中,我們有現(xiàn)代應(yīng)用程序,它們通常是微服務(wù)架構(gòu),每個應(yīng)用程序都做特定的工作。在第二條路徑(X軸)中,復(fù)雜的環(huán)境是短暫的,因為微服務(wù)實例根據(jù)需求來創(chuàng)建和關(guān)閉,并根據(jù)網(wǎng)絡(luò)問題移動到不同的主機上。
我們還必須考慮云環(huán)境的出現(xiàn)和迅猛增長,比如亞馬遜網(wǎng)絡(luò)服務(wù)(AWS)、微軟Azure和谷歌云平臺(GCP)等云環(huán)境。這種云的一個優(yōu)點是彈性響應(yīng)——可以靈活擴展或收縮資源,以匹配當前的需求量。加上容器編排(最常使用Kubernetes)的影響,隨著資源的數(shù)量和位置在一段時間后出現(xiàn)變化,我們開始看到混亂的行為。(連這種相對受限的視圖也很混亂,而無服務(wù)器函數(shù)等要素可能也會使其更混亂。)
在現(xiàn)代架構(gòu)中,有許多獨立的部分生成我們監(jiān)控和維護應(yīng)用程序所需的遙測數(shù)據(jù),數(shù)據(jù)負載龐大而復(fù)雜。由于我們無法完全控制基礎(chǔ)設(shè)施和通信路徑,問題可能不會可靠地重復(fù)或容易引發(fā)。我們需要能夠讓我們一直跟蹤所有活動和相關(guān)要素的技術(shù),這樣我們可以理解和分析不斷變化的環(huán)境,不僅可以識別反復(fù)出現(xiàn)的問題,還可以識別異常情況以及相關(guān)的應(yīng)用程序和網(wǎng)絡(luò)情況。
這時候OpenTelemetry應(yīng)運而生。
OpenTelemetry在分布式跟蹤方面的未來
分布式跟蹤支持跟蹤許多類型的新指標,但最常見的指標是與每個時間單位的請求數(shù)量、每個時間單位的錯誤數(shù)量以及聚合請求在該時間單位中占多長時間有關(guān)的指標。
在OpenTelemetry中,所有生成指標的應(yīng)用程序都可以通過遙測(傳輸)層將它們發(fā)送到一個通用收集點,這有助于對齊和關(guān)聯(lián)來自生成數(shù)據(jù)的松散耦合服務(wù)的數(shù)據(jù)。這包括與底層基礎(chǔ)設(shè)施保持一致。簡而言之,有了OpenTelemetry,獲取和發(fā)送高度詳細的指標變得更輕松了。
OpenTelemetry還有助于解決時間戳漂移和傾斜問題,這個問題使事件關(guān)聯(lián)起來變得很難。OpenTelemetry為每個請求分配一個跟蹤編號(TraceId),但數(shù)據(jù)仍然可能受到漂移和傾斜的影響,這個問題常常出現(xiàn)在云原生架構(gòu)中。漂移和傾斜可能是持續(xù)時間不一的報告路徑或各個主機上時鐘之間缺乏緊密同步造成的。通過在流量處理期間跟蹤組件之間的通信,分布式跟蹤允許OpenTelemetry測量單個跨度(跟蹤的工作單位和基本模塊),不需要對相關(guān)應(yīng)用程序進行深入的檢測。
結(jié)合這三種信號(遙測的類別),我們就可以糾正問題,讓應(yīng)用程序恢復(fù)到生產(chǎn)級質(zhì)量:
- 指標——“存在問題?”
- 跟蹤——“問題在哪里?”
- 日志——“出了什么問題?”
這時候我們又回到了可觀測性2.0。能夠獲得跟蹤并立即查看哪些指標對應(yīng)哪些跟蹤為我們賦予了強大的功能。比如說,當指標表明有問題時,分布式跟蹤讓您可以一路追溯到導(dǎo)致初始問題的那個特定請求,并跟蹤請求實現(xiàn)的每個步驟的進度。由于我們的跟蹤是由跨度按照它們發(fā)生的順序組成的,所以我們可以在請求旅程的每一步跟蹤請求。了解發(fā)生了什么,以什么順序發(fā)生(從初始事件到表明的問題,直到最終結(jié)果),讓我們能夠聚焦于應(yīng)用程序中具體的部位,集中注意力。
盡管聽起來很簡單,OpenTelemetry的分布式跟蹤方面可以讓我們深入了解用戶所遇到的一切,作為請求成功和執(zhí)行時間的代理。作為用戶,我關(guān)心我的請求。作為站點可靠性工程師(SRE),我關(guān)心聚合的請求。作為應(yīng)用程序所有者,我還關(guān)心尾部延遲:在某些條件下,對于少量重要的用戶群體而言,尾部延遲可能演變成糟糕的性能。OpenTelemetry為我提供了這三個功能,以及從聚合內(nèi)容中提煉細節(jié)的能力,因為它本身旨在讓所有應(yīng)用程序上的所有數(shù)據(jù)能夠為用戶所用。
借助AI和ML的應(yīng)用程序智能
來自O(shè)penTelemetry的這種新數(shù)據(jù)流還讓我們在開發(fā)和操作響應(yīng)方面可以實現(xiàn)自適應(yīng)和自動化。有了所有這些積累的數(shù)據(jù),我們可以使應(yīng)用程序更加智能和自適應(yīng)。而自適應(yīng)應(yīng)用程序恰如其名:自動智能地調(diào)整其行為以應(yīng)對環(huán)境變化的應(yīng)用程序。
通過實現(xiàn)遙測數(shù)據(jù)的可訪問性和標準化,OpenTelemetry使通向自適應(yīng)應(yīng)用程序的旅程變得更順坦。隨著不同類型的產(chǎn)品開始輸出類似的指標,如果利用OpenTelemetry中已確立的語義約定,我們更容易在請求處理期間將它們的操作關(guān)聯(lián)起來,并將這些信息饋送給人工智能(AI)和機器學習(ML)算法,從而使應(yīng)用程序和基礎(chǔ)設(shè)施能夠動態(tài)適應(yīng)。
總結(jié)
對OpenTelemetry的用戶和使用它作為遙測通道的應(yīng)用程序來說,規(guī)范遙測是明顯的舉措。可以從多個數(shù)據(jù)源收集數(shù)據(jù),并轉(zhuǎn)發(fā)給任何兼容的聚合和分析工具。此外,OpenTelemetry Collector使供應(yīng)商不必自行實施收集器。相反,它們可以致力于改善代碼,以執(zhí)行有意義的分析,并采取明智的操作,可以構(gòu)建新的工具來幫助理解這個復(fù)雜而混亂的新世界。實際上,OpenTelemetry Collector(基于開源創(chuàng)新)在讓這項技術(shù)順應(yīng)未來的同時,能夠處理幾乎所有的現(xiàn)有格式。
OpenTelemetry專注于我們理解應(yīng)用程序所需的主要數(shù)據(jù)類別,使我們的應(yīng)用程序可以為復(fù)雜的現(xiàn)代應(yīng)用程序環(huán)境的性能和問題提供更深入的見解。通過關(guān)聯(lián)我們的數(shù)據(jù)、遵守語義和標準慣例,OpenTelemetry使通向現(xiàn)代應(yīng)用程序的旅程變得更順坦。
隨著OpenTelemetry項目不斷成熟,采用率不斷提高,它顯然是我們加深了解的方法。我們還希望OpenTelemetry有助于運用AI和ML技術(shù)來解決復(fù)雜問題、實現(xiàn)自動化補救,并表明如何使云原生應(yīng)用程序變得更具適應(yīng)性、性能更好。
原文標題:??Why OpenTelemetry Is Taking Cloud Native to New Heights??,作者:Dave McAllister?
網(wǎng)站名稱:為什么OpenTelemetry正在將創(chuàng)新互聯(lián)帶到新的高度?
標題路徑:http://fisionsoft.com.cn/article/coooeih.html


咨詢
建站咨詢
