為什么 Serverless 將推動邊緣計算的革命

Serverless 不僅在技術(shù)上也在概念上改變了我們構(gòu)建應(yīng)用的方式,這種變更已經(jīng)被邊緣計算領(lǐng)域所采用倾哺。

1. 在邊緣

邊緣計算是一種計算和存儲更接近用戶的場景璃搜。目前,大概有 10% 的企業(yè)數(shù)據(jù)是在傳統(tǒng)數(shù)據(jù)中心外部產(chǎn)生和處理的庐橙,這個規(guī)模預(yù)計在 2025 年將達(dá)到 75%。

內(nèi)容分發(fā)網(wǎng)絡(luò)(CDN)代表了邊緣計算的第一波浪潮借嗽。使用 CDN态鳖,用戶所需的數(shù)據(jù)緩存在距離用戶更近的位置,從而減少了回源時的傳輸時間恶导,提高了性能浆竭。隨著 CDN 和虛擬化技術(shù)變得越來越成熟,計算和存儲已經(jīng)逐漸移出了云數(shù)據(jù)中心的范圍惨寿。這使得計算資源可以在邊緣位置作為單獨(dú)的服務(wù)出現(xiàn)邦泄。

邊緣計算的典型應(yīng)用是實(shí)時和即時數(shù)據(jù)處理。與強(qiáng)調(diào) “大數(shù)據(jù)”的云計算不同裂垦,當(dāng)轉(zhuǎn)移到邊緣時顺囊,更多時候關(guān)注的是“即時數(shù)據(jù)”。

邊緣計算的核心在于性能優(yōu)化:即減少等待時間蕉拢,流量特碳,帶寬,地理距離晕换,能源和功率午乓。

邊緣計算帶來的延遲減少可以使物聯(lián)網(wǎng)、人工智能和機(jī)器學(xué)習(xí)中的某些應(yīng)用更加容易實(shí)現(xiàn)闸准。例如:自動化設(shè)備的實(shí)時指令益愈、遠(yuǎn)程手術(shù)和面部識別等都是在一定程度上利用邊緣計算的新興技術(shù)。

5G 的發(fā)展夷家,更快的連接性和 5G 設(shè)備的普及進(jìn)一步推動了邊緣計算的興起蒸其。邊緣計算通過使計算更接近用戶來減少延遲,而 5G 則可用于減少通信過程的延遲瘾英。 5G 和 邊緣計算一起可以將延遲降低到以前無法達(dá)到的水平枣接,從而可以催生新一代的應(yīng)用場景。

為什么是 Serverless缺谴?

Serverless 能讓我們構(gòu)建應(yīng)用時無需考慮底層服務(wù)器但惶。Serverless 并不是真的不需要服務(wù)器耳鸯,從根本上來講,這是一項旨在通過降低總成本(Total Cost of Ownership 膀曾,TCO)來提高敏捷性的架構(gòu)革命县爬。

簡言之,Serverless 是一種抽象添谊,通過對底層計算機(jī)的細(xì)節(jié)進(jìn)行抽象财喳,封裝成一個模型,在模型中斩狱,只需要將程序的核心代碼提供給服務(wù)提供商(如 AWS)耳高,就可以根據(jù)不同的事件來進(jìn)行運(yùn)行并響應(yīng)。

Lambda 是最廣為人知的 Serverless 所踊,即 AWS 提供的 FaaS 平臺泌枪。 Lambda 改變了我們構(gòu)建應(yīng)用程序的方式,Lambda 的函數(shù)觸發(fā)器也促進(jìn)了事件驅(qū)動架構(gòu)的發(fā)展秕岛。

技術(shù)總是周期性的

