【摘要】 在不斷探索和創(chuàng)新中,Serverless 和可觀測性技術(shù)的結(jié)合將進一步提升 云計算 中的監(jiān)控能力,為企業(yè)構(gòu)建更強大、高效的 Serverless 應(yīng)用提供了保障,為云計算技術(shù)帶來更多可能性。
- 背景
隨著云計算技術(shù)的不斷進步和應(yīng)用需求的多樣化,Serverless 架構(gòu)以其按需分配資源、無服務(wù)器管理、高伸縮性等特點,在應(yīng)對突發(fā)流量和節(jié)省成本方面具有獨特優(yōu)勢,在近年來迅速崛起。然而,盡管 Serverless 架構(gòu)帶來了諸多優(yōu)勢,但在實際應(yīng)用中仍然存在著一些具有挑戰(zhàn)性的問題,可觀測性(Observability)就是其中的一個重要方面。可觀測性是指在系統(tǒng)運行過程中能夠清晰地了解系統(tǒng)的狀態(tài)和性能指標,包括日志、指標、追蹤和警報等,以便快速檢測問題、調(diào)試故障和優(yōu)化性能。在 Serverless 架構(gòu)下,由于函數(shù)的動態(tài)性、異步性和分布式特點,使得可觀測性變得更加復(fù)雜和困難。
- 技術(shù)難點
- 在實際應(yīng)用中,Serverless可觀測性的問題主要集中在以下幾個方面:
1.日志管理的困難: 當涉及到Serverless架構(gòu)時,日志管理可能會面臨一些困難。這包括實例日志文件的分布性和日志采集的異步性,由于Serverless應(yīng)用由多個函數(shù)和服務(wù)組成,導(dǎo)致日志分散且追蹤請求路徑復(fù)雜;另外,函數(shù)實例的短暫生命周期和動態(tài)擴展意味著及時地捕獲和保存日志信息更為困難。
2.異步執(zhí)行帶來的監(jiān)控困難: 在 Serverless 架構(gòu)中,函數(shù)通過事件觸發(fā)器進行異步調(diào)用,導(dǎo)致函數(shù)執(zhí)行的順序不確定。當函數(shù)之間存在依賴關(guān)系或順序要求時,確保調(diào)用順序的正確性和異步執(zhí)行時序的監(jiān)控變得復(fù)雜且困難。這種異步執(zhí)行模式給函數(shù)調(diào)用的監(jiān)控帶來不確定性和挑戰(zhàn)。
3. 故障排查 和調(diào)優(yōu)的困難: 在 Serverless 應(yīng)用中,由于函數(shù)的短暫性和動態(tài)性,故障排查和性能調(diào)優(yōu)相較傳統(tǒng)架構(gòu)更加困難。當函數(shù)調(diào)用出現(xiàn)異常或性能下降時,如何快速定位問題的根源、進行故障排查和性能優(yōu)化成為開發(fā)團隊面臨的重要挑戰(zhàn)。
- 解決方案
華為云 函數(shù)工作流 FunctionGraph與華為云其他云服務(wù)緊密集成,為用戶提供一體化的解決方案,旨在應(yīng)對 Serverless 應(yīng)用中的可觀測性挑戰(zhàn)。通過與華為云平臺上的監(jiān)控、日志、跟蹤和分析等服務(wù)深度集成,用戶能夠輕松實現(xiàn)對函數(shù)執(zhí)行時間、分布式跟蹤、日志管理和成本的監(jiān)測與優(yōu)化。
1.聯(lián)手華為云 LTS 打造一站式日志采集、存儲能力:華為云函數(shù)工作流FunctionGraph支持函數(shù)一鍵式接入LTS。LTS能夠滿足Serverless應(yīng)用的日志收集、存儲、搜索和分析需求,能夠輕松處理大規(guī)模日志,并提供實時日志告警機制。其廣泛的日志加工和統(tǒng)計功能,有助于用戶快速、有效地優(yōu)化日志數(shù)據(jù)。利用LTS,Serverless應(yīng)用能夠更輕松地進行日志管理和監(jiān)控,提升了日志運維效率和整體應(yīng)用的穩(wěn)定性。
2.基于華為云 AOM 構(gòu)建豐富的指標和監(jiān)控系統(tǒng):華為云函數(shù)工作流FunctionGraph向AOM上報了20+豐富的指標,這些指標涵蓋了調(diào)用結(jié)果、調(diào)用次數(shù)、調(diào)用時長等調(diào)用類指標以及實例數(shù)、異步堆積和內(nèi)存占用等實例類指標,為用戶提供全面、深入的函數(shù)運行狀態(tài)感知。這一系列詳盡的指標數(shù)據(jù)賦予用戶全面了解其應(yīng)用性能和運行狀況的能力,可幫助用戶進行精準的調(diào)優(yōu)和優(yōu)化,從而提升其在華為云平臺上的運行效率和穩(wěn)定性。通過提供實時、準確的數(shù)據(jù)支持,這一細致的監(jiān)控系統(tǒng)有助于用戶更好地了解和優(yōu)化其應(yīng)用的運行情況,提升整體的管理水平和運行效率。
3.通過華為云 APM 實現(xiàn)調(diào)用鏈路追蹤:通過整合華為云APM的監(jiān)控技術(shù)和OpenTelemetry的分布式跟蹤功能,我們能夠深入監(jiān)控單個函數(shù)內(nèi)部的調(diào)用鏈,追蹤函數(shù)執(zhí)行過程中的各個調(diào)用階段和依賴關(guān)系,幫助我們精確捕獲函數(shù)調(diào)用鏈上的關(guān)鍵信息,包括調(diào)用耗時、調(diào)用參數(shù)、調(diào)用成功與否等,為系統(tǒng)正常運行和故障診斷提供了重要數(shù)據(jù)支持。同時,當 Serverless 函數(shù)調(diào)用出現(xiàn)異常時,華為云APM的分析能力能夠?qū)δ硞€請求進行數(shù)據(jù)匯聚,實現(xiàn)請求級別的數(shù)據(jù)聚合與分析,開發(fā)者可以直觀地了解該請求在一段時間內(nèi)的耗時變化、請求結(jié)果等信息,快速找出異常請求。通過對異常請求的深入分析,包括異常調(diào)用信息、異常觸發(fā)時間點等,開發(fā)者可以精準定位問題根源,快速進行故障排查和修復(fù)操作。

