原文:html
Serverless架構特指那些依賴第三方服務(即後端即服務或者是「BaaS」)的應用或其自定義代碼跑在短週期容器中(函數即服務或「FaaS」),最知名的提供此類主機服務的廠商就是AWS Lambda。 在這個思想指導下, 而且將大量行爲移到前端,此類架構移除了對傳統部署在應用後「永遠在線」的服務系統。 在這種狀況下, 這種系統能夠明顯減小運維成本和複雜度,代價是對廠商的依賴和(目前)不太成熟的支持服務。數據庫
像不少軟件業的概念同樣‘Serverless’沒有一個明確的定義, 下面兩種不一樣風格但互相覆蓋的領域仍然很難解釋這個概念:後端
Serverless最初用來描述那種重度或徹底依賴第三方應用/服務(在雲上)來管理服務端邏輯和狀態的應用。這些通常是使用巨大雲上生態系統的數據庫(像Parse
,Firebase),認證服務(Auth0, AWS Cognito)的「富客戶端」應用(想一下單頁網站應用,或者移動應用)。此種類型的服務以前被描述爲「(移動)後端即服務」,我在文章的後面會用「Baas」做爲這個詞的縮寫。服務器
Serverless也能夠指代那種大量的服務器端邏輯仍然是由應用開發者來完成的而不像傳統運行在無狀態計算機容器的架構 - 由事件觸發,週期短暫(只會在一次調用中存在),而且徹底由第三方管理。(感謝ThoughtWorks定義的技術雷達)。 能夠認爲這就是「Functions as a service/FaaS」。 AWS Lambda是目前最流行的FaaS實現,但還有其餘的。在本文後面我會用「FaaS」在指代這種形式的Serverless。架構