Faas計算框架spring-cloud-function

之前講到過無服務器Serverless的一些概念和優勢,即通過依賴特定環境降低運維成本和複雜度。CNCF(Cloud Native Computing Foundation),即雲原生計算基金會於2018年2月14號發佈了serverless技術白皮書 v1.0版,從概念,最佳實踐和成功案例等方面對serverless框架做了詳細說明,並對serverless與IaaS,PaaS,CaaS的區別做了綜合分析。Faas算是Serverless的一種,其中文對應翻譯也有叫函數計算,雲函數,無服務器計算等稱呼,為統一概念,本文中統一叫做Faas。

Faas如何落地,本節結合開源框架Spring Cloud Function講述Faas的實現原理。 Spring Cloud Function是基於 Spring Boot 的函數計算框架,它抽象出所有傳輸細節和基礎架構,允許開發人員保留所有熟悉的工具和流程,並專注於業務邏輯。

借用官網對框架的介紹,Spring Cloud Function是一個具有以下高級目標的項目:

  • 通過功能促進業務邏輯的實現
  • 將業務邏輯的開發生命週期與任何特定的運行時目標分離,以便相同的代碼可以作為Web端點, 流處理器或任務運行
  • 支持無服務器提供商之間的統一編程模型,以及獨立運行(本地或PaaS)的能力
  • 在無服務器提供商上啟用Spring Boot功能(自動配置,依賴注入,指標)

這個項目的核心是推動基於函數的編程模型,而不是 Spring 之前更為大家所熟悉的對象模型。相信熟悉Java的朋友都知道,在JDK1.8裡官方新增了函數式接口,將函數作為參數傳遞。函數式編程的思想是先不去考慮具體的行為,而是先去考慮參數,再考慮編寫處理邏輯的Function,將邏輯和數據分離,而Function可以複用,這樣可以大大提高代碼的複用度,同時使代碼更加簡潔。借用官網的函數案例,將名稱轉換為大寫的函數,函數邏輯很簡單。

Faas計算框架spring-cloud-function

函數定義

回到文章主題Faas,如何將函數注入到Faas平臺,然後實時生效且可調用?下一章我們繼續深入Faas平臺內部原理,繼續講解。


分享到:


相關文章: