無伺服器架構 vs 傳統堆疊
函式即服務 (FaaS)
- 事件驅動執行。
- 開發人員將所有伺服器特定任務委派給 FaaS 平台。
- 開發人員僅編寫由平台調用的業務邏輯,隨著業務需求變化,可以實現更具彈性的需求演進。
傳統應用程式
- 必須維護伺服器基礎架構(安裝、配置、修補、升級等)。
- 基礎架構的擴展方式可能不夠動態以應對工作負載(浪費資源)。
- 開發人員編寫整合程式碼以處理訊息傳遞平台、HTTP 請求/回應等。
無伺服器工作負載是「事件驅動的工作負載,不需關注通常由伺服器基礎架構處理的方面。」 像是「要運行多少實例」和「要使用哪個作業系統」等問題,都由函式即服務平台(Function as a Service, FaaS)管理,讓開發人員可以自由地專注於業務邏輯。
無伺服器應用程式具有許多特定特性,包括:
Spring 系列產品為無伺服器應用程式提供了強大的功能集合。無論是使用 Spring Data 存取資料、使用 Spring Integration 的企業整合模式,還是使用 Spring Framework 和 Project Reactor 的最新反應式程式設計,Spring 都能讓開發人員從第一天起就在無伺服器環境中提高生產力。
Spring 還可以幫助您的函數避免供應商鎖定。 Spring Cloud Function 提供的適配器讓您在他們的平台上運行程式碼時,可以與供應商特定的 API 解耦。
Spring Cloud Function 提供的功能讓 Spring 開發人員可以利用無伺服器架構或 FaaS 平台。
核心 Java 的 java.util.function
套件是 Spring Cloud Function 使用的程式設計模型的基礎。簡而言之,Spring Cloud Function 提供:
Spring Cloud Function 提供適配器,以便您可以在最常見的 FaaS 服務上運行您的函數,包括 Amazon Lambda、Apache OpenWhisk、Microsoft Azure 和 Project Riff。