日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

EdgeRoutine技术专家教你把JS代码跑到CDN边缘

發(fā)布時間:2024/8/23 javascript 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 EdgeRoutine技术专家教你把JS代码跑到CDN边缘 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

4月27日CDN云課堂中,阿里云智能技術(shù)專家洪曉龍在線分享《阿里云CDN輕量編程環(huán)境》,對EdgeRoutine的背景、功能、案例實踐介紹并在線進行上手操作演示,希望更多用戶能夠使用CDN輕量編程環(huán)境服務自主編程、快速落地實際線上業(yè)務。本文為直播分享全文。

云原生與邊緣計算概念火熱

以云原生為理念的基礎服務快速增長

近年來,“云原生”概念在技術(shù)領(lǐng)域大熱,企業(yè)上云意愿越來越強烈。不管在國內(nèi)還是全球,云原生技術(shù)在公共云和私有云的使用量一路領(lǐng)先增長,Gartner等多家行業(yè)機構(gòu)已經(jīng)預測云原生即將進入爆發(fā)階段。

而同屬云原生陣營, Serverless&FaaS年增長率這一點上已經(jīng)逐漸趕上甚至超過以容器形態(tài)提供服務的使用量。Serverless&FaaS已經(jīng)證明了其擁有巨大的技術(shù)優(yōu)勢和商業(yè)價值潛力。

5G引爆邊緣計算的概念

除了“云原生”,“邊緣計算”也是近年來最熱門的技術(shù)領(lǐng)域之一。CDN其實就是邊緣生態(tài)的重要一環(huán),在CDN遍布全球的邊緣節(jié)點上提供計算服務是目前“邊緣計算”概念快速落地的最大助力。邊緣計算的最大特性低時延,Gartner甚至預測到2025年,超過75%的云服務將外遷到邊緣。目前,邊緣計算的應用場景已經(jīng)陸續(xù)覆蓋到交通、醫(yī)療、娛樂等各行業(yè)各領(lǐng)域,離大眾生活越來越近。

云原生和邊緣計算的組合碰撞能夠催生出什么樣的技術(shù)和產(chǎn)品?

傳統(tǒng)的IaaS是抽象物理機資源來提供服務,如虛擬機ECS、彈性容器ECI,再到更上層的Serverless和FaaS服務形態(tài),整個服務邊界一直在上移,資源隔離開銷越來越小,給云的客戶帶來更靈活的按需付費和彈性伸縮能力。阿里云CDN在全球部署了超過2800個邊緣節(jié)點,兼具了“云原生”和“邊緣計算”兩大最熱門的技術(shù)理念和業(yè)務場景,當真正將Serverless落地到邊緣,將給客戶帶來什么樣的技術(shù)和產(chǎn)品服務?

這就是今天洪曉龍為大家介紹的產(chǎn)品:阿里云CDN輕量編程環(huán)境-EdgeRoutine。

顧名思義它是一個邊緣程序,屬于邊緣Serverless服務范疇,主要特性是超低時延、按需付費和無需運維。

從物理機走向云原生,我們可以在多個能力矩陣上作對比:在延遲方面,數(shù)據(jù)中心的網(wǎng)絡帶寬和地域限制決定了它的平均時延會比較高,Serverless更輕量遷移成本更低,在region選擇時相對可以做到中延時,而依賴邊緣節(jié)點能力的邊緣Serverless則可以實現(xiàn)更低的延時;在計算能力方面,因為邊緣節(jié)點資源有限,提供的更多是輕量級計算服務,對比更下層的容器、虛擬機、物理機等,資源隔離開銷更小,彈性能力更強;在成本方面,從物理機、虛擬機、彈性容器到Serverless,價格越來越低,而邊緣Serverless基于CDN資源復用的場景,它的價格將做到更低,滿足業(yè)務對于邊緣節(jié)點的總體規(guī)劃和預期。

因為EdgeRoutine(ER) 是依托于阿里云CDN去提供服務的,所以它的很大的一個優(yōu)勢是覆蓋了全球6大洲70多個國家,基本上在全球做到了所有邊緣節(jié)點的覆蓋。

阿里云CDN輕量編程環(huán)境-EdgeRoutine是什么?

EdgeRoutine(ER) 是阿里云CDN團隊開發(fā)的邊緣Serverless計算環(huán)境,支持在CDN邊緣執(zhí)行客戶編寫/編譯的JavaScript或者WebAssembly代碼(未來會推出)。客戶無需關(guān)心實際機器、部署region、調(diào)度和伸縮性。一經(jīng)上傳,全球部署,全球執(zhí)行!EdgeRoutine主要具有以下四個特征:

