什么是功能即服務?
功能即服務(FaaS) 是在邊緣執(zhí)行模塊化代碼段的無服務器方法。FaaS 使開發(fā)人員可以即時編寫和更新一段代碼,然后在響應事件(例如用戶單擊 Web 應用程序中的元素)時執(zhí)行該代碼。這使得擴展代碼變得容易,并且是實現(xiàn)微服務的一種經(jīng)濟高效的方法。
什么是微服務?
如果說 Web 應用程序是視覺藝術(shù)作品,那么使用微服務架構(gòu)就像制作馬賽克拼貼畫。藝術(shù)家可以輕松地一次添加、更換和修復一小塊瓷磚。單體架構(gòu)就像在一塊畫布上繪出整個作品。
這種用一組模塊化組件構(gòu)建應用程序的方法稱為微服務體系結(jié)構(gòu)。將應用程序劃分為微服務對開發(fā)人員而言很有吸引力,因為這意味著開發(fā)人員可以創(chuàng)建和修改可輕松實施到代碼庫中的小段代碼。這與單體架構(gòu)相反,在單體架構(gòu)中,所有代碼都交織到一個大型系統(tǒng)中。對于大型的單體系統(tǒng),即使對應用程序進行很小的更改,也需要繁重的部署過程。FaaS 消除了這種部署復雜性。
使用 FaaS 等無服務器代碼,Web 開發(fā)人員可以專注于編寫應用程序代碼,而無服務器提供商則負責服務器分配和后端服務。
使用 FaaS 有什么優(yōu)勢?
提高開發(fā)人員速度
使用 FaaS,開發(fā)人員可以將更多的時間花在編寫應用程序邏輯上,而將更少的時間用于服務器和部署上。這通常意味著開發(fā)周期更短。
內(nèi)置可擴展性
由于 FaaS 代碼固有可擴展性,因此開發(fā)人員不必擔心會因為高流量或大量使用而產(chǎn)生意外情況。無服務器提供商將處理所有擴展問題。
成本效益
與傳統(tǒng)的云提供商不同,無服務器 FaaS 提供商不會向客戶收取空閑計算時間的費用。因此,客戶僅需對使用時間支付費用,而無需浪費金錢來過度配置云資源。
FaaS 的缺點是什么?
更少系統(tǒng)控制
由第三方管理基礎設施的一部分會使您難以理解整個系統(tǒng),并增加了調(diào)試挑戰(zhàn)。
測試的復雜性提高
將 FaaS 代碼合并到本地測試環(huán)境中可能非常困難,因此對應用程序進行全面測試會成為一項更加繁重的任務。
如何開始使用 FaaS
開發(fā)人員必須與無服務器提供商建立關(guān)系,方可將 FaaS 功能用于 Web 應用程序。由于 FaaS 集成意味著將從邊緣傳送一些應用程序代碼,因此邊緣服務器的可用性和地理分布是一個重要的考慮因素。意大利的用戶訪問依賴于巴西一個超載數(shù)據(jù)中心提供的 FaaS 邊緣代碼的站點時,會遇到導致高跳出率的延遲。Cloudflare Workers 是一個 FaaS 解決方案,它利用 Cloudflare 的全球網(wǎng)絡(由 194 臺邊緣服務器組成),因此成為一個大受歡迎的選擇。