華為云函數(shù)工作流FunctionGraph可觀測體系
- 最佳實踐
1.函數(shù)調(diào)用結(jié)果異常快速感知:函數(shù)調(diào)用結(jié)果異??焖俑兄獙τ谙到y(tǒng)的穩(wěn)定性與可靠性至關(guān)重要。FunctionGraph基于指標和錯誤碼日志,構(gòu)建了對異常函數(shù)的監(jiān)控和匯聚能力?;诒O(jiān)控數(shù)據(jù)的實時分析,能夠快速推斷異常的原因和可能的影響范圍,按故障場景針對性的采取自動隔離、人工介入等處理措施,確保系統(tǒng)持續(xù)穩(wěn)定運行,有助于最大限度地降低異常對業(yè)務(wù)的影響,為系統(tǒng)的穩(wěn)定性和可靠性提供保障。
現(xiàn)網(wǎng)S局點某日突然出現(xiàn)告警,某個函數(shù)執(zhí)行成功率小幅下降,我方運維人員基于函數(shù)調(diào)用看板,根據(jù)異常請求的的集群分布圖、節(jié)點分布圖和POD分布圖,在秒級內(nèi)鎖定異常的函數(shù)調(diào)用集中在某個POD上,迅速將該POD置為不可調(diào)度,這一操作有效地恢復(fù)了函數(shù)成功率。后來通過定位,證實是當時該POD出現(xiàn)異常,影響業(yè)務(wù)運行。

