華為雲Serverless可觀測性解決方案打造高效、可靠的雲原生應用

华为云开发者联盟發表於2024-07-25

隨著雲端計算技術的不斷進步和應用需求的多樣化,Serverless 架構以其按需分配資源、無伺服器管理、高伸縮性等特點,在應對突發流量和節省成本方面具有獨特優勢,在近年來迅速崛起。然而,儘管 Serverless 架構帶來了諸多優勢,但在實際應用中仍然存在著一些具有挑戰性的問題,可觀測性(Observability)就是其中的一個重要方面。可觀測性是指在系統執行過程中能夠清晰地瞭解系統的狀態和效能指標,包括日誌、指標、追蹤和警報等,以便快速檢測問題、除錯故障和最佳化效能。在 Serverless 架構下,由於函式的動態性、非同步性和分散式特點,使得可觀測性變得更加複雜和困難。

技術難點

在實際應用中,Serverless可觀測性的問題主要集中在以下幾個方面:

  • 日誌管理的困難: 當涉及到Serverless架構時,日誌管理可能會面臨一些困難。這包括例項日誌檔案的分佈性和日誌採集的非同步性,由於Serverless應用由多個函式和服務組成,導致日誌分散且追蹤請求路徑複雜;另外,函式例項的短暫生命週期和動態擴充套件意味著及時地捕獲和儲存日誌資訊更為困難。
  • 非同步執行帶來的監控困難: 在 Serverless 架構中,函式透過事件觸發器進行非同步呼叫,導致函式執行的順序不確定。當函式之間存在依賴關係或順序要求時,確保呼叫順序的正確性和非同步執行時序的監控變得複雜且困難。這種非同步執行模式給函式呼叫的監控帶來不確定性和挑戰。
  • 故障排查和調優的困難: 在 Serverless 應用中,由於函式的短暫性和動態性,故障排查和效能調優相較傳統架構更加困難。當函式呼叫出現異常或效能下降時,如何快速定位問題的根源、進行故障排查和效能最佳化成為開發團隊面臨的重要挑戰。

解決方案

華為雲函式工作流FunctionGraph與華為雲其他雲服務緊密整合,為使用者提供一體化的解決方案,旨在應對 Serverless 應用中的可觀測性挑戰。透過與華為雲平臺上的監控、日誌、跟蹤和分析等服務深度整合,使用者能夠輕鬆實現對函式執行時間、分散式跟蹤、日誌管理和成本的監測與最佳化。

聯手華為雲LTS打造一站式日誌採集、儲存能力:FunctionGraph支援函式一鍵式接入LTS。LTS能夠滿足Serverless應用的日誌收集、儲存、搜尋和分析需求,能夠輕鬆處理大規模日誌,並提供實時日誌告警機制。其廣泛的日誌加工和統計功能,有助於使用者快速、有效地最佳化日誌資料。利用LTS,Serverless應用能夠更輕鬆地進行日誌管理和監控,提升了日誌運維效率和整體應用的穩定性。

基於華為雲AOM構建豐富的指標和監控系統:FunctionGraph向AOM上報了20+豐富的指標,這些指標涵蓋了呼叫結果、呼叫次數、呼叫時長等呼叫類指標以及例項數、非同步堆積和記憶體佔用等例項類指標,為使用者提供全面、深入的函式執行狀態感知。這一系列詳盡的指標資料賦予使用者全面瞭解其應用效能和執行狀況的能力,可幫助使用者進行精準的調優和最佳化,從而提升其在華為雲平臺上的執行效率和穩定性。透過提供實時、準確的資料支援,這一細緻的監控系統有助於使用者更好地瞭解和最佳化其應用的執行情況,提升整體的管理水平和執行效率。

透過華為雲APM實現呼叫鏈路追蹤:透過整合華為雲APM的監控技術和OpenTelemetry的分散式跟蹤功能,我們能夠深入監控單個函式內部的呼叫鏈,追蹤函式執行過程中的各個呼叫階段和依賴關係,幫助我們精確捕獲函式呼叫鏈上的關鍵資訊,包括呼叫耗時、呼叫引數、呼叫成功與否等,為系統正常執行和故障診斷提供了重要資料支援。同時,當 Serverless 函式呼叫出現異常時,華為雲APM的分析能力能夠對某個請求進行資料匯聚,實現請求級別的資料聚合與分析,開發者可以直觀地瞭解該請求在一段時間內的耗時變化、請求結果等資訊,快速找出異常請求。透過對異常請求的深入分析,包括異常呼叫資訊、異常觸發時間點等,開發者可以精準定位問題根源,快速進行故障排查和修復操作。

華為雲Serverless可觀測性解決方案打造高效、可靠的雲原生應用

FunctionGraph可觀測體系

最佳實踐