一、輕量級

? 簡單代碼片段
? 單個文件最大1M,當項目比較復雜時候,支持webpack打包生成JS文件再上傳
? 支持多種事件觸發(fā),fetch、chrome、set

二、延遲低

? 冷啟動5-10ms,當代碼在全球已經(jīng)部署完成之后,客戶請求進來縮短冷啟動時間,直接提供服務
? 邊緣部署,就近接入
? 代碼check完成之后,下發(fā)到全球秒級生效,修改配置秒級刷新
? DCDN全站加速幫助客戶回源加速

三、限制高

? 內(nèi)存128M、CPU時間5ms,5ms可以支持絕大部分客戶的業(yè)務,隨著計算復雜度升高可付費升級,動態(tài)可配
? 因為是輕量級針對網(wǎng)絡帶寬流量為主,對文件、進程、Socket進行了限制,網(wǎng)絡限于HTTP/HTTPS
? 敏感信息不建議放入,后續(xù)將支持邊緣KV/cache讓客戶能實現(xiàn)計算、存儲等業(yè)務場景

四、功能靈活

? 提供完整JavaScript環(huán)境,支持ES6語法
? Web標準Service Worker API支持,前端應用無需更改即可適配
? 與CDN融合,可配置擴展任意CDN邏輯,做到CDN可編程

EdgeRoutine的技術(shù)原理

很多了解CDN的人都知道CDN是一個多級緩存的架構(gòu),CDN加速靜態(tài)資源時,將源站上的資源緩存到距離客戶端最近的CDN節(jié)點上。當您訪問該靜態(tài)資源時,直接從緩存中獲取,避免通過較長的鏈路回源,提高訪問效率。且阿里云CDN支持多級緩存架構(gòu)(默認為兩級),可以有效提高資源命中率,大大減少回源請求數(shù)量。

EdgeRoutine(ER) 是依托阿里云CDN這套多級緩存架構(gòu),處在邊緣節(jié)點這樣一個位置,和邊緣網(wǎng)關(guān)邊緣緩存都處在同一層,它是一個獨立的組件,提供了一個獨立的JS runtime。

當邊緣環(huán)境、邊緣網(wǎng)關(guān)收到客戶請求之后,它可以智能識別,如果客戶配置了邊緣代碼,邊緣網(wǎng)關(guān)會將這個請求直接透明代理到EdgeRoutine(ER)。EdgeRoutine(ER)完全接管這個請求去執(zhí)行客戶部署的邊緣代碼,實際上是客戶用邊緣代碼去直接接管了請求的生命周期。

在請求的生命周期里面,支持去執(zhí)行一些輕量級的計算,同時依然可以使用CDN相關(guān)的業(yè)務功能,在函數(shù)中利用cdnproxy:true這樣的參數(shù)去將請求代理給邊緣網(wǎng)關(guān),然后再走CDN多級緩存架構(gòu),同樣可以利用到CDN高命中率的這個特點。

EdgeRoutine(ER)其實也是支持Serverless或者再重新發(fā)起一個fetch請求,這個fetch請求和主請求無關(guān),完全是在代碼里由客戶生成的子請求,子請求可以直接訪問其它任意互聯(lián)網(wǎng)域名,也可以繼續(xù)使用cdnproxy代理到阿里云CDN。如果中小站長,僅僅是簡單的靜態(tài)頁面的話,完全可以直接托管在邊緣,不再需要購買額外云服務,既可以享受Serverless的便利,也可以享受CDN的邊緣內(nèi)容分發(fā)優(yōu)勢。

EdgeRoutine適用場景

第一個場景是針對CDN本身提供的一些功能:包括攔截請求、限流限速、內(nèi)容生成、多源合并、異步鑒權(quán)等等,這些完全是可以通過EdgeRoutine(ER) 自主編程實現(xiàn),代碼基本上可以隨時隨地的去進行更改測試、灰度發(fā)布、上線,EdgeRoutine(ER)將CDN相關(guān)功能可編程化,無論大型企業(yè)還是中小企業(yè),都可以自由定制組合,無需提工單提需求,作為開發(fā)者幫助業(yè)務快速實現(xiàn)落地;

