01 定義 到底什麼是Serverless?

2021-10-06 12:04:21 字數 1406 閱讀 5096

二、什麼是serverless

server less 字面解釋是較少關心服務端。

服務端的邊界就是上圖中的藍色部分。serverless解決的就是服務端運維的事情。

發展歷程:

a、開發和運維的工作都放在一起做,分工不明確

b、開發和運維分工明確,開發專注業務開發,運維處理線上運維等雜事

c、devops時代,運維開發工具和平台,提高運維效率

d、平台化發展的越來越完善,日常的發布上線,檢視問題都可以開發自己在平台上處理了

e、未來開發對底層服務端的感知越來越弱,運維關注底層和iaas的事情。

serverless 就是對服務端運維的極端抽象,對開發透明化,簡化服務端運維模型,使得乙個新手也可以很快的搭建起來乙個web服務。

faas:函式即服務,也叫serverless computing 隨時的建立、使用、銷毀乙個函式。

通常函式的使用過程:**加到記憶體也就是例項化, 然後被其他函式呼叫執行。

faas中也是一樣,函式需要例項化然後被trigger或者其他函式呼叫。

二者的最大區別在於runtime,也就是函式的上下文,函式執行時的語境。

faas的runtime是預先設定好的,runtime裡面載入的函式和資源都是雲廠商提供的,我們可以使用卻無法控制。 faas的runtime是臨時的,函式呼叫完以後,和函式一起銷毀。

faas推薦無狀態函式,可以自動擴容和縮容,最小縮小到0。

那需要持久化的資料這麼辦?下面介紹下baas

baas是指具備高可用性和彈性,而且免運維的後端服務,專門支撐faas的。

mvc中的model層就使用baas來解決。以mysql為例子,後端服務最好將faas服務運算元據的命令,封裝成http的openapi,自己開控制請求api的頻率和限流降級。後端服務可以通過連線池和集群的方式進行優化。如下圖:

基於serverless可以把傳統的mvc架構轉換為 baas + view + faas的組合,重構或實現。

這樣狹義的serverless 就好理解了。

廣義的serverless具備以下的服務特性:

想想noops具備哪些條件

1、無需關注服務端的事情(容錯、容災、安全驗證等)

2、按使用量付費,大多數場景下節省成本

3、快速迭代和試錯能力(多版本控制,ci/cd,灰度等)

廣義serverless就是指服務端免運維,也是未來的趨勢。

從開發運維發展史看到底什麼是Serverless

搭配在一起其實就是 更少在意服務端 web 應用開發 在個人pc啟動乙個埠,瀏覽器訪問即可除錯 但要將應用部署到網際網路,還需運維。部署運維應用時,要考慮容災容錯,都要保障異地多活,部署多個應用例項。每個應用例項跟我們在本地開發時一樣,只是ip改為私有網路ip。隨雲服務商興起,鮮有網際網路企業自己維...

到底什麼是 O R Mapper

一次和乙個群裡面的朋友聊天,有人說最近發現了新的設計資料庫方法,就是把資料庫的列和物件屬性一一對應,這樣設計很方便。我說寒,那有這麼容易的,實際情況複雜去了,怎麼能一一對應。原文 http dot junkies.weblog seichert posts 4677.aspx 讓我們從o r開始。字...

到底什麼是webservice

傳統上,我們把計算機後台程式 daemon 提供的功能,稱為 服務 service 比如,讓乙個防毒軟體在後台執行,它會自動監控系統,那麼這種自動監控就是乙個 服務 通俗地說,服務 就是計算機可以提供的某一種功能。舉例來說,我現在有一批,需要把它們的大小縮小一半。那麼,我們可以把 縮放 看成是一種服...