以 Web 應(yīng)用程序為例碌燕。最初,很多邏輯都存在于服務(wù)器端继薛。當(dāng)加載網(wǎng)頁時修壕,框架和模板引擎將使用數(shù)據(jù)庫中的相關(guān)數(shù)據(jù)填充頁面的動態(tài)部分。然后將生成的渲染 HTML 頁面發(fā)送并顯示在客戶端遏考。隨著前端越來越復(fù)雜的技術(shù)演進(jìn)中慈鸠,見證了諸如 React 和 Vue 之類的 SPA 框架的出現(xiàn),并且越來越多的業(yè)務(wù)邏輯移至客戶端(CSR)诈皿。隨著時間的推移林束,負(fù)面影響逐漸體現(xiàn)出來:低端用戶的體驗變得很慢,并且嚴(yán)重影響到網(wǎng)站 SEO稽亏。后來壶冒,像 React 這樣的框架“重塑了” SSR(服務(wù)器端渲染),我們又看到了向服務(wù)器端渲染(SSR)的轉(zhuǎn)變截歉。

我們構(gòu)建整個應(yīng)用程序的方式經(jīng)歷了類似的周期胖腾。最初的計算發(fā)生在大型機(jī)上,然后隨著功能更強(qiáng)大的 PC 的出現(xiàn)而轉(zhuǎn)移到了客戶端瘪松,現(xiàn)在我們又看到了向中心云計算中心的轉(zhuǎn)移咸作。

我們將經(jīng)歷另一個循環(huán),我們將移到邊緣

真實(shí)世界的邊緣計算

智能攝像機(jī)宵睦,IoT 設(shè)備记罚,醫(yī)療設(shè)備和 CDN(如上所述)都是邊緣計算的用例。我們正在將數(shù)據(jù)處理移到更靠近生成數(shù)據(jù)的地方壳嚎。在電視直播中桐智,可以通過模型來識別跌倒的人員(即時跌倒檢測)-識別動作幾乎可以零延遲末早。在工業(yè)生產(chǎn)中,零延時的優(yōu)勢可以使得機(jī)器立刻停機(jī)说庭。

邊緣計算并非沒有風(fēng)險然磷。物聯(lián)網(wǎng)在所有行業(yè)中的迅速采用,“智能”設(shè)備的安全性問題也普遍存在刊驴。邊緣計算服務(wù)的可伸縮性可以緩解一些安全威脅姿搜,例如 DDoS,但核心計算模型必須在信任度較低(或者零信任)環(huán)境中運(yùn)行捆憎。

Serverless 邊緣 or 去中心化舅柜?

如上所述,Serverless 就是關(guān)于抽象的攻礼。開發(fā)人員可以編寫應(yīng)用程序代碼业踢,而不必關(guān)注基礎(chǔ)設(shè)施的詳細(xì)信息。 FaaS 解決方案的這種抽象礁扮,按需付費(fèi)的定價模型和按需使用的執(zhí)行模型具有與邊緣計算互補(bǔ)的概念。

在邊緣計算場景:

  • 我們不必控制硬件瞬沦,這是抽象的關(guān)鍵
  • 這是一個不受信任的環(huán)境-因此我們需要嚴(yán)格的沙箱環(huán)境
  • 我們通常會大規(guī)模處理不可預(yù)測的實(shí)時數(shù)據(jù)太伊,因此我們需要一個高度可擴(kuò)展的彈性模型來進(jìn)行計算

邊緣計算場景下使用的計算機(jī)通常配置比較低,因此逛钻,涉及到CPU僚焦,內(nèi)存,磁盤時曙痘,應(yīng)用執(zhí)行效率必須要高芳悲,并且使用較低的內(nèi)存,磁盤边坤。

這些都是 Serverless 所面臨的挑戰(zhàn)名扛,也是 Serverless 的優(yōu)勢,所以說 Serverless 是邊緣計算的補(bǔ)充也不為過茧痒。

