什麼是無伺服器(Serverless),為什麼你應該關心呢?
無伺服器(Serverless)是一種運行程式的方式,不需要自行管理伺服器。
你只需要創建一個函數,將其放置在雲端伺服器的某個位置,然後你只需要一個URL來呼叫。
當你呼叫該URL時,函數就會執行。
其他人負責管理伺服器、擴展性和安全性。無需擔心核心更新或升級到Linux發行版的下一個LTS版本。
從價格模型上看,無伺服器也非常方便。傳統上,你可能每月租用一個VPS(虛擬私有伺服器),無論你實際使用量如何,你都需要支付每月價格。
如果你的網站在某個熱門地方被分享,用戶數量激增,除非你升級到更大的伺服器,否則伺服器可能無法處理所有請求。
使用無伺服器,你只需支付每個請求的費用,而不是伺服器的價格。如果沒有人使用你的服務,你不需要支付任何費用。如果有10萬人同時訪問你的網站,你的函數將自動擴展,因為為你管理函數的公司已經為處理流量準備好了一切,它會自動為你的函數提供更多的資源。你只需支付實際使用的資源,而不是某些未來可能使用的資源。
對於獨立開發者來說,當做得好時,無伺服器也從心理角度上為他們帶來很大的解放感。你不需要負責支撐你的應用程式的伺服器,所以你不需要全天候提供支援來解決可能發生的任何問題。你不需要成為系統管理員或運維專家來執行你的應用程式。
聽起來像是夢幻世界,那麼有什麼問題呢?
首先,無伺服器仍處於早期階段。各大廠商對於無伺服器都有不同的實現方式,周邊工具的品質也各有不同。
從價格的角度來看,如果你的流量有一定的預測性且你可以以較低的成本購買伺服器,例如在AWS上預訂實例,那麼使用無伺服器可能並不划算。
你也無法控制伺服器,這意味著你必須依賴於可用的基礎設施進行日誌記錄、監控和調試,並且很難在本地複製你的設置。
市場上有哪些主要的參與者?
AWS Lambda可能是最著名和最被使用的,目前支援Java、Go、PowerShell、Node.js、C#、Python和Ruby的無伺服器函數的創建。
AWS Lambda是為開發人員提供簡化無伺服器方案的產品所使用的底層服務:
他們在 https://aws.amazon.com/lambda/faqs/ 上有一個很棒的常見問題解答,我建議你去閱讀一下。