定義
無伺服器計算是一種雲服務,託管服務提供商會實時為你分配充足的資源,而不是讓你預先為專用的伺服器或容量付費。無伺服器計算不是不需要伺服器(無伺服器字面上的意思是,不用去管伺服器),只是立足於雲基礎設施之上建立新的抽象層,僅使用完成任務所需的非常精確的計算資源來執行開發人員編寫的代碼,不多也不少。當觸發代碼的預定義事件發生時,無伺服器平台執行任務。最終用戶不需要告訴無伺服器提供商事件或者函式將發生多少次。函式每執行一次,客戶就付一些錢。有些人認為函式即服務(功能即服務)或者事件驅動的計算是更好的名稱。從基礎架構角度看,它有不同的抽象層,而開發人員可以和這些抽象層進行互動。有裸機、虛擬機和容器。對於某些工作負載,我們要抽象出所有的管理,以便您可以執行代碼,而不用擔心伺服器的基礎架構或者管理。這就是無伺服器。
採用無伺服器計算技術的優勢
敏捷:由於開發人員在使用伺服器時不部署、管理或擴展伺服器,因此組織可以放棄基礎設施管理。這極大地減少了操作開銷。無伺服器與微服務架構高度兼容,這也帶來了顯著的敏捷性好處。
可伸縮性:無伺服器升級和添加計算資源不再依賴於DevOps(運維)團隊。沒有伺服器的應用程式可以快速、無縫地自動擴展,以適應流量峰值;反之,當並發用戶數量減少時這些應用程式也會自動縮小規模。
計費模式:在使用無伺服器平台時只需為需要的計算資源付費。無伺服器架構引入了真正的按次付費模式,即客戶只在執行某個功能時才付費。無伺服器的計費模式使其成為具有較小負載要求的微伺服器和具有“spikey”流量模式的應用程式的理想選擇。與傳統環境不同的是,不需要為經常閒置的虛擬機或容器付費。
安全:無伺服器架構提供了安全保障。由於該組織不再管理伺服器,DDoS 攻擊的威脅性要小得多,而且無伺服器功能的自動擴展功能有助於降低此類攻擊的風險。
無伺服器計算並不只是尖端科技公司的小眾解決方案。它正在改變開發者部署和管理複雜軟體的方式,對企業如何交付應用程式有著巨大的影響。其中一個有趣的領域是物聯網套用,它涉及數十億計的終端設備同時使用計算資源。隨著成本節約和提高效率,無伺服器計算將成為大規模採用此類技術的關鍵。
機遇與挑戰
無伺服器計算生態系統在兩個方面在增長:
平台:與大型雲服務供應商一道,湧現出大量量的平台和開源框架,為開發者提供了託管、部署和運行他們的無伺服器套用的能力。
技術促進者:這些解決方案通過提供更簡單的使用和與無伺服器環境的集成,來支持無伺服器平台和框架的採用。啟動器包括開發和監控工具,以及專門的網路安全解決方案。
“無伺服器計算”並不是不用操作的。操作不僅僅是管理和擴展伺服器,它還包括監控、打包、安全、部署等。它仍處於起步階段,有一些固有的挑戰。這些挑戰為初創公司提供了機遇,讓他們可以創建新的解決方案。可以創新和解決以下問題:缺少工具—監控、日誌記錄、開發和調試工具還沒有或不成熟。供應商鎖定—在雲計算供應商之間存在不同功能,每個供應商都有自己的集成點、配置等特色。為了更換供應商,客戶可能需要更改代碼和操作工具,甚至可能要更改軟體架構。性能——服務水平協定不能保證性能,而且功能可能需要很長時間才能做出回響,特別是在它們上一次調用時已經有一段時間的情況下。對於許多應用程式來說,這可能是一個破壞因素 。
雲服務
雲服務是基於網際網路的相關服務的增加、使用和互動模式,通常涉及通過網際網路來提供動態易擴展且經常是虛擬化的資源。雲是網路、網際網路的一種比喻說法。過去在圖中往往用雲來表示電信網,後來也用來表示網際網路和底層基礎設施的抽象。雲服務指通過網路以按需、易擴展的方式獲得所需服務。這種服務可以是IT和軟體、網際網路相關,也可是其他服務。它意味著計算能力也可作為一種商品通過網際網路進行流通。