自推出以來肮韧,Serverless 現(xiàn)在已經(jīng)逐漸成熟。無論是在供應(yīng)商方面還是在開源領(lǐng)域旺订,用戶體驗及工具都得到了極大的改進(jìn)弄企。與此同時,開發(fā)者已經(jīng)適應(yīng)了在 Serverless 環(huán)境中工作的最佳實(shí)踐和思維模式区拳。所有這些進(jìn)步將推動邊緣計算的興起拘领。

開發(fā)人員已經(jīng)習(xí)慣于在無狀態(tài)抽象運(yùn)行時環(huán)境中進(jìn)行編碼,以及與 Serverless 數(shù)據(jù)庫和其他云原生設(shè)計模式的結(jié)合樱调。從 Serverless 計算模型到邊緣計算模型的模式轉(zhuǎn)變是微乎其微的约素,而從傳統(tǒng)的 Server 甚至 Kubernetes 環(huán)境轉(zhuǎn)變到邊緣計算是一個更大的飛躍洽瞬,無論是思維方式還是工具方面。

Lambda @ Edge 业汰,邊緣計算的 Serverless

[站外圖片上傳中...(image-f87000-1618971536465)]

Lambda @ Edge 實(shí)際上并不屬于AWS的 Serverlss 團(tuán)隊伙窃。實(shí)際上,它是 CloudFront(CDN)產(chǎn)品样漆。 Lambda @ Edge 通過在 CDN 層中運(yùn)行为障,計算邏輯更接近用戶。它與傳統(tǒng) Lambda 非常相似放祟,我們無需管理基礎(chǔ)架構(gòu)鳍怨,只需按需付費(fèi)。

筆者經(jīng)常使用 Lambda @ Edge 來做一些安全檢查跪妥、路由和上下文特定的數(shù)據(jù)修改鞋喇、基于 React 的 SSR、經(jīng)典的圖像轉(zhuǎn)換用例眉撵、甚至用于一些基本的 A/B測試侦香。

借助 Lambda @ Edge,代碼必須首先部署在US-East-1纽疟,然后再分發(fā)到全球 100 多個數(shù)據(jù)中心罐韩。
將代碼分發(fā)到 100 個位置并在 CDN 層中運(yùn)行并不是很復(fù)雜,與部署 Lambda 函數(shù)幾乎相同污朽,這要?dú)w功于 Serverless 社區(qū)的多年發(fā)展散吵。

[站外圖片上傳中...(image-5e12af-1618971536465)]

Serverless.yml 定義了一個單獨(dú)的 Lambda@Edge 函數(shù)

使用 Serverless 框架,我們可以定義我們的功能:聲明由 CloudFront 事件觸發(fā)的蟆肆,然后運(yùn)行一個 Serverless 部署命令矾睦。

代碼本身可以用 PythonJavaScript 編寫,無需處理任何手動引導(dǎo)或虛擬化問題炎功。例如枚冗,我們可以用幾行代碼逐步將流量從一個 S3(AWS 存儲服務(wù))bucket 遷移到另一個S3 bucket。

[站外圖片上傳中...(image-8ed32f-1618971536465)]

Lambda 開發(fā)者都熟悉的 handler 函數(shù)

Lambda @Edge 使用起來與 Lambda 一致亡问, 唯一的區(qū)別是官紫,它需要首先部署到 US-East-1,并且在執(zhí)行時間州藕,CPU 和內(nèi)存上相比 Lambda 有更多的限制束世。此外,只能使用JSPython(沒有其他受支持的語言或“自定義運(yùn)行時”選項)床玻,并且由于分發(fā)時間的緣故毁涉,部署/回滾會花費(fèi)更長的時間。

這是一個很好的例子锈死,說明了 Serverless 的執(zhí)行模型如何與邊緣計算的執(zhí)行環(huán)境互補(bǔ)贫堰。

Firecracker 正在解決 Serverless 在邊緣計算場景面臨的許多挑戰(zhàn)

