無伺服器與傳統堆疊
函式即服務 (FaaS)
- 事件驅動的執行。
- 開發人員將所有伺服器特定任務委託給 FaaS 平臺。
- 開發人員只編寫由平臺呼叫的業務邏輯,隨著業務需求的變化,能夠實現更具彈性的需求演進。
傳統應用程式
- 必須維護伺服器基礎設施(安裝、配置、打補丁、升級等)。
- 基礎設施的擴充套件方式可能不夠動態,無法滿足工作負載需求(浪費資源)。
- 開發人員編寫整合程式碼來處理訊息平臺、HTTP 請求/響應等。
無伺服器工作負載是“與伺服器基礎設施通常處理的方面無關的事件驅動型工作負載”。“執行多少個例項”和“使用什麼作業系統”等問題都由函式即服務平臺(或 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。