函數即服務 (FaaS) 是一種雲端計算服務的類型,意即提供了一個平臺,允許客戶在無需考慮到構建和維護通常與開發和啟動應用程序相關的基礎設施的複雜性的情況下,開發、執行和管理應用程式的功能。[1]遵循此模型構建應用程式是一種“無伺服器(Serverless)”架構的實作方式,通常在構建微服務應用程式時使用。

FaaS 最初由於大約 2010 年左右的各種新創公司提供,例如 PiCloud。[2]

AWS Lambda[3] 是大型公有雲需供應商提供的第一個 FaaS 服務,接下來是 Google Cloud Functions, Microsoft Azure Functions, IBM/Apache's OpenWhisk (open source) 於2016 推出 FaaS 服務,然後Oracle Cloud Fn 在2017年推出 FaaS 服務。

使用案例 编辑

FaaS 的使用案例與“按需”功能相關,能讓支援的基礎設施能夠關閉電源並且在不使用時不會產生費用。 例如包括資料處理(例如,批次處理、串流處理、提取-轉換-載入 (ETL))、用於連網設備的物聯網 (IoT) 服務、行動應用程式和 Web 應用程式。[4] 另一個真實的使用案例是為已構建完成的應用程式建立 API,而無需分解或修改應用程式的目前或現有的功能。

與 PaaS 應用程式託管服務的比較 编辑

平臺即服務(PaaS) 應用程序託管服務類似於 FaaS,因為這種服務也對開發者隱藏“伺服器”。 但是,此類託管服務通常總是至少會執行一個伺服器進程來接收外部請求。擴充是通過啟動更多伺服器進程來實作的,開發者通常會為此付費。因此,可伸縮性對開發者而言仍然有能見度。[5]

相對之下,FaaS 不需要任何伺服器進程不斷運作。 雖然初次請求的處理時間可能比應用程式託管平臺的處理時間更長(最多幾秒鐘)[6], 暫存可以讓後續請求在幾毫秒內就能處理。 作為開發者只需為功能執行時間付費(沒有進程閒置時間),因此可以以更高的可擴充性實現更低的成本(以延遲為代價)。

參見 编辑

參考文獻 编辑

  1. ^ Fowler, Martin. Serverless Architectures. 4 August 2016 [26 January 2018]. (原始内容存档于2016-06-18). 
  2. ^ PiCloud Launches Serverless Computing Platform To The Public. 
  3. ^ Release: AWS Lambda on 2014-11-13. Amazon Web Service. [26 February 2017]. 
  4. ^ AWS Lambda – Serverless Compute - Amazon Web Services. Amazon Web Services, Inc. [2018-05-04] (美国英语). 
  5. ^ Avram, Abel. FaaS, PaaS, and the Benefits of the Serverless Architecture. InfoQ. 25 June 2016. 
  6. ^ Dealing with cold starts in AWS Lambda. [2023-04-12]. (原始内容存档于2023-04-17).