1.故事背景:
傳統的web基礎架構,前端——后端——服務器——運維
升級版本的,就是分布式,集群等等。如果是開發必須有前端,后端,運維,而且當系統越來越復雜,人員也越來越多,對于中小企業開發者來說無疑成本在增大。
2.前端開發模式的演進
首先回顧一下前端開發模式的演進,主要有四個階段。
基于模板渲染的動態頁面
基于 AJAX 的前后端分離
基于 Node.js 的前端工程化
基于 Node.js 的全棧開發
3.下一代前端開發模式——Serverless
Serverless 目前主要是 FaaS 和 BaaS。
簡單來講,FaaS(Function as a Service) 就是一些運行函數的平臺,比如阿里云的函數計算、AWS 的 Lambda 等。再直白一點就是,公共的云服務器上寫函數,調用的時候占用的是云服務器的資源,即時你沒有買云服務器,也可以在寫相對應的函數例如計算,或者其他。
BaaS(Backend as a Service)則是一些后端云服務,比如云數據庫、對象存儲、消息隊列等。利用 BaaS,可以極大簡化我們的應用開發難度。
總的來說,不用擔心你買的服務器配置不夠,或者數據庫不夠,因為壓根不用買服務器,只需要選擇相對應的可以運行的平臺服務,以前運維交給他們。
4.為什么前端開發者或個人開發必須會呢
Serverless 對底層資源和運維工作的封裝,讓前端能更專注于交互邏輯、業務邏輯和數據而非環境本身,在 UI 即函數 + Faas 的事件驅動,Node 能力結合容器及微服務的架構,前端比以往更容易以全棧的姿態貼近業務、服務業務。
主要還是能省一大部分運維的工作,個人精力有限,可以把主要精力放在業務處理上面。
使用 Serverless 我們不需要關心服務器,不需要關心運維。這也是 Serverless 思想的核心。
低成本
使用 Serverless 成本很低,因為我們只需要為每次函數的運行付費。函數不運行,則不花錢,也不會浪費服務器資源。
serverless 也是一個未來的趨勢,10年前誰也不知到云計算能搞成,現在既然云計算能成功,那么serverless 基于上面的趨勢發展應該也不差。
5.為什么后端開發也必須知道呢
現在大部分程序都是運行在云端,現在假如你想每個天定時抓去銀行的匯率,又或者想抓取微博熱點和當下熱詞,買服務器吧又覺得有點浪費,現在 serverless 正是好的選擇,可以按云函數收費,不用不收費。
6.初試騰訊云——云函數的HelloWord
來一個簡單一點的效果圖。
選中函數服務后,函數寫在云,也運行在云。
運行結果:
如何觸發?
可以生成網關訪問,也就是通過頁面或請求來觸發,也可以定時任務觸發等。(爬蟲的)
觸發效果:
這樣一個 FaaS 例子算是完成了。
6.基于serverless 的小程序開發
現在小程序已經有了基于serverless 的開發,直接創建云函數,可以提供小程序直接調用,現在個人開發還能免費使用幾個月,如果感興趣的可以去玩一下,現在還能白嫖幾個月時間。