功能即服務 (FaaS) 是一種在邊緣執行模塊化代碼的無服務器方式。FaaS 讓開發人員可以即時編寫和更新一段代碼,然后可以執行該代碼以響應事件,例如用戶單擊 Web 應用程序中的元素。這使得擴展代碼變得容易,并且是實現微服務的一種經濟高效的方式。
什么是微服務?
如果一個 Web 應用程序是一件視覺藝術作品,那么使用微服務架構就像用一組馬賽克瓷磚制作藝術一樣。藝術家可以輕松地一次添加、更換和修復一塊瓷磚。單體建筑就像在一張畫布上繪制整個作品。
這種從一組模塊化組件構建應用程序的方法稱為微服務架構。將應用程序劃分為微服務對開發人員很有吸引力,因為這意味著他們可以創建和修改可以輕松實現到他們的代碼庫中的小段代碼。這與單體架構形成對比,在單體架構中,所有代碼都交織在一個大型系統中。對于大型單體系統,即使是對應用程序的微小更改也需要大量的部署過程。FaaS 消除了這種部署復雜性。
使用 FaaS 等無服務器代碼,Web 開發人員可以專注于編寫應用程序代碼,而無服務器提供商負責服務器分配和后端服務。
使用 FaaS 的優勢是什么?
提高開發者速度
借助 FaaS,開發人員可以花更多時間編寫應用程序邏輯,而不必花時間擔心服務器和部署。這通常意味著更快的開發周轉。
內置可擴展性
由于 FaaS 代碼本質上是可擴展的,因此開發人員不必擔心為高流量或大量使用創建意外事件。無服務器提供商將處理所有擴展問題。
成本效益
與傳統的云提供商不同,無服務器 FaaS 提供商不會向客戶收取空閑計算時間的費用。正因為如此,客戶只需為他們使用的計算時間付費,并且不需要浪費金錢過度配置云資源。
FaaS 的缺點是什么?
更少的系統控制
讓第三方管理部分基礎設施使得理解整個系統變得很困難,并增加了調試挑戰。
測試需要更多復雜性
將 FaaS 代碼合并到本地測試環境中可能非常困難,這使得對應用程序的徹底測試成為一項更加密集的任務。
如何開始使用 FaaS
開發人員必須與無服務器提供商建立關系,才能為 Web 應用程序啟用 FaaS 功能。由于 FaaS 集成意味著一些應用程序代碼將從邊緣交付,邊緣服務器的可用性和地理分布是一個重要的考慮因素。意大利用戶訪問依賴于巴西超載數據中心提供的 FaaS 邊緣代碼的站點時,會遇到導致高跳出率的延遲。