Cloudflare:無服務器計算和平臺即服務有何不同?

來源: Cloudflare
作者:Cloudflare
時間:2021-03-01
17663
無服務器計算和平臺即服務(PaaS)后端架構都使整個后端對開發(fā)人員不可見,因此有一定的相似性。但是,也有幾個重要差別能區(qū)分這兩種架構,而且大多數(shù)用例在其中一種用例中效果最佳,而不是兩者皆一樣。PaaS 與無服務器之間的主要差異在于可擴展性、定價、啟動時間、工具,以及能否部署到網(wǎng)絡邊緣。

無服務器計算和平臺即服務(PaaS)有何不同?

無服務器計算和平臺即服務(PaaS)后端架構都使整個后端對開發(fā)人員不可見,因此有一定的相似性。但是,也有幾個重要差別能區(qū)分這兩種架構,而且大多數(shù)用例在其中一種用例中效果最佳,而不是兩者皆一樣。PaaS 與無服務器之間的主要差異在于可擴展性、定價、啟動時間、工具,以及能否部署到網(wǎng)絡邊緣。

微信圖片_20210301113751.png

PaaS 和無服務器架構可擴展性較好的是哪個?

無服務器應用程序可以即時、自動和按需擴展,無需開發(fā)人員或供應商進行任何額外配置。它們天生可以擴展。相反,盡管開發(fā)人員可以對 PaaS 托管的應用程序進行編程,以根據(jù)用戶需求進行擴展和收縮,但這并不是 PaaS 固有的功能,開發(fā)人員將必須進行一定數(shù)量的預測才能正確擴展。

無服務器計算可以比作從自來水管取水,其中水代表了計算能力。現(xiàn)代家庭中的自來水可以隨時打開,并可以產(chǎn)生所需的水量。PaaS 更像是使用飲水機和桶裝水送水服務。盡管仍然能獲取所需數(shù)量的飲用水,但不如打開水龍頭那樣簡便;一旦需求增加,消費者必須要求供應商提高供應量。這兩種情況下都是由他人處理“后端”(將水凈化,并送入建筑物等),但只有自來水可以精確、按需和實時增減數(shù)量。

無服務器架構能夠通過按要求擴充應用程序功能的新實例來快速擴展。也可在不再需要時或運行了設定的時限后,通過關閉功能來快速縮減。實際上,無服務器 Web 應用程序能夠一直縮減到無活動狀態(tài),然后在幾秒或幾毫秒內(nèi)再次啟動以響應事件。基于 PaaS 構建的應用程序無法以這樣的速度或程度進行縮放。

PaaS 和無服務器在定價上有何不同?

繼續(xù)以水作比喻,使用自來水的消費者依據(jù)確切用水量支付水費。同樣,無服務器計費極為精確,開發(fā)人員僅支付實際使用量的費用。一些無服務器供應商只向開發(fā)人員收取其功能確切運行時長的費用,對于各項功能的每個單獨實例可以精確到幾分之一秒。其他提供商則按照請求數(shù)來收費。

使用飲水機和桶裝水送水服務的消費者也只為實際用量付費,但以桶數(shù)而不是公升數(shù)來計費。同樣,一些 PaaS 供應商只向開發(fā)人員收取其應用程序使用量的費用。但是,計費的準確性不如無服務器。其他 PaaS 供應商則為其服務收取固定的月費。開發(fā)人員通常能夠自定義要付費的計算能力的大小。但是,這是事先決定的,不能實時響應使用量的增減。

這種差異并不一定意味著無服務器架構總是更加便宜。就像自來水管不斷流水會迅速增加費用,如果 Web 應用程序的使用量持續(xù)較高并且波動不大,那么使用服務器計算來運行會變得非常昂貴。

PaaS 和無服務器應用程序在啟動時間上有何不同?

如上所述,一旦有事件觸發(fā)應用程序功能,無服務器應用程序幾乎能在瞬間變?yōu)榛顒訝顟B(tài)。PaaS 構建的應用程序可以快速啟動和運行,但不如無服務器應用程序那樣輕巧,而且需要更長的時間才能啟動和運行。為了避免用戶角度的延遲,PaaS 應用程序必須至少有某些功能在大多數(shù)時間或一直保持運行。

PaaS 和無服務器供應商提供哪些工具?

一般而言,PaaS 供應商會為開發(fā)人員提供更多工具來構建和管理其應用程序,包括用于測試和調(diào)試的工具。無服務器應用程序不會在指定的機器上運行(不論是虛擬機還是其他類型),并且無服務器功能無論如何都應以相同狀態(tài)運行,因此無服務器供應商可能會提供一些工具,但不會提供用于構建和測試應用程序的完整環(huán)境。

無服務器應用程序能否部署到網(wǎng)絡邊緣?

無服務器代碼不會在特定的服務器上運行,可以在互聯(lián)網(wǎng)的任何部分上的任意位置上運行;因此,無服務器應用程序可以部署到網(wǎng)絡邊緣非??拷罱K用戶的位置,從而大大減少延遲。例如,Service Workers 和 Cloudflare Workers 就是在用戶附近運行的服務器功能(請參閱無服務器 JavaScript 如何工作?)。

使用 PaaS 構建的應用程序能否部署到網(wǎng)絡邊緣?

從開發(fā)人員的角度來看,PaaS 中沒有服務器。但是,就代碼的托管位置而言,PaaS 與無服務器計算依然不同。PaaS 供應商要么利用其他供應商的 IaaS(基礎設施即服務)產(chǎn)品,要么擁有自己的物理數(shù)據(jù)中心。這樣的結果是,在云平臺上構建的應用程序有可能僅在某些指定的機器上運行,導致開發(fā)人員無法通過在邊緣運行代碼來優(yōu)化其應用程序的性能。

立即登錄,閱讀全文
版權說明:
本文內(nèi)容來自于Cloudflare,本站不擁有所有權,不承擔相關法律責任。文章內(nèi)容系作者個人觀點,不代表快出海對觀點贊同或支持。如有侵權,請聯(lián)系管理員(zzx@kchuhai.com)刪除!
優(yōu)質(zhì)服務商推薦
更多
個人VIP