華為云函數(shù)工作流FunctionGraph函數(shù)調(diào)用看板
2.函數(shù)調(diào)用時延追蹤:在Serverless平臺上,時延類問題一直是一個較為棘手的挑戰(zhàn)。針對此問題,F(xiàn)unctionGraph針對函數(shù)調(diào)用時延展開了細致的追蹤和分析,以解決這一痛點難題。首先,通過構(gòu)建詳盡的指標趨勢圖,華為云函數(shù)工作流FunctionGraph使用戶能夠全面了解函數(shù)調(diào)用時延的歷史變化趨勢和關(guān)鍵數(shù)據(jù)指標,為時延分析提供了豐富的數(shù)據(jù)支持。此外,F(xiàn)unctionGraph還結(jié)合了華為云的 應(yīng)用性能管理 (APM)能力,在單次函數(shù)請求中無侵式開啟調(diào)用鏈,完成對函數(shù)請求鏈路的全面追蹤。通過對函數(shù)請求的細粒度監(jiān)控和分析,用戶可以深入了解函數(shù)調(diào)用過程中各環(huán)節(jié)的時延情況和性能指標,洞悉函數(shù)調(diào)用的具體執(zhí)行路徑,有助于客戶更好地解決時延類問題,減少不必要的性能瓶頸和延遲問題的影響。
某車聯(lián)網(wǎng)客戶使用華為云函數(shù)工作流FunctionGraph對數(shù)據(jù)進行轉(zhuǎn)儲操作,某日發(fā)現(xiàn)函數(shù)的執(zhí)行時間明顯延長,超出了平時的預(yù)期。運維人員通過函數(shù)時延看板,排除FunctionGraph自身系統(tǒng)異常后,基于用戶函數(shù)調(diào)用鏈分析,發(fā)現(xiàn)用戶函數(shù)在訪問OBS( 對象存儲服務(wù) )下載接口時,時延出現(xiàn)異常,后協(xié)調(diào)OBS負責(zé)人處理后,用戶函數(shù)執(zhí)行時間恢復(fù)正常。

華為云函數(shù)工作流FunctionGraph函數(shù)時延看板


函數(shù)調(diào)用鏈監(jiān)控
3.函數(shù)資源監(jiān)控:資源和成本也一直是用戶非常關(guān)心的因素。FunctionGraph為用戶提供了詳細的資源監(jiān)控看板,通過精確的監(jiān)控數(shù)據(jù),用戶能夠深入了解其云函數(shù)的性能狀況,及時發(fā)現(xiàn)潛在瓶頸和性能問題,從而有針對性地對函數(shù)配置進行優(yōu)化和調(diào)整,以提高應(yīng)用性能并最大程度降低成本消耗。
某在線教育客戶想要通過FunctionGraph節(jié)省成本,前期統(tǒng)一按照4096M內(nèi)存,50個預(yù)留實例進行配置,降本效果并不明顯。后通過函數(shù)資源看板,不斷根據(jù)調(diào)用量、積壓量、實例數(shù)量、內(nèi)存使用量等指標,優(yōu)化當前函數(shù)規(guī)格和預(yù)留實例數(shù),最終實現(xiàn)每月節(jié)省30%的降本目標。

華為云函數(shù)工作流FunctionGraph函數(shù)資源看板
- 總結(jié)與展望
- Serverless 和監(jiān)控技術(shù)的結(jié)合仍在不斷發(fā)展與完善之中。未來,我們可以期待以下方面的進展:
1.智能異常檢測和自愈:隨著人工智能和機器學(xué)習(xí)的發(fā)展,預(yù)測性異常檢測將得到加強,系統(tǒng)可以在異常發(fā)生前實時預(yù)警并自動觸發(fā)自愈機制。同時,基于強大的調(diào)用鏈分析能力,系統(tǒng)將能夠?qū)崟r追蹤事件流,并根據(jù)歷史數(shù)據(jù)和模型進行智能決策,提升系統(tǒng)自愈的響應(yīng)速度和準確性,助力構(gòu)建更加彈性和可靠的智能化服務(wù)架構(gòu)。
2.更高效、實時和精準的監(jiān)控能力:隨著 云原生 概念在開發(fā)者和企業(yè)中的逐漸流行,對于可觀測性的追求也變得日益重要。傳統(tǒng)的監(jiān)控方式涉及侵入性修改和主動上報,不僅消耗業(yè)務(wù)資源,而且難以達到實時監(jiān)控的要求。然而,隨著新技術(shù)如eBPF等的崛起,監(jiān)控領(lǐng)域也將迎來革命性進步。未來監(jiān)控能力將朝著更高效、實時和精準的方向演進,為云原生應(yīng)用提供更精準的數(shù)據(jù)和更快速的響應(yīng)能力,助力企業(yè)實現(xiàn)更高水平的性能優(yōu)化和故障排除。這一趨勢將推動監(jiān)控技術(shù)邁向全新的發(fā)展階段,為行業(yè)帶來更為智能和高效的監(jiān)控解決方案。
在不斷探索和創(chuàng)新中,Serverless 和可觀測性技術(shù)的結(jié)合將進一步提升云計算中的監(jiān)控能力,為企業(yè)構(gòu)建更強大、高效的 Serverless 應(yīng)用提供了保障,為云計算技術(shù)帶來更多可能性。