AWS 開發(fā)了 Firecracker 作為 LambdaFargate (AWS 的計算引擎)的底層虛擬化組件穆壕。Firecracker 是一種虛擬化技術(shù),可讓工作負(fù)載在 microVM 中執(zhí)行其屏。 microVM 是輕量級 VM(虛擬機(jī))喇勋,可在保持性能和靈活性的同時提供安全性和隔離性。

通過極小的設(shè)計可以實(shí)現(xiàn)安全性和低啟動時間偎行。這樣可確保內(nèi)存占用量保持較低川背,運(yùn)行速度快且受攻擊面最小。

簡而言之蛤袒,Firecracker 帶來了更高的租戶密度(每臺計算機(jī)的 microVM 數(shù)量)熄云,更高的安全性,減少了內(nèi)存需求并縮短了啟動時間妙真。這可以通過利用 Linux KVM(內(nèi)核級別的虛擬化-內(nèi)核充當(dāng)虛擬機(jī)管理程序)來實(shí)現(xiàn)缴允,它使用 Rust 作為高性能的實(shí)現(xiàn)語言,實(shí)現(xiàn)了特定的最小功能集的 API珍德。

Firecracker 旨在改善資源受限環(huán)境中的啟動延遲练般,以實(shí)現(xiàn) Serverless FaaS(Lambda)的功能。在低資源環(huán)境中對低延遲菱阵、強(qiáng)安全隔離和多租戶的需求與邊緣計算的需求有很大的重疊踢俄。在小型資源機(jī)器上的低信任度多租戶環(huán)境中,程序需要快速啟動晴及。

那么 Lambda @ Edge 基于 Firecracker 運(yùn)行代碼也就順理成章了〉招浚可以說是 Serverless 技術(shù)促進(jìn)邊緣計算發(fā)展的一個典型特性虑稼。

新興邊緣計算服務(wù)

除了 Lambda @ Edge,還有許多其他 FaaS 邊緣計算平臺势木。 FastlyCloudflare Workers 是另外兩個典型的邊緣計算平臺蛛倦。

借助 Cloudflare Workers,可以在 V8 隔離的全球網(wǎng)絡(luò)上獲得 Serverless 執(zhí)行環(huán)境啦桌。該代碼在 Cloudflare 的網(wǎng)絡(luò)上運(yùn)行(目前幾乎所有互聯(lián)網(wǎng)用戶都在幾毫秒內(nèi))溯壶,冷啟動時間不到1毫秒。支持一系列運(yùn)行時(JS甫男,Rust且改,C和C ++),并支持訪問 Cloudflare 的邊緣 K-V 存儲板驳。

對于基于邊緣的應(yīng)用來說又跛,存儲是一個有趣的挑戰(zhàn)。 Cloudflare 最近與 Fauna(一種由 API 驅(qū)動的 Serverless 事務(wù)數(shù)據(jù)庫)之類的 Serverless 數(shù)據(jù)庫提供商合作若治,以改善邊緣存儲慨蓝「谢欤基于此,邊緣計算可以與“邊緣優(yōu)先”數(shù)據(jù)庫結(jié)合使用礼烈。邊緣應(yīng)用程序通常需要計算和狀態(tài)弧满,基于 API 的 Serverless 數(shù)據(jù)庫正好可以填補(bǔ)邊緣存儲的空白。

Fastly 是另一家提供邊緣計算的廠家此熬,它提供了 Compute@Edge 平臺庭呜。作為 CDN 提供商,F(xiàn)astly 在設(shè)計時考慮到邊緣計算功能摹迷,它提供了在用戶附近運(yùn)行代碼的功能以及 CDN 的常規(guī)功能疟赊。與 Cloudflare Workers 相似,FastlyCompute @ Edge 允許在 CDN 層上運(yùn)行計算邏輯-為現(xiàn)有和新應(yīng)用程序帶來圖像優(yōu)化峡碉、負(fù)載平衡近哟、安全性增強(qiáng)和地理路由等功能。

