更极速:EdgeRoutine边缘程序
隨著云原生技術(shù)的普及,阿里云可編程CDN能力逐漸增強(qiáng),已經(jīng)實(shí)現(xiàn)在靠近用戶的邊緣,支持將無狀態(tài)的業(yè)務(wù)邏輯以函數(shù)或容器的方式在邊緣完成算力卸載,以此提供最短時(shí)延的交互響應(yīng)。同時(shí),基于阿里云CDN平臺(tái)強(qiáng)大的基礎(chǔ)資源能力和高性能架構(gòu),可以輕松滿足企業(yè)海量的彈性需求。
阿里云CDN具有全球2800+個(gè)節(jié)點(diǎn)的巨大節(jié)點(diǎn)網(wǎng)絡(luò),可以將源站靜態(tài)文件(例如圖片、視頻)緩存起來,全球各地客戶端就近請(qǐng)求CDN節(jié)點(diǎn)即可拿到文件,相比請(qǐng)求服務(wù)器源站肯定是大大縮短了網(wǎng)絡(luò)鏈路降低了延時(shí),同時(shí),還降低了源站壓力,源站不用接收請(qǐng)求,分散到各地的CDN節(jié)點(diǎn)處理了。而現(xiàn)在阿里云CDN除了緩存和分發(fā),更是具備了就近分發(fā)計(jì)算的能力,這就是EdgeRoutine。在1月6日的阿里云CDN年度產(chǎn)品升級(jí)發(fā)布會(huì)中,阿里云高級(jí)產(chǎn)品經(jīng)理陳章煒對(duì)EdgeRoutine進(jìn)行了詳細(xì)解讀。
關(guān)注阿里云Edge Plus公眾號(hào),回復(fù)“新品發(fā)布”,免費(fèi)獲取完整PPT
EdgeRoutine——讓計(jì)算服務(wù)更加靠近你的用戶
EdgeRoutine是一個(gè)運(yùn)行在CDN邊緣節(jié)點(diǎn)上的JavaScript代碼運(yùn)行環(huán)境,用戶可以將JS代碼上傳至EdgeRoutine,即可在全球的CDN邊緣節(jié)點(diǎn)上運(yùn)行,相當(dāng)于用戶在全球各地?fù)碛辛舜罅课⑿头?wù)器去就近地服務(wù)各地的用戶。
下面詳述下EdgeRoutine的工作原理。首先,打開一個(gè)CDN服務(wù)器,其中的請(qǐng)求處理流程是:原來純CDN鏈路對(duì)應(yīng)的1、8、9、4鏈路。客戶端后CDN網(wǎng)關(guān)會(huì)去找緩存,如果找到會(huì)response給客戶端。如果沒有找到,會(huì)回源請(qǐng)求,之后存到CDN緩存并返回給客戶端。
這樣的鏈路在有了EdgeRoutine后會(huì)有什么變化呢?主要有這四種情況:
1.ER內(nèi)JS代碼完成對(duì)請(qǐng)求的計(jì)算&處理,返回給客戶端:1→2→3→4
2.ER發(fā)出子請(qǐng)求從其他云服務(wù)獲取數(shù)據(jù)后加工:1→2→5→3→4
3.ER從Cache、KV讀取或存儲(chǔ)計(jì)算后的結(jié)果用以復(fù)用:1→2→6→3→4
4.ER可主動(dòng)Proxy回CDN回源鏈路: 1→2→7→8→9→10→3→4
EdgeRoutine的適用場景
一、在邊緣圖文頁面渲染
左側(cè)是兩種比較常見的前端渲染的架構(gòu),一種叫CSR,在客戶端去做渲染,一種叫SSR,在服務(wù)器端去做渲染。而這兩種前端渲染了傳統(tǒng)傳統(tǒng)架構(gòu)的話都有一些缺點(diǎn)。比如像第一種全部在客戶端做渲染,需要由客戶端去發(fā)起N個(gè)獨(dú)立請(qǐng)求,去請(qǐng)求中心大資源就在客戶端去渲染成一個(gè)HTML的頁面。這樣的方式是比較考驗(yàn)客戶端性能,同時(shí)因?yàn)榘l(fā)起了多個(gè)異步的請(qǐng)求,這多個(gè)請(qǐng)求的延時(shí)可能就不太可控。第二個(gè)SSR全部在服務(wù)器端做渲染,客戶端只要發(fā)一次請(qǐng)求就可以了,由服務(wù)器端去拉取相應(yīng)資源,最后渲染HTML頁面給到客戶端。相對(duì)于CSR,SSR的中心服務(wù)器壓力比較大,成本較高,同時(shí)在服務(wù)器做渲染的過程當(dāng)中,客戶端需要做等待,可能會(huì)影響用戶體驗(yàn)。
有了EdgeRoutine,在邊緣圖文頁面渲染,可以將SSR從中心服務(wù)器下沉到了邊緣節(jié)點(diǎn)之上,下圖右側(cè),當(dāng)客戶端發(fā)起一個(gè)請(qǐng)求,請(qǐng)求就直接在邊緣上實(shí)現(xiàn)SSR渲染的過程了,好處是不依靠客戶端性能,同時(shí)由于CDN節(jié)點(diǎn)全球的廣泛分布,節(jié)點(diǎn)壓力比較小,還可以獲得更低的延時(shí),另外也能夠減少重復(fù)計(jì)算。
二、店鋪小程序,類似Combo
下圖左側(cè)傳統(tǒng)的架構(gòu)中,當(dāng)客戶端請(qǐng)求過來,服務(wù)器上會(huì)根據(jù)這個(gè)請(qǐng)求去把通用的官方模板以及對(duì)應(yīng)用戶的個(gè)性化三方模板進(jìn)行一個(gè)Combo,Combo成一個(gè)店鋪小程序的整體框架,最后返回給客戶端。其實(shí)和SSR類似的是客戶端需要等待服務(wù)器端的這樣過程,會(huì)影響用戶體驗(yàn)。右側(cè)新方案中,EdgeRoutine將Combo的邏輯放到邊緣節(jié)點(diǎn)上面去進(jìn)行,通用的官方模板可以直接緩存在CDN里面,以此減少回源站請(qǐng)求的耗時(shí),通知部分請(qǐng)求可以直接復(fù)用Combo的結(jié)果,減少重復(fù)的Combo計(jì)算,進(jìn)一步降低延時(shí)。
三、源站健康狀態(tài)檢查
當(dāng)用戶有多個(gè)服務(wù)器源站時(shí),就需要一套操作系統(tǒng)來實(shí)時(shí)、持續(xù)監(jiān)測全球各地來訪問源站的可用性。EdgeRoutine直接運(yùn)行在CDN上,所以EdgeRoutine天然是部署探針服務(wù)的一個(gè)載體,探針代碼在下圖右側(cè)中,直接部署在EdgeRoutine上,實(shí)時(shí)訪問源站的情況,并且收集健康信息并回傳,以此達(dá)到模擬用戶并實(shí)施的監(jiān)測服務(wù)器可用性的目的。
除此之外,EdgeRoutine可以適用于A/Btest、IoT場景數(shù)據(jù)清洗、GEO打點(diǎn),甚至托管個(gè)人站點(diǎn)等各類場景,既具備CDN的彈性調(diào)度、低成本、低延時(shí)特性,同時(shí)兼具Serverless簡單易用的特性,具有非常大的想象和應(yīng)用空間。
EdgeRoutine的核心價(jià)值
總體來說,EdgeRoutine具備CDN的彈性調(diào)度、低成本、低延時(shí)的特性,同時(shí)也兼顧Serverless簡單易用的特性。
一、彈性調(diào)度
部署在EdgeRoutine的JS代碼將運(yùn)行在遍布全球各地的CDN節(jié)點(diǎn)上。用戶的請(qǐng)求將就近訪問CDN節(jié)點(diǎn)。當(dāng)某個(gè)區(qū)域用戶請(qǐng)求突增,CDN系統(tǒng)會(huì)將請(qǐng)求調(diào)度至周邊節(jié)點(diǎn),自動(dòng)彈性擴(kuò)容,用戶無需為每一次可能的業(yè)務(wù)突增而擔(dān)心計(jì)算資源不夠的問題。比如下圖左側(cè)的示例,當(dāng)杭州用戶發(fā)起請(qǐng)求,就近調(diào)度至杭州的CDN節(jié)點(diǎn);當(dāng)杭州用戶的請(qǐng)求突增,調(diào)度自動(dòng)將請(qǐng)求分散調(diào)度至杭州周邊的嘉興湖州等區(qū)域的CDN節(jié)點(diǎn);而杭州用戶的請(qǐng)求進(jìn)一步突增,調(diào)度自動(dòng)將請(qǐng)求分散調(diào)度至更遠(yuǎn)的無錫上海等區(qū)域的CDN節(jié)點(diǎn)。阿里云CDN有2800+節(jié)點(diǎn)遍布全球,形成一張巨大的調(diào)度網(wǎng)絡(luò),自動(dòng)彈性調(diào)度。
二、低成本
我們看一下計(jì)算的發(fā)展史,其實(shí)從某種維度來看的話,是對(duì)資源的隔離和復(fù)用的一個(gè)發(fā)展史。最早的物理機(jī),到一臺(tái)物理機(jī)被隔離成N臺(tái)的虛擬機(jī),再到云計(jì)算及容器化技術(shù),虛擬機(jī)上又可以隔離出N個(gè)不同運(yùn)行環(huán)境,整個(gè)過程中,用戶隔離不斷細(xì)化,單位硬件設(shè)備能夠做到更高復(fù)用,將資源復(fù)用做到極致,給用戶帶來性價(jià)比更高的按量付費(fèi)服務(wù)。這也是EdgeRoutine能為大家?guī)砀统杀镜膬r(jià)值的原因。
三、易用(Serverless特性)
傳統(tǒng)的應(yīng)用搭建的流程,用戶需要去購買服務(wù)器,還需要去運(yùn)維上面的系統(tǒng),然后才進(jìn)行整個(gè)開發(fā)應(yīng)用的部署,持續(xù)去優(yōu)化服務(wù)性能,需要非常龐大的團(tuán)隊(duì)協(xié)同。Serverless意味著用戶不需要再去關(guān)注底層的基礎(chǔ)設(shè)施,只需要關(guān)注核心的業(yè)務(wù)代碼,上傳你的代碼就完成了整個(gè)部署。后端的這些資源是完全自動(dòng)、彈性伸縮的,可以幫助用戶原來縮減運(yùn)維成本。基于EdgeRoutine的應(yīng)用構(gòu)建方式也是如此,只需要在第一次使用時(shí)候進(jìn)行簡單的安裝配置,即可專注開發(fā)業(yè)務(wù)代碼,直接上傳部署即可。
四、超低延時(shí)
在邊緣上直接去處理客戶端的請(qǐng)求,跟在中心處理,肯定是會(huì)大幅縮短網(wǎng)絡(luò)鏈路,這樣減少了網(wǎng)絡(luò)傳輸?shù)难訒r(shí)風(fēng)險(xiǎn)。同時(shí),EdgeRoutine采用Chromium V8輕量隔離技術(shù),冷啟動(dòng)時(shí)間幾乎可忽略。
詳細(xì)的產(chǎn)品信息,可以登錄阿里云官網(wǎng)CDN產(chǎn)品文檔進(jìn)行了解。
回顧發(fā)布會(huì)直播:https://yqh.aliyun.com/live/cdn_0106
原文鏈接:https://developer.aliyun.com/article/781130?
版權(quán)聲明:本文內(nèi)容由阿里云實(shí)名注冊(cè)用戶自發(fā)貢獻(xiàn),版權(quán)歸原作者所有,阿里云開發(fā)者社區(qū)不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。具體規(guī)則請(qǐng)查看《阿里云開發(fā)者社區(qū)用戶服務(wù)協(xié)議》和《阿里云開發(fā)者社區(qū)知識(shí)產(chǎn)權(quán)保護(hù)指引》。如果您發(fā)現(xiàn)本社區(qū)中有涉嫌抄襲的內(nèi)容,填寫侵權(quán)投訴表單進(jìn)行舉報(bào),一經(jīng)查實(shí),本社區(qū)將立刻刪除涉嫌侵權(quán)內(nèi)容。總結(jié)
以上是生活随笔為你收集整理的更极速:EdgeRoutine边缘程序的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 阿里云控制台门户升级,V2.0 乘风破浪
- 下一篇: 如何降低微服务测试成本?