1.故事背景:
傳統(tǒng)的web基礎(chǔ)架構(gòu)施符,前端——后端——服務(wù)器——運(yùn)維
升級版本的,就是分布式擂找,集群等等戳吝。如果是開發(fā)必須有前端,后端贯涎,運(yùn)維听哭,而且當(dāng)系統(tǒng)越來越復(fù)雜,人員也越來越多塘雳,對于中小企業(yè)開發(fā)者來說無疑成本在增大陆盘。
2.前端開發(fā)模式的演進(jìn)
首先回顧一下前端開發(fā)模式的演進(jìn),主要有四個階段败明。
基于模板渲染的動態(tài)頁面
基于 AJAX 的前后端分離
基于 Node.js 的前端工程化
基于 Node.js 的全棧開發(fā)
3.下一代前端開發(fā)模式——Serverless
Serverless 目前主要是 FaaS 和 BaaS礁遣。
簡單來講,F(xiàn)aaS(Function as a Service) 就是一些運(yùn)行函數(shù)的平臺肩刃,比如阿里云的函數(shù)計算祟霍、AWS 的 Lambda 等。再直白一點(diǎn)就是盈包,公共的云服務(wù)器上寫函數(shù)沸呐,調(diào)用的時候占用的是云服務(wù)器的資源,即時你沒有買云服務(wù)器呢燥,也可以在寫相對應(yīng)的函數(shù)例如計算崭添,或者其他。
BaaS(Backend as a Service)則是一些后端云服務(wù)叛氨,比如云數(shù)據(jù)庫呼渣、對象存儲棘伴、消息隊列等。利用 BaaS屁置,可以極大簡化我們的應(yīng)用開發(fā)難度焊夸。
總的來說,不用擔(dān)心你買的服務(wù)器配置不夠蓝角,或者數(shù)據(jù)庫不夠阱穗,因?yàn)閴焊挥觅I服務(wù)器,只需要選擇相對應(yīng)的可以運(yùn)行的平臺服務(wù)使鹅,以前運(yùn)維交給他們揪阶。
4.為什么前端開發(fā)者或個人開發(fā)必須會呢
Serverless 對底層資源和運(yùn)維工作的封裝,讓前端能更專注于交互邏輯患朱、業(yè)務(wù)邏輯和數(shù)據(jù)而非環(huán)境本身鲁僚,在 UI 即函數(shù) + Faas 的事件驅(qū)動,Node 能力結(jié)合容器及微服務(wù)的架構(gòu)裁厅,前端比以往更容易以全棧的姿態(tài)貼近業(yè)務(wù)蕴茴、服務(wù)業(yè)務(wù)。
主要還是能省一大部分運(yùn)維的工作姐直,個人精力有限倦淀,可以把主要精力放在業(yè)務(wù)處理上面。
使用 Serverless 我們不需要關(guān)心服務(wù)器声畏,不需要關(guān)心運(yùn)維撞叽。這也是 Serverless 思想的核心。
低成本
使用 Serverless 成本很低插龄,因?yàn)槲覀冎恍枰獮槊看魏瘮?shù)的運(yùn)行付費(fèi)愿棋。函數(shù)不運(yùn)行,則不花錢均牢,也不會浪費(fèi)服務(wù)器資源糠雨。
serverless 也是一個未來的趨勢,10年前誰也不知到云計算能搞成徘跪,現(xiàn)在既然云計算能成功甘邀,那么serverless 基于上面的趨勢發(fā)展應(yīng)該也不差。
5.為什么后端開發(fā)也必須知道呢
現(xiàn)在大部分程序都是運(yùn)行在云端垮庐,現(xiàn)在假如你想每個天定時抓去銀行的匯率松邪,又或者想抓取微博熱點(diǎn)和當(dāng)下熱詞,買服務(wù)器吧又覺得有點(diǎn)浪費(fèi)哨查,現(xiàn)在 serverless 正是好的選擇逗抑,可以按云函數(shù)收費(fèi),不用不收費(fèi)。
6.初試騰訊云——云函數(shù)的HelloWord
來一個簡單一點(diǎn)的效果圖邮府。
選中函數(shù)服務(wù)后荧关,函數(shù)寫在云,也運(yùn)行在云褂傀。
運(yùn)行結(jié)果:
如何觸發(fā)忍啤?
可以生成網(wǎng)關(guān)訪問,也就是通過頁面或請求來觸發(fā)紊服,也可以定時任務(wù)觸發(fā)等檀轨。(爬蟲的)
觸發(fā)效果:
這樣一個 FaaS 例子算是完成了胸竞。
6.基于serverless 的小程序開發(fā)
現(xiàn)在小程序已經(jīng)有了基于serverless 的開發(fā)欺嗤,直接創(chuàng)建云函數(shù),可以提供小程序直接調(diào)用卫枝,現(xiàn)在個人開發(fā)還能免費(fèi)使用幾個月煎饼,如果感興趣的可以去玩一下,現(xiàn)在還能白嫖幾個月時間校赤。