第二個場景針對前端網(wǎng)頁這一塊,支持web API、網(wǎng)頁加速、HTML解析、ESI、邊緣渲染、邊緣SSR等,然后當然也可以實現(xiàn)一個簡單的邊緣API網(wǎng)關(guān)去實現(xiàn)業(yè)務中轉(zhuǎn)。前端是EdgeRoutine(ER)一個非常創(chuàng)新的場景,前端同學往往非常關(guān)注網(wǎng)頁如何優(yōu)化渲染和提高終端客戶體驗,前端技術(shù)也是近些年變革最快創(chuàng)新不斷的領(lǐng)域,CDN的靜態(tài)內(nèi)容分發(fā)技術(shù)針對css、js、圖片、視頻等各類靜態(tài)資源的加速也正是基于前端體驗不斷的追求而持續(xù)迭代的。EdgeRoutine(ER)為前端優(yōu)化在端和云之間開辟了一個新的方向-“邊”(邊緣),云邊端協(xié)同,為瀏覽器/APP客戶端減壓,在邊緣上實現(xiàn)部分前端業(yè)務和輕量計算,可以是“微前端”概念的一個探索方向;

第三個場景,當在寫代碼或者發(fā)版的時候,可以通過一個AB測試的這樣的功能灰度發(fā)布灰度上線,增加穩(wěn)定性的同時也可以逐步的去觀察自己新功能的受眾率和期望轉(zhuǎn)化率,實現(xiàn)逐步優(yōu)化或及時調(diào)頭。比如:通過代碼中使用Geo地域信息,CDN完全支持在國家/省市/區(qū)縣等更細粒度如浙江區(qū)域或者廣東區(qū)域去灰度不同的功能;

第四個場景,IoT的設備網(wǎng)關(guān)在進行數(shù)據(jù)生成之后,期望把這些數(shù)據(jù)分析后記錄到中心,可能需要一些簡單的邊緣合并、分析,再把匯總好的數(shù)據(jù),回傳回中心,邊緣可以在端的基礎上再加一層收集分析匯總,將海量數(shù)據(jù)的流式/離線計算壓力分散到邊緣節(jié)點,保障低時延的同時可以有效減輕端和源站壓力。

除此之外還有網(wǎng)站托管、小程序等,可以參考下面的大圖:

開發(fā)者能用EdgeRoutine(ER)做什么事情?

接下來用幾個案例進行說明開發(fā)者可以基于ER做一些什么典型的事情。

第一,網(wǎng)頁加速

當2G、3G的時候,大家可能都有過這種體驗:打開一個網(wǎng)頁不停的轉(zhuǎn)圈,等待的時間非常煩惱。4G來了之后這種情況會少一些,5G會更好。
CDN核心價值其實就是幫助實現(xiàn)網(wǎng)頁靜態(tài)加速,縮短這種轉(zhuǎn)圈等待的過程,通過網(wǎng)頁資源靜態(tài)的就近分發(fā),去幫助終端用戶更快的觸達到對應的資源,更快地訪問對應的網(wǎng)頁、圖片、視頻等等。

但當涉及到一些動態(tài)資源,單純的靜態(tài)分發(fā)是無法解決這部分請求的時延問題的。舉個實例,像阿里巴巴國際站,他更多的是海外的服務,源站在海外受眾在國內(nèi),或者與之相反,這種網(wǎng)絡鏈路顯而易見就會比較差,造成終端用戶等待時間長體驗極差。

下圖上半部分是常規(guī)的渲染效果,當一秒鐘的時候頁面仍顯示白框,下一秒的時候可能一下彈出來很多內(nèi)容。因為網(wǎng)頁是在服務端一次性渲染出來再傳輸?shù)娇蛻舳说?#xff0c;甚至對于一些子資源如圖片,都是需要前端JS多次發(fā)起網(wǎng)絡請求,當客戶端收到所有資源之后,才渲染出完整的頁面。

那秒級的等待體驗好不好呢?

如果使用了EdgeRoutine(ER) ,那是否可以在邊緣上去動態(tài)渲染?回答是Yes。

在EdgeRoutine(ER)的幫助下, 前端的業(yè)務邏輯也可以實現(xiàn)流式,如流水線般提高業(yè)務效率,一般會選擇優(yōu)先渲染頁面框架,再逐步渲染一些靜態(tài)的資源,整個過程客戶端只發(fā)起一次網(wǎng)絡請求,所有的內(nèi)容都是在邊緣渲染拼裝,流式輸出,包括所有的圖片、視頻資源,甚至可以在邊緣實現(xiàn)異步模式,并發(fā)地去請求各類資源。在整個邊緣渲染過程中,參考上圖下半部分,在0.3秒的時候還是一個白框,當不到0.4秒時,整體頁面框架已經(jīng)出來,然后是文字介紹和價格部分,當一秒鐘不到,除了圖片之外的其他簡單數(shù)據(jù)其實都已經(jīng)顯現(xiàn),最重的圖片資源留在最后逐步加載。

