1.無服務器架構
在云計算不斷發展的背景下,無服務器架構(Serverless Architecture)作為一種新的服務架構和云計算模式被提出。Serverless
中的“-less”并不是指不再需要后端服務器,而是指開發人員可以擺脫后端服務器的設置和管理工作,將這些操作交由云服務商來完成,自己則專注于業務的開發。無服務器架構是一種以事件驅動的云計算模式,通過在云端部署一系列的“云函數(Cloud
Function)”并綁定相應的事件源,將其組織為微服務來支撐應用程序的運行。
無服務器架構的主流表現形式為Serverless = FaaS+BaaS,兩者各有側重:
(1)FaaS(Function as a
Service,函數即服務)指的是一系列由開發人員編寫和部署、由云服務商統一進行調度和管理的云函數。每個云函數可以看作是系統中的一個執行單元,具有無狀態的特點,且一般由事件驅動。當云函數被觸發時,云服務商會根據被執行程序的資源需求實例化相應的臨時容器來運行它,并在請求執行完畢后的一段時間內回收容器資源。云服務商通過統計云函數執行的次數或時間來按量收取費用,這是無服務器架構具有成本優勢的重要原因。
(2) BaaS(Backend as a
Service,后端即服務)泛指其他一切可在云函數中調用的云服務,通常包括消息隊列、對象存儲、數據庫等服務,這些服務通常也按照使用量進行付費。BaaS
的存在使開發人員在編寫云函數時不用再考慮其他云服務的運維工作。

2.無服務器架構的優勢
(1)開發速度更快
由于開發人員僅需專注于業務邏輯功能的開發,無需關心應用系統部署、調度、流量分發、彈性伸縮等功能的研發,軟件架構和軟件功能實現都大大簡化,不僅節省開發時間,更可提升開發效率,降低開發難度。
(2)簡化設備運維
在 Serverless 架構中,開發人員面對的將是自定義或者第三方開發的 API 和
URL,云廠商部署好底層基礎設施與運維設施,讓開發人員專注于核心代碼和應用的開發。
(3)提升可維護性
目前,一些公有云服務中提供了大量的服務,如登錄、鑒權服務,云數據庫服務等第三方服務,它們在安全性、可用性、性能方面都進行了大量優化,在
Serverless 架構下,第三方公司集成了各類服務,運維服務的有效性得到很大的提升,降低成本。
(4)低運營成本
在傳統應用系統的部署實施中,必須按業務峰值需求來構建業務系統,但在大部分時間里該業務系統是空閑的,這就導致了嚴重的資源浪費和成本上升。在
Serverless 架構下,不同用戶能夠通過共享網絡、硬盤、CPU 資源,峰谷時按需自動縮容,按調用次數收費,不調用不收費,有效節約企業成本支出。
3.無服務器架構的特點
(1)自動擴縮容
用戶無需關注 FaaS 函數的水平擴展,Serverless 平臺會自動根據調用量擴展運行代碼所需要的容器,輕松做到高并發調用。函數即應用,各 FaaS
函數可以獨立地進行擴縮容,粒度小擴容快。
(2)運行成本更低
目前主流的公有云計費模式都采用包月計費模式,比如你在亞馬遜公有云上申請一臺虛擬機后,不管有沒有用戶訪問你的應用,也不管你有沒有部署應用,你都要付相同的錢。而對基于
Amazon Lambda 開發的 Serverless 應用來說,你只需要根據實際使用的資源量(FaaS 執行次數 ×FaaS 函數的運行時間 ×
計算資源模板費用)進行付費,也即用多少付多少,不用不收費。
(3)No0ps
計算資源服務化,用戶通過 API 使用計算資源,以用戶算法代碼為核心,不關注基礎設施的部署,Serverless 是把 Ops 外包給第三方平臺,讓
Dev專注于業務邏輯的實現而不用操心 Ops 相關的工作。
(4)事件驅動
FaaS函數是短暫且臨時的,用完就銷毀,FaaS函數在接收請求時產生資源消耗,不使用就沒有消耗,用完資源后就會馬上釋放。
以上梳理了無服務器架構的定義、特點及優勢,希望對你有所幫助,如果你想了解更多相關內容,敬請關注三個皮匠報告的行業知識欄目。
推薦閱讀:
什么是無服務器計算?優勢有?應用介紹
什么是服務器虛擬化?好處有哪些?
什么是網絡服務器?分類有哪些?作用介紹