寫在開頭: 前端
什麼是Server模式?前端、後端如今均可以使用Serverless模式進行開發和部署嗎?mysql
先回答第一個問題:redis
Serverless 圈內俗稱爲「無服務器架構」,Serverless 不是具體的一個編程框架、類庫或者工具。簡單來講,Serverless 是一種軟件系統架構思想和方法,它的核心思想是用戶無須關注支撐應用服務運行的底層主機。這種架構的思想和方法將對將來軟件應用的設計、開發和運營產生深遠的影響。sql
所謂「無服務器」,並非說基於 Serverless 架構的軟件應用不須要服務器就能夠運行,其指的是用戶無須關心軟件應用運行涉及的底層服務器的狀態、資源(好比 CPU、內存、磁盤及網絡)及數量。軟件應用正常運行所須要的計算資源由底層的雲計算平臺動態提供。編程
說人話,什麼意思? 小程序
後端Serverless模式:後端
就是你直接在網頁上編輯好你的邏輯,點一下部署,你就能夠發佈新的代碼到服務器上面了,不須要你去關心運維部署層面的東西了,只要你考慮開發邏輯便可。緩存
例如,向下面這樣(基於構建物聯網LOT應用工具開發的,類Serverless模式)服務器
前端Serverless模式:微信
同樣的,你在網站點編輯好你的邏輯,點下構建發佈,就發佈成功了,不管是IOS、安卓、小程序、H5
例以下面這樣,在網頁中將組件拖入頁面,點擊上架,那麼就上架成功了
經過上面的內容,你應該能知道Serverless模式的大概使用了,但是,怎麼把一個很複雜的功能點實現呢?那麼你要深刻理解下Serverless的模式含義
Serverless = Faas + Baas
Faas:函數即服務
Baas: 後端即服務
爲何說Serverless模式,是等於Faas + Baas呢。
首先,函數是咱們本身定義的邏輯,可是函數並不能幫咱們作到全部想作的事情,例如,咱們要有一個redis服務,這個服務是進程外緩存,是獨佔一個端口存在的,而Serverless就是爲了幫咱們屏蔽運維和部署的問題,那麼就須要函數編寫你的一個一個業務邏輯,而後平臺幫咱們集成一些特殊的功能,例如redis,mysql等。
Serverless中,很重要的一個點就是函數
例如一個接口調用
你可能需
解析參數、
參數處理、
更新db=》通知db、
更新緩存=》通知redis
等等..
以上的這幾個步驟,完成了接口調用
你能夠很直觀的想象,每一個節點都是一個函數,處理完成後,將下個函數所須要的值傳遞過去,調用下一個函數(節點),這樣過程很是清晰、邏輯獨立,複用也更爲簡單。
因此Serverless的核心,就是講究顆粒度,函數拆分到極致的細緻
Faas函數的生命週期:
須要注意的點:
採用函數計算的 Serverless 與雲服務器最大的不一樣之處在於:雲服務器須要一直運行,而函數計算是按需計算。按需計算就意味着,在請求到來的時候,才運行函數。沒有請求的時候,是不算錢的。
像redis、mysql這些,就屬於Baas部分,就是:後端即服務,這些都是能夠向雲廠商申請資源的
通用的Sereverless架構:
使用Serverless開發的⚠️點和優缺點:
以上就是我在使用Serverless模式進行先後端開發的一些總結,以爲有幫助讓你理解到什麼是Serverless模式的話,能夠點個關注和再看支持下
點個在看支持我吧,轉發就更好了
好文我在看👇