函式呼叫結果異常快速感知:函式呼叫結果異常快速感知對於系統的穩定性與可靠性至關重要。FunctionGraph基於指標和錯誤碼日誌,構建了對異常函式的監控和匯聚能力。基於監控資料的實時分析,能夠快速推斷異常的原因和可能的影響範圍,按故障場景針對性的採取自動隔離、人工介入等處理措施,確保系統持續穩定執行,有助於最大限度地降低異常對業務的影響,為系統的穩定性和可靠性提供保障。

現網S局點某日突然出現告警,某個函式執行成功率小幅下降,我方運維人員基於函式呼叫看板,根據異常請求的的叢集分佈圖、節點分佈圖和POD分佈圖,在秒級內鎖定異常的函式呼叫集中在某個POD上,迅速將該POD置為不可排程,這一操作有效地恢復了函式成功率。後來透過定位,證實是當時該POD出現異常,影響業務執行。

華為雲Serverless可觀測性解決方案打造高效、可靠的雲原生應用FunctionGraph函式呼叫看板

函式呼叫時延追蹤:在Serverless平臺上,時延類問題一直是一個較為棘手的挑戰。針對此問題,FunctionGraph針對函式呼叫時延展開了細緻的追蹤和分析,以解決這一痛點難題。首先,透過構建詳盡的指標趨勢圖,FunctionGraph使使用者能夠全面瞭解函式呼叫時延的歷史變化趨勢和關鍵資料指標,為時延分析提供了豐富的資料支援。此外,FunctionGraph還結合了華為雲的應用效能管理(APM)能力,在單次函式請求中無侵式開啟呼叫鏈,完成對函式請求鏈路的全面追蹤。透過對函式請求的細粒度監控和分析,使用者可以深入瞭解函式呼叫過程中各環節的時延情況和效能指標,洞悉函式呼叫的具體執行路徑,有助於客戶更好地解決時延類問題,減少不必要的效能瓶頸和延遲問題的影響。

某車聯網客戶使用FunctionGraph對資料進行轉儲操作,某日發現函式的執行時間明顯延長,超出了平時的預期。運維人員透過函式時延看板,排除FunctionGraph自身系統異常後,基於使用者函式呼叫鏈分析,發現使用者函式在訪問OBS(物件儲存服務)下載介面時,時延出現異常,後協調OBS負責人處理後,使用者函式執行時間恢復正常。

華為雲Serverless可觀測性解決方案打造高效、可靠的雲原生應用FunctionGraph函式時延看板
華為雲Serverless可觀測性解決方案打造高效、可靠的雲原生應用
華為雲Serverless可觀測性解決方案打造高效、可靠的雲原生應用函式呼叫鏈監控

函式資源監控:資源和成本也一直是使用者非常關心的因素。FunctionGraph為使用者提供了詳細的資源監控看板,透過精確的監控資料,使用者能夠深入瞭解其雲函式的效能狀況,及時發現潛在瓶頸和效能問題,從而有針對性地對函式配置進行最佳化和調整,以提高應用效能並最大程度降低成本消耗。

某線上教育客戶想要透過FunctionGraph節省成本,前期統一按照4096M記憶體,50個預留例項進行配置,降本效果並不明顯。後透過函式資源看板,不斷根據呼叫量、積壓量、例項數量、記憶體使用量等指標,最佳化當前函式規格和預留例項數,最終實現每月節省30%的降本目標。

華為雲Serverless可觀測性解決方案打造高效、可靠的雲原生應用FunctionGraph函式資源看板

總結與展望

Serverless 和監控技術的結合仍在不斷髮展與完善之中。未來,我們可以期待以下方面的進展:

  • 智慧異常檢測和自愈:隨著人工智慧和機器學習的發展,預測性異常檢測將得到加強,系統可以在異常發生前實時預警並自動觸發自愈機制。同時,基於強大的呼叫鏈分析能力,系統將能夠實時追蹤事件流,並根據歷史資料和模型進行智慧決策,提升系統自愈的響應速度和準確性,助力構建更加彈性和可靠的智慧化服務架構。
  • 更高效、實時和精準的監控能力:隨著雲原生概念在開發者和企業中的逐漸流行,對於可觀測性的追求也變得日益重要。傳統的監控方式涉及侵入性修改和主動上報,不僅消耗業務資源,而且難以達到實時監控的要求。然而,隨著新技術如eBPF等的崛起,監控領域也將迎來革命性進步。未來監控能力將朝著更高效、實時和精準的方向演進,為雲原生應用提供更精準的資料和更快速的響應能力,助力企業實現更高水平的效能最佳化和故障排除。這一趨勢將推動監控技術邁向全新的發展階段,為行業帶來更為智慧和高效的監控解決方案。

在不斷探索和創新中,Serverless 和可觀測性技術的結合將進一步提升雲端計算中的監控能力,為企業構建更強大、高效的 Serverless 應用提供了保障,為雲端計算技術帶來更多可能性。

點選關注,第一時間瞭解華為雲新鮮技術~

相關文章