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