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