從上圖的TTFB和Download來對比,整體的首屏時間、下載時間都得到了極大的提升。邊緣渲染、邊緣SSR都是ER提供的創(chuàng)新場景,只有在邊緣低時延模式下,才可以實現(xiàn)和瀏覽器本地優(yōu)化相似的效果,且還可以利用CDN同時完成靜態(tài)內(nèi)容加速。

第二,邊緣執(zhí)行業(yè)務計算,降低源站壓力

終端發(fā)達的今天,手機移動端、瀏覽器端不可避免仍會包含一些簡單或復雜的業(yè)務計算,比如輸入的會員賬號密碼就必須回源做校驗,這種動態(tài)的計算邏輯要回到云上的服務器才可以,這個過程QPS量級和時延都比較高,源站服務器壓力也很大。

那在邊緣執(zhí)行計算是不是可以優(yōu)化這種情況呢?

剛說到的動態(tài)的鑒權(quán),如果直接在邊緣環(huán)境里面直接去做校驗,同樣可以校驗內(nèi)容是否正確,就不需要回源,減少Q(mào)PS,而且利用邊緣特性實現(xiàn)了超低時延的優(yōu)點。甚至當有部分業(yè)務依賴動態(tài)數(shù)據(jù)和靜態(tài)資源做拼裝組合,比如AB、小程序模板等,都可以直接依托CDN去做緩存。

第三,邊緣Serverless

如果企業(yè)擁有一個爆款APP,當幾億iOS、Android各種各樣的設備同時在線,那開發(fā)者一定有此類需求:海量在線設備要做采樣打點,多版本的灰度升級,AB測試觀察新版本功能的效果或轉(zhuǎn)化率。如果幾億設備全部打點回源,那源站QPS肯定是扛不住的,一般情況只會選擇3%或5%的樣本率隨機去打點觀察。

當使用EdgeRoutine(ER)邊緣服務,可以將海量設備的QPS分散到遍布全國甚至全球的CDN節(jié)點,QPS的壓力已經(jīng)不是問題,甚至可以簡單分析匯總后再將數(shù)據(jù)回傳到企業(yè)數(shù)據(jù)中心,方便業(yè)務回溯。

另外,現(xiàn)在很多電商網(wǎng)站都在做千人千面,如果通過回源去實現(xiàn)的話,整個成本會非常高,在邊緣上直接通過用戶地域信息推薦相應內(nèi)容,就不再需要通過源站服務來做決策,直接在邊緣將人和資源做匹配即可。

如何使用EdgeRoutine(ER)?——實操演示(點擊直接觀看視頻)

基于以上的功能介紹和案例實踐,如何通過EdgeRoutine(ER) 去編寫邊緣代碼,如何上傳部署,如何本地調(diào)試和在線測試?阿里云技術(shù)專家洪曉龍在直播中也做了相關(guān)演示。

EdgeRoutine(ER)推出了命令行相關(guān)工具edgeroutine-cli,開發(fā)者可以直接在Windows/Mac/Linux本地環(huán)境進行代碼調(diào)試,上傳代碼,也可以完成灰度測試,灰度上線。具體查看阿里云官網(wǎng)或者開源頁面:https://help.aliyun.com/document_detail/154621.html
https://github.com/aliyun/alibabacloud-edgeroutine-cli
https://www.npmjs.com/package/@alicloud/edgeroutine-cli

具體實操演示:

1、EdgeRoutine demo:Hello World

2、EdgeRoutine demo:Hello World本地調(diào)試

3、EdgeRoutine demo:webpack打包

關(guān)鍵信息:

點擊觀看直播回放:https://yq.aliyun.com/live/2690

點擊了解EdgeRoutine(ER)詳情:https://www.aliyun.com/activity/cdn/edgeroutine

目前EdgeRoutine(ER)處于邀測階段,掃碼申請試用

原文鏈接
本文為云棲社區(qū)原創(chuàng)內(nèi)容,未經(jīng)允許不得轉(zhuǎn)載。

創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎勵來咯,堅持創(chuàng)作打卡瓜分現(xiàn)金大獎

總結(jié)

以上是生活随笔為你收集整理的EdgeRoutine技术专家教你把JS代码跑到CDN边缘的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。