Serverless 將成為邊緣計算的推動者

我們已經(jīng)看到鲫寄,邊緣計算服務(wù)已經(jīng)在利用 Serverless 領(lǐng)域的技術(shù)優(yōu)勢吉执。

Serverless 開發(fā)模式下,開發(fā)人員以無狀態(tài)地来、按使用付費(fèi)戳玫、事件驅(qū)動和分布式的思維方式進(jìn)行實(shí)踐。這種模式的轉(zhuǎn)變對于啟用邊緣計算也將是關(guān)鍵未斑。除此之外咕宿,我們?yōu)?Serverless 開發(fā)的許多技術(shù)和最佳實(shí)踐將構(gòu)成邊緣計算的基礎(chǔ)。

Serverless 改變了我們構(gòu)建應(yīng)用程序的方式蜡秽,Serverless 將繼續(xù)推動邊緣計算的革命府阀。

請關(guān)注公眾號 CNCF-Knative 了解更多 Serverless & Knative 資訊

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市芽突,隨后出現(xiàn)的幾起案子试浙,更是在濱河造成了極大的恐慌,老刑警劉巖寞蚌,帶你破解...
    沈念sama閱讀 211,194評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件田巴,死亡現(xiàn)場離奇詭異,居然都是意外死亡挟秤,警方通過查閱死者的電腦和手機(jī)壹哺,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,058評論 2 385
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來煞聪,“玉大人斗躏,你說我怎么就攤上這事。” “怎么了啄糙?”我有些...
    開封第一講書人閱讀 156,780評論 0 346
  • 文/不壞的土叔 我叫張陵笛臣,是天一觀的道長。 經(jīng)常有香客問我隧饼,道長沈堡,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,388評論 1 283
  • 正文 為了忘掉前任燕雁,我火速辦了婚禮诞丽,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘拐格。我一直安慰自己僧免,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,430評論 5 384
  • 文/花漫 我一把揭開白布捏浊。 她就那樣靜靜地躺著懂衩,像睡著了一般。 火紅的嫁衣襯著肌膚如雪金踪。 梳的紋絲不亂的頭發(fā)上浊洞,一...
    開封第一講書人閱讀 49,764評論 1 290
  • 那天,我揣著相機(jī)與錄音胡岔,去河邊找鬼法希。 笑死,一個胖子當(dāng)著我的面吹牛靶瘸,可吹牛的內(nèi)容都是我干的苫亦。 我是一名探鬼主播,決...
    沈念sama閱讀 38,907評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼怨咪,長吁一口氣:“原來是場噩夢啊……” “哼著觉!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起惊暴,我...
    開封第一講書人閱讀 37,679評論 0 266
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎趁桃,沒想到半個月后辽话,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,122評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡卫病,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,459評論 2 325
  • 正文 我和宋清朗相戀三年油啤,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片蟀苛。...
    茶點(diǎn)故事閱讀 38,605評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡益咬,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出帜平,到底是詐尸還是另有隱情幽告,我是刑警寧澤梅鹦,帶...
    沈念sama閱讀 34,270評論 4 329
  • 正文 年R本政府宣布,位于F島的核電站冗锁,受9級特大地震影響齐唆,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜冻河,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,867評論 3 312
  • 文/蒙蒙 一箍邮、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧叨叙,春花似錦锭弊、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,734評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至马昙,卻和暖如春桃犬,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背行楞。 一陣腳步聲響...
    開封第一講書人閱讀 31,961評論 1 265
  • 我被黑心中介騙來泰國打工攒暇, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人子房。 一個月前我還...
    沈念sama閱讀 46,297評論 2 360
  • 正文 我出身青樓形用,卻偏偏與公主長得像,于是被迫代替她去往敵國和親证杭。 傳聞我的和親對象是個殘疾皇子田度,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,472評論 2 348

推薦閱讀更多精彩內(nèi)容