serverless入門介紹

2022-09-21 01:51:08 字數 2037 閱讀 7754

serverless 架構作為一種新型的雲計算正規化,是雲原生時代一種革命性的架構,顛覆了傳統意義上對軟體應用部署和運營的認識。本節對 serverless 架構的基本概念、技術實現和 kubernetes 上的 serverless 框架分別進行闡述。

​serverless 架構的核心理念是讓使用者不用關注服務執行所需要的計算資源,主要關注業務邏輯的構建。這樣做可以降低業務開發的成本,提高業務構建和交付的效率。使用者不在需要花費時間和資源來進行伺服器配置、維護、更新、擴充套件和容量規劃。所有的這些任務和功能都由 serverless 平台處理,並完全從開發人員和 it/運維團隊中抽象出來。

​與傳統架構最大的區別在於,在 serverless 架構中,由底層的容器平台管理應用的啟動和關閉。應用程式是否正在執行取決於當前是否有事件觸發或請求訪問該服務。當有事件觸發或者請求訪問時,服務會被自動啟動。當一段時間服務不被使用,平台將關閉該服務等待下次觸發。

​由於應用和伺服器解耦,應用不再繫結到特定的伺服器上,每次事件觸發後的服務例項可能執行在集群中任意乙個伺服器節點。因此,伺服器節點不會儲存該節點上應用的狀態,這個傳統架構有很大的區別。

由於應用不再繫結到特定的伺服器上,每次處理請求的服務例項可能在同乙個伺服器節點上,也可能在不同的伺服器節點上。因此,同乙個客戶端的多次請求無法保證被同乙個服務例項處理。傳統架構中很容易實現的會話保持功能,不適用於 serverless 架構應用。因此,無狀態的應用比有狀態的應用更加適合serverless 架構。

serverless 架構的底層平台原生支援自動擴縮容策略,會根據應用訪問量的變化動態調整服務例項的數量來滿足應用訪問的需求。

serverless 架構中乙個應用被分解為多個細粒度的函式,通過多個函式之間的編排排程實現業務邏輯。這些函式本身都是無狀態的函式服務,無法進行狀態儲存和會話保持。在 serverless 架構的實現中,應用函式化是一種重要的實現方式。

為了提高開發效率,現在的服務在開發過程中利用了很多第三方工具,如訊息佇列、資料庫、快取等。如果只有當前應用服務化,其他依賴的第三方工具需要使用者單獨進行管理和部署,那麼整個應用服務依舊被伺服器資源等條件限制。因此,serverless 架構應用所依賴的第三方工具也必須服務化。

​儘管serverless計算已被廣泛應用,但它仍然是較新的技術。一般來說,當工作負載為以下情形時,serverless應被視為首選。

serverless 架構實現分為兩個部分:函式即服務(function as a service, faas)和後台即服務(backend as a service, baas)。其中 faas 是一種構建和部署服務的新方式,baas 是以 api 形式提供第三方服務。serverless 實現的構成如圖 所示。

faas 提供了一種構建和部署服務的新方式,將應用分解為多個函式服務,通過多個函式之間的編排排程完成業務邏輯[27]。函式並不會一直處於執行狀態,只有在需要時才會執行,其它時間都是空閒狀態。faas 的核心是事件驅動,除了提供**存放和**執行的功能,faas 還會提供各種同步和非同步的事件源集合。比如 http api gateway 就是乙個同步事件源;而訊息佇列,物件儲存等就是非同步事件源。

​faas 作為 serverless 架構重要組成部分,為基於serverless 架構的應用提供一套完整的開發、執行和管理的解決方案。將應用部署到 faas 平台上,應用執行所需的底層服務資源由平台統一管理。由於在應用開發中經常需要使用到第三方服務,如資料庫,訊息佇列和分布式快取等。如果應用依賴的第三方服務以傳統方式部署運維,使用者依舊需要對這些第三方服務需要的資源進行管理。對於 serverless 架構而言,這種情況並沒有完全實現應用程式 serverless 化。

baas 為實現應用的第三方依賴工具服務化提供了解決方案。通過 baas平台可以將資料庫、檔案儲存和訊息佇列等第三方工具服務化,讓使用者以 api的形式進行訪問,按照使用量進行付費。baas 平台使得使用者不需要關注第三方服務底層計算資源的運維,極大的減少了應用運維的工作量和成本。

​為了讓應用程式完全 serverless 化,使用者不但需要利用 faas 平台將自身應用serverless 化,而且需要通過 baas 平台將應用依賴的第三方服務進行serverless化,這樣才能最大程度發揮 serverless 架構的優勢。

快速了解serverless

serverless 無伺服器計算架構,是雲計算時代的一種革命性架構模式,可以看做下一代計算資源架構 serverless概念主要思想就是無需使用者關注支撐應用服務的底層主機資源服務,因此使用者在一定程度上不能設定後端地具體資源配置檔案,所需要的資源數量由平台動態進行排程,簡單的說就是 去基礎架構 ...

serverless 近期熱度

作為乙個準備開始serverless研究的學生,對serverless在目前市場中的期待做一次比較片面的調研。平台 帖子數csdn 600v2ex 60知乎 1245 1863 2339 北郵人論壇 18 多為招聘 招聘具體細節 圖源獵聘 圖源v2ex 目前來看,serverless發展迅速,屬於熱...

Serverless開發實戰 FASS

按官方定義函式計算事件啟動,全託管的計算服務,優點 不需管理基礎設施,實時的彈性伸縮,高可用,低成本 傳統開發流程 函式計算流程,提供的命令列 初始化專案 init 依賴管理 nas instart 本地除錯執行 local start local invoke 繼承測試 local start 打...