使用Serverless模式開發部署前端和Node.js

寫在開頭: 前端

什麼是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並非必要的,合適的場合確實能提效很多,目前我已經在生產環境上先後端都在用這種模式開發
  • 快速上線是Serverless模式最大的優勢,一鍵發佈
  • 減小運營成本
  • 可移植性的問題,Baas服務,每一個廠商實現標準不一致
  • 更適用於微服務
  • 會大量依賴於第三方服務,例如Baas部分
  • 調試和開發不是特別方便
  • 自動擴展能力很是好

以上就是我在使用Serverless模式進行先後端開發的一些總結,以爲有幫助讓你理解到什麼是Serverless模式的話,能夠點個關注和再看支持下

最後

  • 歡迎加我微信(CALASFxiaotan),拉你進技術羣,長期交流學習...
  • 歡迎關注「前端巔峯」,認真學前端,作個有專業的技術人...

點個在看支持我吧,轉發就更好了

好文我在看👇

相關文章
相關標籤/搜索