【摘要】 在不斷探索和創(chuàng)新中,Serverless 和可觀測(cè)性技術(shù)的結(jié)合將進(jìn)一步提升 云計(jì)算 中的監(jiān)控能力,為企業(yè)構(gòu)建更強(qiáng)大、高效的 Serverless 應(yīng)用提供了保障,為云計(jì)算技術(shù)帶來(lái)更多可能性。
- 背景
隨著云計(jì)算技術(shù)的不斷進(jìn)步和應(yīng)用需求的多樣化,Serverless 架構(gòu)以其按需分配資源、無(wú)服務(wù)器管理、高伸縮性等特點(diǎn),在應(yīng)對(duì)突發(fā)流量和節(jié)省成本方面具有獨(dú)特優(yōu)勢(shì),在近年來(lái)迅速崛起。然而,盡管 Serverless 架構(gòu)帶來(lái)了諸多優(yōu)勢(shì),但在實(shí)際應(yīng)用中仍然存在著一些具有挑戰(zhàn)性的問(wèn)題,可觀測(cè)性(Observability)就是其中的一個(gè)重要方面??捎^測(cè)性是指在系統(tǒng)運(yùn)行過(guò)程中能夠清晰地了解系統(tǒng)的狀態(tài)和性能指標(biāo),包括日志、指標(biāo)、追蹤和警報(bào)等,以便快速檢測(cè)問(wèn)題、調(diào)試故障和優(yōu)化性能。在 Serverless 架構(gòu)下,由于函數(shù)的動(dòng)態(tài)性、異步性和分布式特點(diǎn),使得可觀測(cè)性變得更加復(fù)雜和困難。
- 技術(shù)難點(diǎn)
- 在實(shí)際應(yīng)用中,Serverless可觀測(cè)性的問(wèn)題主要集中在以下幾個(gè)方面:
1.日志管理的困難: 當(dāng)涉及到Serverless架構(gòu)時(shí),日志管理可能會(huì)面臨一些困難。這包括實(shí)例日志文件的分布性和日志采集的異步性,由于Serverless應(yīng)用由多個(gè)函數(shù)和服務(wù)組成,導(dǎo)致日志分散且追蹤請(qǐng)求路徑復(fù)雜;另外,函數(shù)實(shí)例的短暫生命周期和動(dòng)態(tài)擴(kuò)展意味著及時(shí)地捕獲和保存日志信息更為困難。
2.異步執(zhí)行帶來(lái)的監(jiān)控困難: 在 Serverless 架構(gòu)中,函數(shù)通過(guò)事件觸發(fā)器進(jìn)行異步調(diào)用,導(dǎo)致函數(shù)執(zhí)行的順序不確定。當(dāng)函數(shù)之間存在依賴(lài)關(guān)系或順序要求時(shí),確保調(diào)用順序的正確性和異步執(zhí)行時(shí)序的監(jiān)控變得復(fù)雜且困難。這種異步執(zhí)行模式給函數(shù)調(diào)用的監(jiān)控帶來(lái)不確定性和挑戰(zhàn)。
3. 故障排查 和調(diào)優(yōu)的困難: 在 Serverless 應(yīng)用中,由于函數(shù)的短暫性和動(dòng)態(tài)性,故障排查和性能調(diào)優(yōu)相較傳統(tǒng)架構(gòu)更加困難。當(dāng)函數(shù)調(diào)用出現(xiàn)異常或性能下降時(shí),如何快速定位問(wèn)題的根源、進(jìn)行故障排查和性能優(yōu)化成為開(kāi)發(fā)團(tuán)隊(duì)面臨的重要挑戰(zhàn)。
- 解決方案
華為云 函數(shù)工作流 FunctionGraph與華為云其他云服務(wù)緊密集成,為用戶提供一體化的解決方案,旨在應(yīng)對(duì) Serverless 應(yīng)用中的可觀測(cè)性挑戰(zhàn)。通過(guò)與華為云平臺(tái)上的監(jiān)控、日志、跟蹤和分析等服務(wù)深度集成,用戶能夠輕松實(shí)現(xiàn)對(duì)函數(shù)執(zhí)行時(shí)間、分布式跟蹤、日志管理和成本的監(jiān)測(cè)與優(yōu)化。
1.聯(lián)手華為云 LTS 打造一站式日志采集、存儲(chǔ)能力:華為云函數(shù)工作流FunctionGraph支持函數(shù)一鍵式接入LTS。LTS能夠滿足Serverless應(yīng)用的日志收集、存儲(chǔ)、搜索和分析需求,能夠輕松處理大規(guī)模日志,并提供實(shí)時(shí)日志告警機(jī)制。其廣泛的日志加工和統(tǒng)計(jì)功能,有助于用戶快速、有效地優(yōu)化日志數(shù)據(jù)。利用LTS,Serverless應(yīng)用能夠更輕松地進(jìn)行日志管理和監(jiān)控,提升了日志運(yùn)維效率和整體應(yīng)用的穩(wěn)定性。
2.基于華為云 AOM 構(gòu)建豐富的指標(biāo)和監(jiān)控系統(tǒng):華為云函數(shù)工作流FunctionGraph向AOM上報(bào)了20+豐富的指標(biāo),這些指標(biāo)涵蓋了調(diào)用結(jié)果、調(diào)用次數(shù)、調(diào)用時(shí)長(zhǎng)等調(diào)用類(lèi)指標(biāo)以及實(shí)例數(shù)、異步堆積和內(nèi)存占用等實(shí)例類(lèi)指標(biāo),為用戶提供全面、深入的函數(shù)運(yùn)行狀態(tài)感知。這一系列詳盡的指標(biāo)數(shù)據(jù)賦予用戶全面了解其應(yīng)用性能和運(yùn)行狀況的能力,可幫助用戶進(jìn)行精準(zhǔn)的調(diào)優(yōu)和優(yōu)化,從而提升其在華為云平臺(tái)上的運(yùn)行效率和穩(wěn)定性。通過(guò)提供實(shí)時(shí)、準(zhǔn)確的數(shù)據(jù)支持,這一細(xì)致的監(jiān)控系統(tǒng)有助于用戶更好地了解和優(yōu)化其應(yīng)用的運(yùn)行情況,提升整體的管理水平和運(yùn)行效率。
3.通過(guò)華為云 APM 實(shí)現(xiàn)調(diào)用鏈路追蹤:通過(guò)整合華為云APM的監(jiān)控技術(shù)和OpenTelemetry的分布式跟蹤功能,我們能夠深入監(jiān)控單個(gè)函數(shù)內(nèi)部的調(diào)用鏈,追蹤函數(shù)執(zhí)行過(guò)程中的各個(gè)調(diào)用階段和依賴(lài)關(guān)系,幫助我們精確捕獲函數(shù)調(diào)用鏈上的關(guān)鍵信息,包括調(diào)用耗時(shí)、調(diào)用參數(shù)、調(diào)用成功與否等,為系統(tǒng)正常運(yùn)行和故障診斷提供了重要數(shù)據(jù)支持。同時(shí),當(dāng) Serverless 函數(shù)調(diào)用出現(xiàn)異常時(shí),華為云APM的分析能力能夠?qū)δ硞€(gè)請(qǐng)求進(jìn)行數(shù)據(jù)匯聚,實(shí)現(xiàn)請(qǐng)求級(jí)別的數(shù)據(jù)聚合與分析,開(kāi)發(fā)者可以直觀地了解該請(qǐng)求在一段時(shí)間內(nèi)的耗時(shí)變化、請(qǐng)求結(jié)果等信息,快速找出異常請(qǐng)求。通過(guò)對(duì)異常請(qǐng)求的深入分析,包括異常調(diào)用信息、異常觸發(fā)時(shí)間點(diǎn)等,開(kāi)發(fā)者可以精準(zhǔn)定位問(wèn)題根源,快速進(jìn)行故障排查和修復(fù)操作。
華為云函數(shù)工作流FunctionGraph可觀測(cè)體系
- 最佳實(shí)踐
1.函數(shù)調(diào)用結(jié)果異??焖俑兄?/strong>函數(shù)調(diào)用結(jié)果異常快速感知對(duì)于系統(tǒng)的穩(wěn)定性與可靠性至關(guān)重要。FunctionGraph基于指標(biāo)和錯(cuò)誤碼日志,構(gòu)建了對(duì)異常函數(shù)的監(jiān)控和匯聚能力?;诒O(jiān)控?cái)?shù)據(jù)的實(shí)時(shí)分析,能夠快速推斷異常的原因和可能的影響范圍,按故障場(chǎng)景針對(duì)性的采取自動(dòng)隔離、人工介入等處理措施,確保系統(tǒng)持續(xù)穩(wěn)定運(yùn)行,有助于最大限度地降低異常對(duì)業(yè)務(wù)的影響,為系統(tǒng)的穩(wěn)定性和可靠性提供保障。
現(xiàn)網(wǎng)S局點(diǎn)某日突然出現(xiàn)告警,某個(gè)函數(shù)執(zhí)行成功率小幅下降,我方運(yùn)維人員基于函數(shù)調(diào)用看板,根據(jù)異常請(qǐng)求的的集群分布圖、節(jié)點(diǎn)分布圖和POD分布圖,在秒級(jí)內(nèi)鎖定異常的函數(shù)調(diào)用集中在某個(gè)POD上,迅速將該P(yáng)OD置為不可調(diào)度,這一操作有效地恢復(fù)了函數(shù)成功率。后來(lái)通過(guò)定位,證實(shí)是當(dāng)時(shí)該P(yáng)OD出現(xiàn)異常,影響業(yè)務(wù)運(yùn)行。
華為云函數(shù)工作流FunctionGraph函數(shù)調(diào)用看板
2.函數(shù)調(diào)用時(shí)延追蹤:在Serverless平臺(tái)上,時(shí)延類(lèi)問(wèn)題一直是一個(gè)較為棘手的挑戰(zhàn)。針對(duì)此問(wèn)題,F(xiàn)unctionGraph針對(duì)函數(shù)調(diào)用時(shí)延展開(kāi)了細(xì)致的追蹤和分析,以解決這一痛點(diǎn)難題。首先,通過(guò)構(gòu)建詳盡的指標(biāo)趨勢(shì)圖,華為云函數(shù)工作流FunctionGraph使用戶能夠全面了解函數(shù)調(diào)用時(shí)延的歷史變化趨勢(shì)和關(guān)鍵數(shù)據(jù)指標(biāo),為時(shí)延分析提供了豐富的數(shù)據(jù)支持。此外,F(xiàn)unctionGraph還結(jié)合了華為云的 應(yīng)用性能管理 (APM)能力,在單次函數(shù)請(qǐng)求中無(wú)侵式開(kāi)啟調(diào)用鏈,完成對(duì)函數(shù)請(qǐng)求鏈路的全面追蹤。通過(guò)對(duì)函數(shù)請(qǐng)求的細(xì)粒度監(jiān)控和分析,用戶可以深入了解函數(shù)調(diào)用過(guò)程中各環(huán)節(jié)的時(shí)延情況和性能指標(biāo),洞悉函數(shù)調(diào)用的具體執(zhí)行路徑,有助于客戶更好地解決時(shí)延類(lèi)問(wèn)題,減少不必要的性能瓶頸和延遲問(wèn)題的影響。
某車(chē)聯(lián)網(wǎng)客戶使用華為云函數(shù)工作流FunctionGraph對(duì)數(shù)據(jù)進(jìn)行轉(zhuǎn)儲(chǔ)操作,某日發(fā)現(xiàn)函數(shù)的執(zhí)行時(shí)間明顯延長(zhǎng),超出了平時(shí)的預(yù)期。運(yùn)維人員通過(guò)函數(shù)時(shí)延看板,排除FunctionGraph自身系統(tǒng)異常后,基于用戶函數(shù)調(diào)用鏈分析,發(fā)現(xiàn)用戶函數(shù)在訪問(wèn)OBS( 對(duì)象存儲(chǔ)服務(wù) )下載接口時(shí),時(shí)延出現(xiàn)異常,后協(xié)調(diào)OBS負(fù)責(zé)人處理后,用戶函數(shù)執(zhí)行時(shí)間恢復(fù)正常。
華為云函數(shù)工作流FunctionGraph函數(shù)時(shí)延看板
函數(shù)調(diào)用鏈監(jiān)控
3.函數(shù)資源監(jiān)控:資源和成本也一直是用戶非常關(guān)心的因素。FunctionGraph為用戶提供了詳細(xì)的資源監(jiān)控看板,通過(guò)精確的監(jiān)控?cái)?shù)據(jù),用戶能夠深入了解其云函數(shù)的性能狀況,及時(shí)發(fā)現(xiàn)潛在瓶頸和性能問(wèn)題,從而有針對(duì)性地對(duì)函數(shù)配置進(jìn)行優(yōu)化和調(diào)整,以提高應(yīng)用性能并最大程度降低成本消耗。
某在線教育客戶想要通過(guò)FunctionGraph節(jié)省成本,前期統(tǒng)一按照4096M內(nèi)存,50個(gè)預(yù)留實(shí)例進(jìn)行配置,降本效果并不明顯。后通過(guò)函數(shù)資源看板,不斷根據(jù)調(diào)用量、積壓量、實(shí)例數(shù)量、內(nèi)存使用量等指標(biāo),優(yōu)化當(dāng)前函數(shù)規(guī)格和預(yù)留實(shí)例數(shù),最終實(shí)現(xiàn)每月節(jié)省30%的降本目標(biāo)。
華為云函數(shù)工作流FunctionGraph函數(shù)資源看板
- 總結(jié)與展望
- Serverless 和監(jiān)控技術(shù)的結(jié)合仍在不斷發(fā)展與完善之中。未來(lái),我們可以期待以下方面的進(jìn)展:
1.智能異常檢測(cè)和自愈:隨著人工智能和機(jī)器學(xué)習(xí)的發(fā)展,預(yù)測(cè)性異常檢測(cè)將得到加強(qiáng),系統(tǒng)可以在異常發(fā)生前實(shí)時(shí)預(yù)警并自動(dòng)觸發(fā)自愈機(jī)制。同時(shí),基于強(qiáng)大的調(diào)用鏈分析能力,系統(tǒng)將能夠?qū)崟r(shí)追蹤事件流,并根據(jù)歷史數(shù)據(jù)和模型進(jìn)行智能決策,提升系統(tǒng)自愈的響應(yīng)速度和準(zhǔn)確性,助力構(gòu)建更加彈性和可靠的智能化服務(wù)架構(gòu)。
2.更高效、實(shí)時(shí)和精準(zhǔn)的監(jiān)控能力:隨著 云原生 概念在開(kāi)發(fā)者和企業(yè)中的逐漸流行,對(duì)于可觀測(cè)性的追求也變得日益重要。傳統(tǒng)的監(jiān)控方式涉及侵入性修改和主動(dòng)上報(bào),不僅消耗業(yè)務(wù)資源,而且難以達(dá)到實(shí)時(shí)監(jiān)控的要求。然而,隨著新技術(shù)如eBPF等的崛起,監(jiān)控領(lǐng)域也將迎來(lái)革命性進(jìn)步。未來(lái)監(jiān)控能力將朝著更高效、實(shí)時(shí)和精準(zhǔn)的方向演進(jìn),為云原生應(yīng)用提供更精準(zhǔn)的數(shù)據(jù)和更快速的響應(yīng)能力,助力企業(yè)實(shí)現(xiàn)更高水平的性能優(yōu)化和故障排除。這一趨勢(shì)將推動(dòng)監(jiān)控技術(shù)邁向全新的發(fā)展階段,為行業(yè)帶來(lái)更為智能和高效的監(jiān)控解決方案。
在不斷探索和創(chuàng)新中,Serverless 和可觀測(cè)性技術(shù)的結(jié)合將進(jìn)一步提升云計(jì)算中的監(jiān)控能力,為企業(yè)構(gòu)建更強(qiáng)大、高效的 Serverless 應(yīng)用提供了保障,為云計(jì)算技術(shù)帶來(lái)更多可能性。