云計(jì)算最新趨勢(shì):Serverless
點(diǎn)擊上方“JavaEdge”,關(guān)注公眾號(hào)
serverless,無(wú)服務(wù)架構(gòu),當(dāng)沒(méi)有請(qǐng)求訪問(wèn)時(shí),他不啟動(dòng)任何服務(wù)和資源,一旦觸發(fā)了就會(huì)啟動(dòng)服務(wù)去處理任務(wù)。所以好處是無(wú)需關(guān)心服務(wù)是否掛了,適合處理耗時(shí)不長(zhǎng)的快速事務(wù)處理,當(dāng)流量大時(shí),也能自動(dòng)擴(kuò)容響應(yīng)。但如果高并發(fā)或突然沒(méi)有流量時(shí),它的自動(dòng)擴(kuò)容和縮容機(jī)制也會(huì)導(dǎo)致更多開(kāi)銷。
那Serverless到底解決了什么問(wèn)題呢?

省錢、省力

算過(guò)部署服務(wù)器的開(kāi)銷嗎?購(gòu)買云服務(wù)商的Linux 虛擬機(jī)、RDS、Redis 緩存、負(fù)載均衡、CDN,再到容災(zāi)和備份,一年最小開(kāi)銷都在 1w。
但用了 Serverless,成本可降到 1k 以下。Serverless給應(yīng)用開(kāi)發(fā)和部署提供了一個(gè)極簡(jiǎn)模型,可讓一個(gè)零運(yùn)維經(jīng)驗(yàn)的,幾分鐘就部署一個(gè) Web 應(yīng)用。根本無(wú)需了解怎么在 Linux 上裝 Web 服務(wù)器,怎么配置負(fù)載均衡等無(wú)意義運(yùn)維操作。
Serverless 可有效降低企業(yè)中中長(zhǎng)尾應(yīng)用的運(yùn)營(yíng)成本。
中長(zhǎng)尾應(yīng)用:每天大部分時(shí)間都沒(méi)有流量或者有很少流量的應(yīng)用。
尤其是企業(yè)在落地微服務(wù)后,一些邊緣微服務(wù)其實(shí)被調(diào)用概率很低。往往又很難通過(guò)人工控制中長(zhǎng)尾應(yīng)用,因?yàn)椴簧賾?yīng)用還是被強(qiáng)依賴,無(wú)法直接下線。Serverless 之前,這些中長(zhǎng)尾應(yīng)用至少要獨(dú)占 1 臺(tái)虛擬機(jī)?,F(xiàn)在有了 Serverless 的極速冷啟動(dòng),企業(yè)就可以節(jié)省這部分開(kāi)銷。
Serverless一大特點(diǎn)就是縮容到0,平時(shí)沒(méi)有流量時(shí)是不占用任何資源,除了硬盤。所以即使Serverless底層的容器方案,也可能是docker。但卻更加節(jié)省資源。

提高研發(fā)效能

SFF(Serverless For Frontend)可讓前端同學(xué)自行負(fù)責(zé)數(shù)據(jù)接口的編排,微服務(wù) BaaS 化則讓我們后端更加關(guān)注領(lǐng)域設(shè)計(jì)。這能進(jìn)一步放大前端工程師的價(jià)值。
創(chuàng)業(yè)公司用 FaaS 來(lái)做基礎(chǔ)設(shè)施編排和云服務(wù)編排
外包公司利用 Serverless 應(yīng)用架構(gòu)的快速迭代能力,提升開(kāi)發(fā)效率,降低出錯(cuò)率,還可以給自己沉淀領(lǐng)域的解決方案
風(fēng)險(xiǎn)投資方也在逐漸開(kāi)始關(guān)注 Serverless 領(lǐng)域,畢竟這也是一個(gè)新的風(fēng)口

解放生產(chǎn)力,激發(fā)創(chuàng)造力

前端可自由通過(guò)FaaS組合完成業(yè)務(wù)需求,大大激發(fā)前端創(chuàng)造力。如果說(shuō) Node.js 語(yǔ)言的出現(xiàn)解放了一波前端工程師生產(chǎn)力,Node.js+Serverless 又可進(jìn)一步激發(fā)前端工程師創(chuàng)造力。
微服務(wù)本身提出了很多理念。但微服務(wù)在服務(wù)端運(yùn)維卻缺少給力的支撐平臺(tái),放眼國(guó)內(nèi),目前還只有為數(shù)不多的大型互聯(lián)網(wǎng)公司在重點(diǎn)跟進(jìn),其他人基本上只是在觀望或者看熱鬧。

后端應(yīng)用BaaS化

通過(guò)FaaS的后端解決方案將后端服務(wù)BaaS化,讓后端工程師更加專注領(lǐng)域設(shè)計(jì)。Node.js在Serverless Computing,也就是FaaS中因?yàn)镴IT的特性,冷啟動(dòng)速度確實(shí)是優(yōu)勢(shì)。實(shí)踐經(jīng)驗(yàn)來(lái)說(shuō),Java或其它語(yǔ)言比較適合下沉,去做后端服務(wù)化,也就是BaaS。目前比較好的是FaaS+BaaS架構(gòu)。
所以Serverless架構(gòu)中,后端同學(xué)應(yīng)該去寫B(tài)aaS微服務(wù)。前端同學(xué)可以自己寫FaaS自由編排這些BaaS微服務(wù)。
Serverless你可以隨時(shí)隨地調(diào)用一個(gè)云端函數(shù)。對(duì)前端同學(xué)來(lái)說(shuō),降低了服務(wù)端運(yùn)維的門檻;對(duì)后端同學(xué)來(lái)說(shuō),則是掌握一種新的云計(jì)算服務(wù)。
目前Serverless并不是萬(wàn)金油,它有它的局限性和使用場(chǎng)景。我們學(xué)習(xí)Serverless,應(yīng)該將它作為一種工具,在適合的場(chǎng)景中使用。

serverless 冷啟動(dòng)問(wèn)題

Node.js雖然說(shuō)啟動(dòng)快,但啟動(dòng)時(shí)間+接口耗時(shí)給人的感覺(jué)就是這個(gè)服務(wù)性能不行。其實(shí)云服務(wù)商都會(huì)提供給你,預(yù)熱和保留容器的方案,不過(guò)會(huì)產(chǎn)生額外費(fèi)用。
像用戶信息,通知私信,這些都有很多現(xiàn)成的云服務(wù)提供,用FaaS很容易搭建:云服務(wù)編排。但如果是已有業(yè)務(wù)上云,推薦還是逐步遷移吧。
參考
阿里跨境供應(yīng)鏈前端架構(gòu)演進(jìn)與 Serverless 實(shí)踐
Serverless 前端工程化落地與實(shí)踐
從前端和云廠商的視角看 Serverless 與未來(lái)的開(kāi)發(fā)生態(tài)
往期推薦

目前交流群已有 800+人,旨在促進(jìn)技術(shù)交流,可關(guān)注公眾號(hào)添加筆者微信邀請(qǐng)進(jìn)群
喜歡文章,點(diǎn)個(gè)“在看、點(diǎn)贊、分享”素質(zhì)三連支持一下~
