官术网_书友最值得收藏!

1.2.1 Serverless的定義

那么Serverless到底是什么呢?維基百科將Serverless定義為一種云計算執行模型。

? 云服務商按需分配計算機資源,開發者無須運維這些資源,不用關心容器、虛擬機或物理服務器的容量規劃、配置、管理、維護、操作和擴展。

? Serverless計算無狀態,可在短時間內完成計算,其結果保存在外部存儲中。

? 當不使用某個應用時,不向其分配計算資源。

? 計費基于應用消耗的實際資源來度量。

CNCF(Cloud Native Computing Foundation,云原生計算基金會)認為Serverless旨在構建和運行不需要服務器管理的應用程序,二者的不同之處在于它描述了一個更細粒度的部署模型,能夠以一個或多個函數的形式將應用打包并上傳到平臺執行,并且按需執行、自動擴展和計費。

Serverless并不意味著不需要服務器來托管和運行代碼,也不意味著不再需要運維工程師。Serverless是指開發者不再需要將時間和資源花費在服務器調配、維護、更新、擴展和容量規劃上,這些任務都由Serverless平臺處理,開發者只需要專注于編寫應用程序的業務邏輯,運維工程師能夠將精力放在業務運維上。綜合維基百科和CNCF的定義,可以認為Serverless是一種云計算執行、部署和計費模型,Serverless服務按請求為應用分配資源,按照使用計費,基礎設施全托管(無須關心維護、擴容等)。

目前,Serverless服務主要分為FaaS和BaaS。

? 函數即服務(Function as a Service,FaaS):開發者實現的服務器端應用邏輯(微服務甚至粒度更小的服務)以事件驅動的方式運行在無狀態的臨時容器中,這些容器和計算資源完全由云提供商管理。如圖1-7所示,從開發者角度來看,FaaS和IaaS/PaaS相比,其擴容的維度從應用級別降低到函數級別,開發者只需關心和維護業務層面的正常運行,其他部分如運行時、容器、操作系統、硬件等,都由云提供商來解決。

圖1-7 FaaS與IaaS、PaaS的區別

? 后端即服務(Backend as a Service,BaaS):基于API的三方服務,用來取代應用程序中功能的核心子集。由于這些API是作為自動擴展和透明運行的服務提供的,因此從開發者和運維工程師的角度來看似乎是無服務器的。非計算類的全托管服務,如消息隊列等中間件、NoSQL數據庫服務、身份驗證服務等,都可以認為是BaaS服務。

FaaS通常是承載業務邏輯代碼的服務,開發者會更為關心,它也是本書重點介紹的內容。

主站蜘蛛池模板: 西畴县| 洛南县| 大冶市| 邢台县| 方正县| 新沂市| 德令哈市| 张家港市| 泌阳县| 长治市| 浑源县| 攀枝花市| 浏阳市| 神木县| 柘城县| 高淳县| 茂名市| 阿拉善盟| 昆明市| 九台市| 金塔县| 封丘县| 金秀| 望江县| 天台县| 乐昌市| 平原县| 石楼县| 辰溪县| 江阴市| 潼关县| 察隅县| 崇礼县| 文山县| 柘城县| 榆中县| 兴安县| 扎囊县| 开阳县| 仪征市| 和林格尔县|