Serverless 可觀測(cè)性的過(guò)去、現(xiàn)在與未來(lái)

背景
1. Serverless 將成為下一個(gè)十年云的默認(rèn)編程范式
更多案例請(qǐng)參考函數(shù)計(jì)算用戶(hù)案例。
廣告時(shí)間:歡迎加入云原生Serverless 團(tuán)隊(duì)(函數(shù)計(jì)算,Serverless工作流,Serverless應(yīng)用引擎),以公共云、集團(tuán)、開(kāi)源社區(qū)三位一體的方式打造業(yè)界領(lǐng)先的Serverless 產(chǎn)品體系。職位需求見(jiàn)JD,招聘長(zhǎng)期有效,有興趣的同學(xué)可以發(fā)送簡(jiǎn)歷至 [email protected]。
2. 可觀測(cè)性成為 Serverless 發(fā)展的絆腳石?
組件分布化:Serverless 架構(gòu)的應(yīng)用往往粘合多個(gè)云服務(wù),請(qǐng)求需要流經(jīng)多款云產(chǎn)品,一旦端到端延時(shí)變長(zhǎng)或表現(xiàn)不符合預(yù)期,問(wèn)題定位十分復(fù)雜,需要依次去各個(gè)產(chǎn)品側(cè)逐步排查。
調(diào)度黑盒化:Serverless 平臺(tái)承擔(dān)著請(qǐng)求調(diào)度、資源分配的責(zé)任,實(shí)時(shí)彈性擴(kuò)容會(huì)帶來(lái)不可避免的冷啟動(dòng),Serverless 的資源伸縮是無(wú)需開(kāi)發(fā)者參與也不受開(kāi)發(fā)者控制的。冷啟動(dòng)會(huì)影響端對(duì)端延時(shí),這次請(qǐng)求有沒(méi)有遇到冷啟動(dòng),冷啟動(dòng)的時(shí)間都消耗在哪些步驟,有沒(méi)有可優(yōu)化的空間都是開(kāi)發(fā)者急于知道的問(wèn)題。
執(zhí)行環(huán)境黑盒化:開(kāi)發(fā)者習(xí)慣于在自己的機(jī)器上執(zhí)行自己的代碼,出了問(wèn)題登錄機(jī)器查看異常現(xiàn)場(chǎng),查看執(zhí)行環(huán)境的 CPU/內(nèi)存/IO 情況。面對(duì) Serverless 應(yīng)用,機(jī)器不是自己的,登也登不上,看也看不了,開(kāi)發(fā)者眼前一片漆黑。
產(chǎn)品非標(biāo)化:在 Serverless 場(chǎng)景下,開(kāi)發(fā)者無(wú)法控制執(zhí)行環(huán)境,無(wú)法安裝探針,無(wú)法使用開(kāi)源的三方監(jiān)控平臺(tái),調(diào)查問(wèn)題的方式不得不發(fā)生改變,傳統(tǒng)的調(diào)查問(wèn)題經(jīng)驗(yàn)無(wú)法施展,非常不順手。
Serverless 下可觀測(cè)性
可觀測(cè)性是通過(guò)外部表現(xiàn)判斷系統(tǒng)內(nèi)部狀態(tài)的衡量方式。
--維基百科
1. 可觀測(cè)性 1.0
函數(shù)日志
基本指標(biāo)
函數(shù)日志和指標(biāo)使用詳細(xì)信息請(qǐng)參考配置并查看函數(shù)日志/監(jiān)控指標(biāo)。
2. 可觀測(cè)性 2.0 - 云原生的可觀測(cè)

為了回答請(qǐng)求在函數(shù)計(jì)算的生命歷程,串聯(lián)分布式系統(tǒng)的上下游服務(wù),擁抱開(kāi)源可觀測(cè)能力,我們集成了 OpenTracing,支持鏈路追蹤。
為了暴露系統(tǒng)狀態(tài),提供應(yīng)用級(jí)別監(jiān)控,我們集成了 ARMS(Java),內(nèi)置了 APM 能力。
為了加快端到端定位問(wèn)題的速度,我們支持了請(qǐng)求級(jí)別指標(biāo)(FCInsights),發(fā)布了監(jiān)控中心,問(wèn)題發(fā)現(xiàn)/調(diào)查一站式解決。
為了兼容開(kāi)發(fā)者已有的用戶(hù)體驗(yàn),我們擁抱開(kāi)源,集成 OpenTracing,支持 Grafana Dashboard;我們支持三方監(jiān)控平臺(tái),實(shí)現(xiàn)代碼幾乎零改造接入APM 監(jiān)控系統(tǒng)。
為了兼容傳統(tǒng)開(kāi)發(fā)者的可觀測(cè)體驗(yàn),支持探針安裝,我們拓展了編程模型,支持函數(shù) LifeCycle,為集成三方監(jiān)控提供可能。

1)集成 OpenTracing,支持鏈路追蹤
擁抱開(kāi)源:完全兼容 OpenTracing 協(xié)議,沒(méi)有附加學(xué)習(xí)成本。
主動(dòng)記錄:上報(bào)請(qǐng)求在函數(shù)計(jì)算中消耗的端對(duì)端時(shí)間。
調(diào)度透明:暴露代碼準(zhǔn)備時(shí)間與實(shí)例啟動(dòng)時(shí)間,是首個(gè)暴露冷啟動(dòng)延時(shí)與具體時(shí)間消耗的 FaaS 產(chǎn)品。
承上啟下:串起上下游應(yīng)用,既可以通過(guò) span context 與上游應(yīng)用連接,又將 span context 傳入函數(shù),連接下游服務(wù)。


2)集成 ARMS,內(nèi)置 APM 能力

3)發(fā)布監(jiān)控中心(Insights),問(wèn)題發(fā)現(xiàn)調(diào)查一站式解決
多維度:支持 Region、Service、Function、Qualifier、Request 多維度的指標(biāo),展示各個(gè)維度下的調(diào)用數(shù)和錯(cuò)誤分布。
多層次:集成 Metrics、Logs、Tracing 的能力,全方位多層次對(duì)應(yīng)用進(jìn)行監(jiān)控。
全鏈路:結(jié)合指標(biāo)、日志、鏈路等信息,層層遞進(jìn),抽絲剝繭,真正做到可以在一個(gè)站點(diǎn)發(fā)現(xiàn)問(wèn)題,定位問(wèn)題并解決問(wèn)題。

4)擴(kuò)展編程模型,集成三方監(jiān)控


3. 總結(jié)
未來(lái)規(guī)劃
完善監(jiān)控中心,支持報(bào)警配置,預(yù)警異常指標(biāo)。
提供實(shí)例級(jí)別指標(biāo),做到代碼問(wèn)題可定位,環(huán)境現(xiàn)場(chǎng)可追溯。
集成開(kāi)源項(xiàng)目,集成 Prometheus,Opentelemetry,配置 Grafana 大盤(pán)。
豐富指標(biāo)內(nèi)容,目前還有一些指標(biāo)是不好透出的,沒(méi)有暴露的,我們要逐步都暴露出來(lái)。
······
Serverless 電子書(shū)下載

本書(shū)亮點(diǎn):
從架構(gòu)演進(jìn)開(kāi)始,介紹 Serverless 架構(gòu)及技術(shù)選型構(gòu)建 Serverless 思維; 了解業(yè)界流行的 Serverless 架構(gòu)運(yùn)行原理; 掌握 10 大 Serverless 真實(shí)落地案例,活學(xué)活用。
???? 點(diǎn)擊“閱讀原文”,立即下載!
