<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

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

          共 5432字,需瀏覽 11分鐘

           ·

          2021-04-02 16:15

          作者 | 孔德慧(夏莞)


          背景



          1. Serverless 將成為下一個(gè)十年云的默認(rèn)編程范式


          隨著 Serverless 概念的進(jìn)一步普及,開(kāi)發(fā)者逐漸從觀望狀態(tài)進(jìn)入嘗試階段,越來(lái)越多的企業(yè)用戶(hù)開(kāi)始將業(yè)務(wù)遷移到 Serverless 平臺(tái)。在阿里集團(tuán)內(nèi)部,淘寶、飛豬、閑魚(yú)、高德、語(yǔ)雀等核心功能穩(wěn)步落地,在阿里集團(tuán)外部,新浪微博、世紀(jì)聯(lián)華、石墨文檔、TPLink、藍(lán)墨云班課等各行各業(yè)的企業(yè)也紛紛解鎖 Serverless 使用的不同場(chǎng)景。Serverless 正在成為成為下一個(gè)十年云的默認(rèn)編程范式。

          更多案例請(qǐng)參考函數(shù)計(jì)算用戶(hù)案例。

           
          Serverless 降本增效免運(yùn)維的特性為開(kāi)發(fā)者帶來(lái)了實(shí)打?qū)嵉暮锰帲夯诤瘮?shù)計(jì)算的 Serverless 方案為藍(lán)墨節(jié)省了 60% 左右的 IT 成本,為石墨文檔節(jié)約了 58% 的服務(wù)器成本;提升碼隆科技的開(kāi)發(fā)效率,實(shí)現(xiàn)兩周內(nèi)功能上線;平穩(wěn)支撐負(fù)載的波峰波谷相差 5 倍以上的新浪微博,每天輕松處理數(shù)十億請(qǐng)求。
           

          廣告時(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 的深入使用,開(kāi)發(fā)者逐漸發(fā)現(xiàn) Serverless 架構(gòu)下的問(wèn)題定位比傳統(tǒng)應(yīng)用更加困難,主要原因如下:
           
          • 組件分布化: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ú)法施展,非常不順手。


          函數(shù)計(jì)算是阿里云的 Serverless 產(chǎn)品,在過(guò)去的一年,函數(shù)計(jì)算團(tuán)隊(duì)為了更好地回答以上問(wèn)題做了很多努力。

          本文主要介紹函數(shù)計(jì)算在可觀測(cè)性上的嘗試與函數(shù)計(jì)算可觀測(cè)性現(xiàn)狀。


          Serverless 下可觀測(cè)性



          可觀測(cè)性是通過(guò)外部表現(xiàn)判斷系統(tǒng)內(nèi)部狀態(tài)的衡量方式。 

          --維基百科


          在應(yīng)用開(kāi)發(fā)中,可觀測(cè)性幫助我們判斷系統(tǒng)內(nèi)部的健康狀況。在系統(tǒng)平穩(wěn)運(yùn)行時(shí),幫助我們?cè)u(píng)估風(fēng)險(xiǎn),預(yù)測(cè)可能出現(xiàn)的問(wèn)題。當(dāng)系統(tǒng)出現(xiàn)問(wèn)題時(shí),幫助我們快速定位問(wèn)題,及時(shí)止損。

          一個(gè)好的可觀測(cè)性系統(tǒng)要幫助用戶(hù)盡可能快地發(fā)現(xiàn)問(wèn)題、定位問(wèn)題并且端到端地解決問(wèn)題。

          在 Serverless 這種免運(yùn)維的平臺(tái)體系中,可觀測(cè)性是開(kāi)發(fā)者的眼睛,沒(méi)有可觀測(cè),何談高可用?

          1. 可觀測(cè)性 1.0


          1 - 可觀測(cè)性基礎(chǔ)
           
          可觀測(cè)性主要包含三個(gè)部分:日志、指標(biāo)、鏈路追蹤。

          和幾乎所有 FaaS 產(chǎn)品一樣,函數(shù)計(jì)算(FC)在商業(yè)化之初就支持了函數(shù)日志和指標(biāo)的查看。
           
          • 函數(shù)日志


          用戶(hù)在 FC 配置 SLS 的 Project 和 Logstore,F(xiàn)C 將函數(shù)打到 stdout 的日志轉(zhuǎn)存到用戶(hù)的 Logstore 中。用戶(hù)可以通過(guò) SLS 控制臺(tái)查看函數(shù)日志,并借助 SLS 的能力對(duì)日志進(jìn)行分析和聚合。

          • 基本指標(biāo)


          FC 將指標(biāo)日志推送到云監(jiān)控,通過(guò)云監(jiān)控提供函數(shù)調(diào)用數(shù)/錯(cuò)誤數(shù)/函數(shù)延時(shí)/函數(shù)內(nèi)存等基本指標(biāo)。
           
          函數(shù)日志和基本指標(biāo)是應(yīng)用的聽(tīng)診器,雖然樸素簡(jiǎn)陋,卻也能幫助用戶(hù)發(fā)現(xiàn)問(wèn)題,定位問(wèn)題。

          即使出現(xiàn)開(kāi)發(fā)者無(wú)法排查的問(wèn)題,在用戶(hù)量不那么大的年代,開(kāi)發(fā)同學(xué)可以為用戶(hù)提供貼身服務(wù),結(jié)合后臺(tái)日志幫用戶(hù)定位問(wèn)題。
           

          函數(shù)日志和指標(biāo)使用詳細(xì)信息請(qǐng)參考配置并查看函數(shù)日志/監(jiān)控指標(biāo)。


          2. 可觀測(cè)性 2.0 - 云原生的可觀測(cè)


          隨著 Serverless 的發(fā)展,越來(lái)越多的場(chǎng)景在 Serverless 落地,使用規(guī)模越來(lái)越大,產(chǎn)品架構(gòu)越來(lái)越復(fù)雜,應(yīng)用聽(tīng)診器的可觀測(cè)性 1.0 已經(jīng)不能滿(mǎn)足各行各業(yè)開(kāi)發(fā)者的監(jiān)控訴求。這種近乎黑盒的執(zhí)行環(huán)境給開(kāi)發(fā)者帶來(lái)了強(qiáng)烈的距離感與不信任感。開(kāi)發(fā)者需要掌控自己的應(yīng)用,想要知道每一個(gè)請(qǐng)求在函數(shù)計(jì)算經(jīng)歷了怎樣的歷程,想要看看端到端的延時(shí)長(zhǎng)是不是因?yàn)槔鋯?dòng),想要查看函數(shù)實(shí)例的執(zhí)行環(huán)境,想要在請(qǐng)求出現(xiàn)異常時(shí)第一時(shí)間定位問(wèn)題,想要復(fù)用熟悉的開(kāi)源觀測(cè)平臺(tái)。
           
          在面對(duì)這些需求時(shí),團(tuán)隊(duì)內(nèi)部也經(jīng)過(guò)了長(zhǎng)時(shí)間的激烈討論,一部分同學(xué)認(rèn)為我們應(yīng)該支持這些需求,另一部分同學(xué)則認(rèn)為這些需求某種程度上與 Serverless 本質(zhì)相違背,Serverless 就是要屏蔽底層的計(jì)算資源,用戶(hù)不需要關(guān)心底層計(jì)算資源的情況。另一方面我們暴露了這些指標(biāo)有什么用呢,用戶(hù)就算看到了有冷啟動(dòng),看到了系統(tǒng)時(shí)間消耗,看到了底層實(shí)例的 CPU,用戶(hù)又不能有任何實(shí)質(zhì)操作,這些指標(biāo)真的意義嗎?這兩種觀點(diǎn)爭(zhēng)論不休,而我,是堅(jiān)定的反對(duì)者。

          后來(lái)團(tuán)隊(duì)搬到了 EFC,每天都要等待著那不知什么時(shí)候會(huì)來(lái)的電梯(輸入你要去的樓層,去對(duì)應(yīng)的電梯安靜地等待,看不到電梯目前所在樓層),電梯告訴我們,你就在這里等哦,我肯定會(huì)來(lái)的,但是我現(xiàn)在到了哪層,我什么時(shí)候下來(lái)你大可不必知道,你知道了也沒(méi)用,我的這個(gè)調(diào)度肯定是最優(yōu)的,你要相信專(zhuān)業(yè)電梯的調(diào)度算法??墒?,我怎么能相信你呢?

          于開(kāi)發(fā)者而言,函數(shù)計(jì)算也是那不知什么時(shí)候會(huì)來(lái)的電梯吧,我們和開(kāi)發(fā)者說(shuō)您的請(qǐng)求我們一定會(huì)穩(wěn)定執(zhí)行的,您的執(zhí)行環(huán)境一定很健康,請(qǐng)求過(guò)多我們會(huì)自動(dòng)擴(kuò)容的,但是當(dāng)前實(shí)例的監(jiān)控指標(biāo),我什么時(shí)候擴(kuò)容您大可不必知道,我們的調(diào)度肯定是最優(yōu)的,您要相信專(zhuān)業(yè)研發(fā)團(tuán)隊(duì)的調(diào)度算法。同樣的,開(kāi)發(fā)者又怎么相信我們呢?

          Serverless 的可觀測(cè)性不單單要幫助開(kāi)發(fā)者排查問(wèn)題,也要逐步揭開(kāi) Serverless 那層神秘的面紗,贏取開(kāi)發(fā)者對(duì) Serverless 的信任。

          于是有了函數(shù)計(jì)算可觀測(cè)性 2.0,我們希望可觀測(cè)性 2.0 可以成為應(yīng)用的心電圖。


          圖 2 - 函數(shù)計(jì)算可觀測(cè)性現(xiàn)狀
           
          • 為了回答請(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)控提供可能。


          圖 3 - 函數(shù)計(jì)算兼容開(kāi)源可觀測(cè)能力
           
          相比于自己發(fā)明創(chuàng)造 FaaS 可觀測(cè)性新體驗(yàn),函數(shù)計(jì)算兼容開(kāi)源可觀測(cè)能力,集成 Jaeger,支持 Grafana 大盤(pán),也支持以非常小的改動(dòng)接入 New Relic 等優(yōu)秀三方監(jiān)控平臺(tái)。函數(shù)計(jì)算是首家兼容開(kāi)源、擁抱容器生態(tài)和云原生開(kāi)發(fā)者的 FaaS 提供商,可觀測(cè)體驗(yàn)的平滑遷移支撐應(yīng)用在容器和 Serverless 平臺(tái)的平滑遷移

          1)集成 OpenTracing,支持鏈路追蹤


          FC 與鏈路追蹤服務(wù)集成,為開(kāi)發(fā)者提供了完整的調(diào)用鏈路還原、調(diào)用量統(tǒng)計(jì)、鏈路拓?fù)浞治?、冷啟?dòng)定位等工具。幫助開(kāi)發(fā)者快速分析和診斷分布式架構(gòu)下的性能瓶頸。

          FC 鏈路追蹤具有以下特點(diǎn):

          • 擁抱開(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ù)。


          圖 4 - 鏈路追蹤鏈路示例

          圖 5 - 鏈路追蹤綜合能力詳情

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


          FC 無(wú)縫對(duì)接 ARMS 應(yīng)用監(jiān)控,開(kāi)發(fā)者只需為函數(shù)新增一個(gè)環(huán)境變量即可開(kāi)啟 APM 應(yīng)用監(jiān)控功能,ARMS 探針以對(duì)代碼無(wú)入侵的方式監(jiān)測(cè)應(yīng)用性能,提供應(yīng)用級(jí)別的可觀測(cè)性,包括函數(shù)實(shí)例的 CPU、內(nèi)存指標(biāo)、Java 虛擬機(jī)指標(biāo)、代碼 Profiling 信息、SQL 查詢(xún)等函數(shù)實(shí)例的指標(biāo)。


          圖 6 - ARMS 示例

          3)發(fā)布監(jiān)控中心(Insights),問(wèn)題發(fā)現(xiàn)調(diào)查一站式解決


          FC 支持請(qǐng)求級(jí)別指標(biāo),通過(guò)為用戶(hù)每個(gè)請(qǐng)求多打一條指標(biāo)日志的方式為請(qǐng)求裝上攝像頭。通過(guò)請(qǐng)求級(jí)別指標(biāo),用戶(hù)可以清楚地看到請(qǐng)求的執(zhí)行時(shí)間、使用內(nèi)存,是否異常、錯(cuò)誤類(lèi)型、冷啟動(dòng)情況,traceID 等信息。也可以基于請(qǐng)求級(jí)別指標(biāo)串聯(lián)起所有的可觀測(cè)性能力。

          監(jiān)控中心則是 FC 可觀測(cè)性能力的集大成者,監(jiān)控中心集成了 Metrics、Logs、Tracing的能力,可以在一個(gè)站點(diǎn)完成預(yù)覽指標(biāo)、查看日志、分析鏈路的能力,爭(zhēng)取做到問(wèn)題發(fā)現(xiàn)調(diào)查一站式解決。
           
          監(jiān)控中心具有如下特點(diǎn):
           
          • 多維度:支持 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)題。


          圖 7 - 監(jiān)控中心示例

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


          函數(shù)實(shí)例的生命周期完全由平臺(tái)控制,用戶(hù)無(wú)法控制實(shí)例的啟動(dòng)與回收,也不感知實(shí)例的暫停與重啟,這就使得在函數(shù)計(jì)算上執(zhí)行除主線程外的背景線程格外困難。監(jiān)控探針就是諸多重要的背景線程的一種。
           
          FC 擴(kuò)展了編程模型,發(fā)布 RuntimeLifeCycle 功能,Runtime LifeCycle 會(huì)監(jiān)聽(tīng)函數(shù)實(shí)例生命周期事件,允許函數(shù)實(shí)例在暫停和回收前回調(diào)用戶(hù)的函數(shù)邏輯。這一功能的發(fā)布使 FC 集成三方 APM 監(jiān)控成為可能。用戶(hù)只需要在實(shí)例暫停前將采集的指標(biāo)發(fā)出去、在實(shí)例回收前將內(nèi)存中的數(shù)據(jù)清理掉就可以在 APM 平臺(tái)上實(shí)時(shí)地查看監(jiān)控指標(biāo)了。


          圖 8 - Tingyun APM 示例

          圖 9 - NewRelic APM 示例

          3. 總結(jié)


          函數(shù)計(jì)算可觀測(cè)性經(jīng)歷了 1.0-> 2.0 的發(fā)展,從閉門(mén)造車(chē)的可觀測(cè)發(fā)展成開(kāi)源的可觀測(cè),從平臺(tái)的可觀測(cè)發(fā)展為開(kāi)發(fā)者的可觀測(cè),從 FaaS Only 的可觀測(cè)演進(jìn)成了云原生的可觀測(cè)。

          作為首家兼容開(kāi)源可觀測(cè)、擁抱容器生態(tài)和云原生開(kāi)發(fā)者的 FaaS 提供商,函數(shù)計(jì)算也將更有實(shí)力實(shí)現(xiàn)開(kāi)發(fā)者業(yè)務(wù)的平滑遷移。


          未來(lái)規(guī)劃



          FC 可觀測(cè)性相比于一年前前進(jìn)了一小步,從黑盒的可觀測(cè)演進(jìn)成了微弱燭光的可觀測(cè),但距離 “Serverless 應(yīng)用白盒化” 的目標(biāo)還有著很長(zhǎng)的路要走。我們希望能夠兼容開(kāi)發(fā)者的監(jiān)控體驗(yàn),支撐著用戶(hù)平滑地放心地將業(yè)務(wù)遷到 Serverless 上來(lái)。

          接下來(lái)我們會(huì)繼續(xù)投入做以下事情:
           
          • 完善監(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)。

           

          • ······


          希望函數(shù)計(jì)算的可觀測(cè)性成為一盞燈,照亮每一個(gè) Serverless 應(yīng)用。

          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)擊“閱讀原文”,立即下載!

          瀏覽 36
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  丁香五月无码 | 菠萝视频 | 国产精品视频播放豆花网址 | 国产成人综合久久 | 人人撸人人爱 |