本文探討了 Vercel 的功能,并與 Cloudflare 生態(tài)系統(tǒng)中的類(lèi)似產(chǎn)品進(jìn)行了比較。從托管到存儲(chǔ),我們將看到為什么 Cloudflare 可以在 2024 年成為 Vercel 的最佳替代品。
最近,我們看到了很多關(guān)于所謂的無(wú)服務(wù)器恐怖故事的大驚小怪,或者無(wú)服務(wù)器計(jì)算的無(wú)限規(guī)模可能導(dǎo)致月底的巨額賬單。事實(shí)上,Vercel 對(duì)開(kāi)發(fā)人員來(lái)說(shuō)是一個(gè)很好的平臺(tái),但與其他替代方案相比,價(jià)格可能會(huì)比較昂貴。
如果您犯了錯(cuò)誤,或者沒(méi)有很好地了解該平臺(tái)的工作原理以及如何優(yōu)化您的網(wǎng)站或應(yīng)用程序,Vercel 確實(shí)會(huì)讓您付出高昂的代價(jià)。例如,伊利亞斯-伊斯姆(Ilias Ism)分享了他如何在 Vercel 上每月被收取 2000 多美元的基本服務(wù)費(fèi)。
但這并不是唯一或最可怕的故事。
互聯(lián)網(wǎng)上還有許多其他帖子描述開(kāi)發(fā)人員為一個(gè)簡(jiǎn)單的網(wǎng)站或應(yīng)用程序收取數(shù)千美元的費(fèi)用。邁克爾·奧伯里 (Michael Aubury) 就是這種情況,當(dāng)有人針對(duì)他的 Vercel 部署進(jìn)行 DDoS 攻擊時(shí),他收到了 23,000 美元的賬單,而邁克·拉米雷斯 (Mike Ramirez) 在 6 小時(shí)內(nèi)收到了 3,000 美元的賬單,因?yàn)樗拇a中的一個(gè)小錯(cuò)誤。
如果您正在尋找 Vercel 更具成本效益的替代品,Cloudflare 是一個(gè)不錯(cuò)的選擇。Cloudflare 提供廣泛的服務(wù),可以幫助您優(yōu)化網(wǎng)站或應(yīng)用程序,并且可以成為 Vercel 的絕佳替代品。
當(dāng)然,您不需要將整個(gè)應(yīng)用程序遷移到 Cloudflare,完全離開(kāi) Vercel。例如,Ilias 就采取了一種混合方法,包括將圖像優(yōu)化轉(zhuǎn)移到 Cloudflare,做出更好的開(kāi)發(fā)選擇(如禁用 <Link>
標(biāo)記中的預(yù)取),以及在 Vercel 生態(tài)系統(tǒng)本身中進(jìn)行移動(dòng)(如盡可能使用 edge runtime)。
在本文中,我們將探討 Vercel 的功能和定價(jià),以及 Cloudflare 如何在 2024 年成為 Vercel 的最佳替代品。
很難用幾句話(huà)來(lái)解釋 Cloudflare 是什么。它以其 CDN 和安全服務(wù)而聞名,但這還不是全部。它是一個(gè)無(wú)服務(wù)器托管平臺(tái),可以幫助您以經(jīng)濟(jì)高效的方式部署您的網(wǎng)站或應(yīng)用程序,一個(gè)可以幫助您管理域的 DNS 注冊(cè)商,一個(gè)可以幫助您管理 DNS 記錄的 DNS 提供商。遠(yuǎn)不止于此。
老實(shí)說(shuō),說(shuō)到網(wǎng)絡(luò)基礎(chǔ)設(shè)施,Cloudflare 是你所能想到的最好、更快、更安全的互聯(lián)網(wǎng)。Cloudflare Edge 網(wǎng)絡(luò)是其所有服務(wù)的核心,它是一個(gè)全球服務(wù)器網(wǎng)絡(luò),在終端用戶(hù)附近運(yùn)行代碼、提供計(jì)算和存儲(chǔ)數(shù)據(jù),從而減少延遲并提高性能。
當(dāng)然,Vercel 也擁有全球服務(wù)器網(wǎng)絡(luò),但 Cloudflare 網(wǎng)絡(luò)要大得多。Vercel 的網(wǎng)絡(luò)有 18 個(gè)區(qū)域和 100 多個(gè)接入點(diǎn),而 Cloudflare 在全球擁有 300 多個(gè)數(shù)據(jù)中心。
部署數(shù)據(jù)中心的可用性也是 Cloudflare 的一大優(yōu)勢(shì)。在 Vercel 和 AWS 等其他提供商一樣,您必須選擇一個(gè)地區(qū)來(lái)部署您的應(yīng)用程序。而在 Cloudflare,區(qū)域就是全世界。您無(wú)需擔(dān)心應(yīng)用程序部署在哪里或數(shù)據(jù)存儲(chǔ)在哪里。
您的網(wǎng)站始終位于網(wǎng)絡(luò)邊緣,靠近所有最終用戶(hù)。
圖片
讓我們從 Vercel 開(kāi)始。
Vercel 之所以如此受歡迎,是因?yàn)樗雇泄芫W(wǎng)站或 Web 應(yīng)用程序變得如此簡(jiǎn)單。從字面上看,您可以將 Github 存儲(chǔ)庫(kù)連接到 Vercel 并部署您的網(wǎng)站,只需單擊幾下即可,而不必?fù)?dān)心服務(wù)器、基礎(chǔ)設(shè)施或其他任何事情。
你要做的是將你的代碼推送到 Github,創(chuàng)建并將其導(dǎo)出到一個(gè)項(xiàng)目和 vercel 中,并在每次推送到存儲(chǔ)庫(kù)時(shí)開(kāi)始部署。Vercel 將構(gòu)建您的網(wǎng)站并將其部署到云端,使其可供全世界使用。
它與 Next.js 有很好的集成,因?yàn)樗怯?Vercel 團(tuán)隊(duì)創(chuàng)建的,但它也支持各種最流行的前端框架,無(wú)論您使用什么工具,都可以?xún)?yōu)化您的網(wǎng)站構(gòu)建方式。
在 Vercel 上托管您的網(wǎng)站時(shí),它主要按帶寬或從您的網(wǎng)站向用戶(hù)傳輸?shù)臄?shù)據(jù)量收費(fèi)。傳輸?shù)臄?shù)據(jù)包括傳出數(shù)據(jù)(即從您的網(wǎng)站向用戶(hù)發(fā)送的數(shù)據(jù))和傳入數(shù)據(jù)(即從您的用戶(hù)向您的網(wǎng)站發(fā)送的數(shù)據(jù))。
最初,免費(fèi)計(jì)劃包括每月 100 GB 的帶寬,專(zhuān)業(yè)計(jì)劃包括每月 1 TB 的帶寬。如果超出帶寬限制,每增加 100 GB 帶寬將收取 40 美元。但在新的定價(jià)模式下,不再有一刀切的做法,Vercel 將托管應(yīng)用程序和網(wǎng)站的帶寬定價(jià)分為三個(gè)變量:快速數(shù)據(jù)傳輸(Fast Data Transfer)、邊緣請(qǐng)求(Edge Request) 和 數(shù)據(jù)緩存(Data Cache) 。
快速數(shù)據(jù)傳輸是在 Vercel Edge Newtwork 和最終用戶(hù)之間傳輸?shù)臄?shù)據(jù)。免費(fèi)計(jì)劃包括 100 GB 的快速數(shù)據(jù)傳輸,Pro 計(jì)劃包括 1TB 的快速數(shù)據(jù)傳輸,額外費(fèi)用為每 GB 0.15 美元起。現(xiàn)在,價(jià)格將因傳輸數(shù)據(jù)的地區(qū)而異:
邊緣請(qǐng)求(Edge Request)是指在向最終用戶(hù)提供您的網(wǎng)站或應(yīng)用程序時(shí)向 Vercel 邊緣網(wǎng)絡(luò)發(fā)出的請(qǐng)求數(shù)量。當(dāng)用戶(hù)訪(fǎng)問(wèn)您的網(wǎng)站時(shí),他們的請(qǐng)求會(huì)路由到最近的 Vercel 邊緣網(wǎng)絡(luò),從而減少延遲并提高性能。例如,加載單個(gè)網(wǎng)頁(yè)可能涉及對(duì) HTML 文檔、CSS 文件、JavaScript 文件、圖像等的請(qǐng)求。這些請(qǐng)求中的每一個(gè)都計(jì)為一個(gè)邊緣請(qǐng)求,并根據(jù) Vercel 的定價(jià)模型產(chǎn)生費(fèi)用。
免費(fèi)計(jì)劃包括每月 100 萬(wàn)次邊緣請(qǐng)求,專(zhuān)業(yè)計(jì)劃包括每月 1000 萬(wàn)次邊緣請(qǐng)求,每 100 萬(wàn)次邊緣請(qǐng)求額外收費(fèi) 2 美元。價(jià)格也因請(qǐng)求所在地區(qū)而異:
數(shù)據(jù)緩存是指已寫(xiě)入 Vercel 邊緣網(wǎng)絡(luò)以進(jìn)行快速訪(fǎng)問(wèn)并隨后從緩存存儲(chǔ)中檢索(讀取)的所有數(shù)據(jù)的總和。定價(jià)因?qū)彺娲鎯?chǔ)執(zhí)行的操作(寫(xiě)入或讀取)以及緩存數(shù)據(jù)的區(qū)域而異。免費(fèi)計(jì)劃包括 2M 字節(jié)的緩存寫(xiě)入和 10M 字節(jié)的緩存讀取,而 Pro 計(jì)劃每增加 1M 字節(jié)的緩存寫(xiě)入收取 4 美元,每增加 1M 字節(jié)的緩存讀取收取 0.40 美元。定價(jià)也會(huì)因緩存數(shù)據(jù)的區(qū)域而異:
每 1M 字節(jié) 4 美元:美國(guó)克利夫蘭 (cle1)、美國(guó)華盛頓特區(qū) (iad1)、美國(guó)波特蘭 (pdx1)
每 1M 字節(jié) 4.40 USD:瑞典斯德哥爾摩 (arn1)、印度孟買(mǎi) (bom1)
每 1M 字節(jié) 4.80 美元:英國(guó)倫敦 (lhr1)、都柏林 (dub1)、法國(guó)巴黎 (cdg1)、美國(guó)舊金山 (sfo1)
每 1M 字節(jié) 5.20 美元:新加坡 (sin1)、澳大利亞悉尼 (syd1)、日本大阪 (kix1)、韓國(guó)首爾 (icn1)、日本東京 (hnd1)、德國(guó)法蘭克福 (fra1)
每 1M 字節(jié) 5.60 美元:中國(guó)香港 (hkg1)、南非開(kāi)普敦 (cpt1)
每 1M 字節(jié) 6.40 美元:巴西圣保羅 (gru1)
您需要注意的其他變量包括構(gòu)建執(zhí)行時(shí)間,或在部署期間構(gòu)建網(wǎng)站或應(yīng)用程序所需的時(shí)間,以及并發(fā)構(gòu)建,或可以同時(shí)運(yùn)行的構(gòu)建數(shù)。
免費(fèi)計(jì)劃包括 1 個(gè)并發(fā)版本,Pro 計(jì)劃還包括 1 個(gè),每增加一個(gè)并發(fā)版本收費(fèi) 50 美元。關(guān)于構(gòu)建執(zhí)行時(shí)間,免費(fèi)計(jì)劃包括 6,000 分鐘的構(gòu)建時(shí)間,Pro 計(jì)劃包括 24,000 分鐘的構(gòu)建時(shí)間。
在 Vercel 中,Pro 計(jì)劃的起價(jià)為每月 20 美元。
Cloudflare 呢?
Cloudflare 提供與 Vercel 類(lèi)似的服務(wù),稱(chēng)為 Cloudflare Pages。
Cloudflare Pages 最初是一種 JAMstack 托管服務(wù),通過(guò)利用 Cloudflare 邊緣網(wǎng)絡(luò)快速安全地交付網(wǎng)站而聲名鵲起,但現(xiàn)在它已經(jīng)發(fā)展成為一個(gè)完整的無(wú)服務(wù)器托管平臺(tái),可以運(yùn)行任何類(lèi)型的應(yīng)用程序,從靜態(tài)網(wǎng)站到需要服務(wù)器端邏輯的全棧 Web 應(yīng)用程序。
與 Vercel 一樣,您還可以連接您的 Github 存儲(chǔ)庫(kù)并部署您的網(wǎng)站,只需單擊幾下即可。無(wú)論您使用的是Next.js還是任何其他框架,Cloudflare Pages 都會(huì)構(gòu)建您的網(wǎng)站并將其部署到云端,使其可供全世界使用。
您可以看到的 Vercel 和 Cloudflare Pages 之間的最大區(qū)別是定價(jià)。Cloudflare Pages 比 Vercel 更具成本效益,主要是因?yàn)樗皇杖捹M(fèi)用。
沒(méi)錯(cuò),在 Cloudflare Pages 上托管您的網(wǎng)站時(shí),您無(wú)需按帶寬計(jì)費(fèi),因此您無(wú)需擔(dān)心有多少用戶(hù)正在訪(fǎng)問(wèn)您的網(wǎng)站或傳輸了多少數(shù)據(jù)。
與 Vercel 一樣,Cloudflare Pages 也限制并發(fā)構(gòu)建和帳戶(hù)每月可以運(yùn)行的構(gòu)建總數(shù)。免費(fèi)計(jì)劃包括每月 1 次并發(fā)構(gòu)建和 500 次構(gòu)建,Pro 計(jì)劃包括每月 5 次并發(fā)構(gòu)建和 5,000 次構(gòu)建。
在 Cloudflare,專(zhuān)業(yè)計(jì)劃的起價(jià)為每月 25 美元。
圖片
無(wú)服務(wù)器函數(shù)(Serverless functions)是向網(wǎng)站添加動(dòng)態(tài)功能的好方法。它們基本上是在云中運(yùn)行的代碼片段,可以由 HTTP 請(qǐng)求、數(shù)據(jù)庫(kù)更改或計(jì)劃任務(wù)等事件觸發(fā)。
Vercel 提供一項(xiàng)名為 Vercel Functions 的服務(wù),允許您在靠近用戶(hù)的 Vercel 邊緣網(wǎng)絡(luò)中運(yùn)行無(wú)服務(wù)器函數(shù)。這些函數(shù)可按需自動(dòng)擴(kuò)展,并可與 Web 和 Vercel 生態(tài)系統(tǒng)中的 API、數(shù)據(jù)庫(kù)和資源進(jìn)行交互。
基礎(chǔ)結(jié)構(gòu)和無(wú)服務(wù)器函數(shù)可以執(zhí)行的操作受您為函數(shù)選擇的運(yùn)行時(shí)環(huán)境的限制。可用的運(yùn)行時(shí)包括:Node.js、Go、Ruby、Python 和 Edge 運(yùn)行時(shí)。在 Edge 運(yùn)行時(shí)運(yùn)行的無(wú)服務(wù)器函數(shù)更輕量級(jí),計(jì)費(fèi)方式也不同。
Vercel 函數(shù)可能會(huì)受到冷啟動(dòng)的影響,冷啟動(dòng)是指首次調(diào)用非活動(dòng)函數(shù)時(shí)出現(xiàn)的延遲,因?yàn)楹瘮?shù)必須初始化并加載到內(nèi)存中。冷啟動(dòng)可以通過(guò)保持函數(shù)預(yù)熱或定期調(diào)用來(lái)減少,以防止函數(shù)被掛起。
與 AWS lambda 一樣,Vercel 會(huì)要求您選擇要部署函數(shù)的區(qū)域。這是一個(gè)關(guān)鍵步驟,可能會(huì)對(duì)延遲和性能產(chǎn)生很大影響,因?yàn)楹瘮?shù)離用戶(hù)越近,執(zhí)行速度就越快。如果您使用 vercel 存儲(chǔ)服務(wù),例如 KV 或 Postgres,您還應(yīng)該考慮存儲(chǔ)數(shù)據(jù)的區(qū)域,并在該區(qū)域附近部署函數(shù)。
在 2024 年 4 月的定價(jià)更新之前,Vercel 不像 AWS 那樣按地區(qū)收費(fèi),但現(xiàn)在由于數(shù)據(jù)傳輸成本的原因,定價(jià)會(huì)因執(zhí)行函數(shù)的地區(qū)而異。函數(shù)持續(xù)時(shí)間和調(diào)用在各地區(qū)的價(jià)格仍然相同,但數(shù)據(jù)傳輸?shù)氖召M(fèi)將有所不同。
出于計(jì)費(fèi)目的,Edge 函數(shù)按 CPU 時(shí)間或直接執(zhí)行函數(shù)所花費(fèi)的時(shí)間收費(fèi),而其他運(yùn)行時(shí)按掛鐘時(shí)間或函數(shù)運(yùn)行的總時(shí)間收費(fèi),包括空閑時(shí)間或啟動(dòng)環(huán)境并將函數(shù)加載到內(nèi)存中所需的時(shí)間。CPU 時(shí)間以每個(gè) 50 毫秒的執(zhí)行單位來(lái)衡量,而掛鐘時(shí)間以 GB-小時(shí)為單位,即為每個(gè)函數(shù)分配的內(nèi)存(以 GB 為單位)乘以它們運(yùn)行的時(shí)間(以小時(shí)為單位)。
在定價(jià)更新之前,免費(fèi)計(jì)劃包括 500,000 個(gè) Edge 函數(shù)執(zhí)行單元和 100 GB 小時(shí)無(wú)服務(wù)器函數(shù),而 Pro 計(jì)劃包括 1M 個(gè)邊緣功能執(zhí)行單元,1,000 GB 小時(shí)無(wú)服務(wù)器函數(shù),每增加 1M 個(gè)執(zhí)行單元收取 2.00 美元,每增加 100 GB 小時(shí)收取 40 美元。
現(xiàn)在,免費(fèi)計(jì)劃包括 1M 的 Edge 運(yùn)行時(shí)函數(shù)執(zhí)行單元和 1000 GB 小時(shí)的無(wú)服務(wù)器函數(shù),而 Pro 計(jì)劃每增加 1M 執(zhí)行單元收取 2 美元,每增加 100 GB 小時(shí)收取 18 美元(每 1GB 小時(shí) 0.18 美元)。
除了持續(xù)時(shí)間變量之外,Vercel 現(xiàn)在還對(duì)兩個(gè)新變量收費(fèi):函數(shù)調(diào)用和數(shù)據(jù)傳輸。這是定價(jià)模式的一大變化,因?yàn)橐郧澳恍枰獮楹瘮?shù)運(yùn)行的時(shí)間付費(fèi)。
函數(shù)調(diào)用是函數(shù)被調(diào)用的次數(shù),包括成功和失敗的調(diào)用。免費(fèi)計(jì)劃包括 1M 函數(shù)調(diào)用,而 Pro 計(jì)劃包括 10M 調(diào)用,每增加 0.60M 調(diào)用收費(fèi) 1 美元。
在無(wú)服務(wù)器函數(shù)的上下文中,數(shù)據(jù)傳輸稱(chēng)為快速源傳輸,是指在 Vercel 邊緣網(wǎng)絡(luò)和您的函數(shù)之間傳輸?shù)臄?shù)據(jù)。免費(fèi)計(jì)劃包括 100 GB 的快速源傳輸,Pro 計(jì)劃包括 1TB 的快速源傳輸,額外費(fèi)用為每 GB 0.06 美元。價(jià)格也會(huì)因數(shù)據(jù)傳輸區(qū)域而異:
Cloudflare 還提供一種名為 Cloudflare Workers[1] 的服務(wù),允許您在 Cloudflare 邊緣網(wǎng)絡(luò)中運(yùn)行無(wú)服務(wù)器函數(shù),以接近您的用戶(hù)。該函數(shù)還能按需自動(dòng)擴(kuò)展,并能與 API、數(shù)據(jù)庫(kù)以及網(wǎng)絡(luò)和 Cloudflare 生態(tài)系統(tǒng)中的資源進(jìn)行交互。
目前,Cloudflare 無(wú)服務(wù)器函數(shù)必須用 TypeScript/JavaScript 或任何可以編譯為 WebAssembly 的語(yǔ)言編寫(xiě)。
Cloudflare Workers 不會(huì)受到冷啟動(dòng)的影響,因?yàn)樗\(yùn)行在 V8 isolates[2] 之上,可以在 5 毫秒內(nèi)預(yù)熱函數(shù)。這意味著您的函數(shù)隨時(shí)可以執(zhí)行,無(wú)論它們處于非活動(dòng)狀態(tài)多長(zhǎng)時(shí)間。與 Vercel 功能相比,這是一個(gè)巨大的優(yōu)勢(shì),因?yàn)槔鋯?dòng)對(duì)于某些應(yīng)用來(lái)說(shuō)可能是一個(gè)大問(wèn)題。
通過(guò)使用 Workers,您也無(wú)需擔(dān)心要部署應(yīng)用程序的區(qū)域。默認(rèn)情況下,在 Cloudflare 上,區(qū)域就是世界,這意味著您的代碼將始終在靠近您的資源和用戶(hù)的地方運(yùn)行。
由于 Cloudflare 杜絕了冷啟動(dòng),因此 Workers 不對(duì)掛壁時(shí)間收費(fèi),默認(rèn)情況下僅使用 CPU 時(shí)間計(jì)費(fèi)。免費(fèi)計(jì)劃包括每天 100,000 次請(qǐng)求和每次調(diào)用平均 10ms 的 CPU 時(shí)間,而標(biāo)準(zhǔn)計(jì)劃起價(jià)為 5 美元,包括每月 10,000,000 次請(qǐng)求和 30,000,000 CPUms。額外請(qǐng)求按每 1M 請(qǐng)求 0.30 美元計(jì)費(fèi),額外 CPUms 按每 1M CPUms 0.02 美元計(jì)費(fèi)。
圖片
Vercel KV 是一個(gè)持久的 Redis 數(shù)據(jù)庫(kù),可用于存儲(chǔ)和檢索 JSON 數(shù)據(jù)。它不是 Vercel 的原生服務(wù),而是由與 Upstash 合作提供支持的。
默認(rèn)情況下,在創(chuàng)建 KV 數(shù)據(jù)庫(kù)時(shí)指定的主區(qū)域中配置了一個(gè) Redis 數(shù)據(jù)庫(kù)。寫(xiě)操作將在這個(gè)主區(qū)域內(nèi)進(jìn)行。KV 數(shù)據(jù)庫(kù)可能有額外的讀取區(qū)域,讀取操作將在離觸發(fā)請(qǐng)求最近的區(qū)域運(yùn)行。
請(qǐng)注意,當(dāng)您這樣做時(shí),您正在復(fù)制數(shù)據(jù)庫(kù),這將成倍地增加服務(wù)的使用量和成本,因?yàn)槊總€(gè)寫(xiě)入命令將向您的主數(shù)據(jù)庫(kù)發(fā)出一次,向您配置的每個(gè)只讀副本發(fā)出一次。
并非所有 Vercel 區(qū)域都受 KV 存儲(chǔ)支持。實(shí)際上,僅支持以下區(qū)域:都柏林、法蘭克福、圣保羅、華盛頓、波特蘭、舊金山、新加坡和悉尼。
也不支持更改 Vercel KV 存儲(chǔ)的主要區(qū)域。如果要更改數(shù)據(jù)庫(kù)的區(qū)域,則必須創(chuàng)建一個(gè)新存儲(chǔ)并遷移所有數(shù)據(jù)。
KV 存儲(chǔ)月度費(fèi)用取決于四個(gè)主要變量,即:
Vercel KV 的替代品是 Cloudflare KV。Cloudflare KV[3] 是一個(gè)無(wú)服務(wù)器鍵值數(shù)據(jù)庫(kù),使您能夠在 Cloudflare 邊緣網(wǎng)絡(luò)上存儲(chǔ)和檢索數(shù)據(jù)。與 Vercel 不同的是,它是 Cloudflare 的原生服務(wù),并非由與其他公司的合作伙伴關(guān)系提供支持。它也不是 Redis 數(shù)據(jù)庫(kù),而是針對(duì) Cloudflare 上的邊緣計(jì)算進(jìn)行了優(yōu)化的鍵值數(shù)據(jù)庫(kù)。
訪(fǎng)問(wèn) Cloudflare KV 中數(shù)據(jù)的最常見(jiàn)方式是通過(guò) Workers,但您也可以通過(guò) Cloudflare API 進(jìn)行訪(fǎng)問(wèn)。
Cloudflare KV 是一個(gè)全球數(shù)據(jù)庫(kù),這意味著您的數(shù)據(jù)會(huì)復(fù)制到 Cloudflare 在全球的所有數(shù)據(jù)中心。您的數(shù)據(jù)不局限于單一地區(qū),您無(wú)需擔(dān)心在不同地區(qū)創(chuàng)建副本以獲得更好的性能。
Cloudflare KV 的定價(jià)和限制因您選擇的計(jì)劃和您正在執(zhí)行的操作的性質(zhì)而異。您無(wú)需按數(shù)據(jù)傳輸或創(chuàng)建的數(shù)據(jù)庫(kù)數(shù)量付費(fèi),而是按您發(fā)出的請(qǐng)求數(shù)和存儲(chǔ)的數(shù)據(jù)量付費(fèi)。
對(duì)于存儲(chǔ),在免費(fèi)計(jì)劃中,您最多可以存儲(chǔ) 1GB 的數(shù)據(jù),而在付費(fèi)計(jì)劃中,每增加 GB 數(shù)據(jù)需要支付 0.5 美元。
對(duì)于請(qǐng)求,在免費(fèi)計(jì)劃中,您每天最多可以發(fā)出 100,000 個(gè)讀取請(qǐng)求,每天最多可以發(fā)出 1,000 個(gè)寫(xiě)入、刪除和列出請(qǐng)求。在付費(fèi)計(jì)劃中,每增加 10M 讀取請(qǐng)求需要支付 0.5 美元,每增加 1M 寫(xiě)入、刪除和列出請(qǐng)求需要支付 5 美元。
圖片
Vercel 無(wú)服務(wù)器數(shù)據(jù)庫(kù)是一個(gè) PostgreSQL 數(shù)據(jù)庫(kù),旨在與 Vercel Functions 和您的前端框架集成。它也不是 Vercel 的原生服務(wù),而是由與 Neon 的合作伙伴關(guān)系提供支持的。
在儀表板中創(chuàng)建 Vercel Postgres 數(shù)據(jù)庫(kù)時(shí),會(huì)在您指定的區(qū)域中配置運(yùn)行 PostgreSQL 版本 15 的無(wú)服務(wù)器數(shù)據(jù)庫(kù)。該區(qū)域是讀寫(xiě)操作的路由,數(shù)據(jù)庫(kù)創(chuàng)建后不能更改。
可用于部署無(wú)服務(wù)器數(shù)據(jù)庫(kù)的區(qū)域并不多。目前僅支持克利夫蘭、華盛頓、波特蘭、法蘭克福、新加坡和悉尼。
區(qū)域的選擇對(duì)于應(yīng)用程序的性能至關(guān)重要,因?yàn)閿?shù)據(jù)庫(kù)越接近查詢(xún)它的函數(shù),響應(yīng)時(shí)間就越快。
另一個(gè)需要考慮的重要事項(xiàng)是 Vercel Postgres 數(shù)據(jù)庫(kù)并不總是處于活動(dòng)狀態(tài)。如果在指定的持續(xù)時(shí)間內(nèi)沒(méi)有傳入請(qǐng)求,則數(shù)據(jù)庫(kù)將縮減為零,從而有效地暫停計(jì)算時(shí)間計(jì)費(fèi)。這意味著,在非活動(dòng)狀態(tài)后訪(fǎng)問(wèn)數(shù)據(jù)庫(kù)時(shí),您可能會(huì)遇到長(zhǎng)達(dá) 1 秒的冷啟動(dòng)。在 Pro 計(jì)劃中,您可以配置非活動(dòng)時(shí)間閾值以降低冷啟動(dòng)頻率。
Vercel postgres 數(shù)據(jù)庫(kù)的總成本是根據(jù)五個(gè)因素計(jì)算的:
Vercel postgres 的替代品是 Cloudflare D1。Cloudflare D1 是基于 SQLite 構(gòu)建的 Workers 平臺(tái)原生的無(wú)服務(wù)器數(shù)據(jù)庫(kù),使您能夠在 Cloudflare 邊緣網(wǎng)絡(luò)上存儲(chǔ)和檢索數(shù)據(jù)。
Cloudflare D1[4] 是一個(gè)全球數(shù)據(jù)庫(kù),這意味著您的數(shù)據(jù)可在全球所有 Cloudflare 數(shù)據(jù)中心使用。您的數(shù)據(jù)不限于單個(gè)區(qū)域,區(qū)域的選擇不會(huì)影響應(yīng)用程序的性能。
D1 數(shù)據(jù)庫(kù)可從 Cloudflare 儀表板訪(fǎng)問(wèn),也可以通過(guò) SDK 通過(guò) Workers 訪(fǎng)問(wèn),或與 Drizzle 等 ORM 庫(kù)集成。
Cloudflare D1 也基于即用即付模式,這意味著您只需為使用的資源付費(fèi),并且可以像 Vercel 一樣擴(kuò)展到零,而不會(huì)在重新上線(xiàn)時(shí)遭受冷啟動(dòng)。在 Cloudflare D1 上,您無(wú)需按數(shù)據(jù)傳輸、計(jì)算時(shí)間或創(chuàng)建的數(shù)據(jù)庫(kù)數(shù)量付費(fèi),而是按存儲(chǔ)的數(shù)據(jù)量和讀取和寫(xiě)入的行數(shù)付費(fèi)。
讀取的行數(shù)是查詢(xún)讀取(掃描)的行數(shù),與每行的大小無(wú)關(guān),而寫(xiě)入的行數(shù)則衡量寫(xiě)入 D1 數(shù)據(jù)庫(kù)的行數(shù)。請(qǐng)注意,Cloudflare 對(duì)行掃描收費(fèi),而不是對(duì)查詢(xún)返回的行數(shù)收費(fèi)。因此,在使用 Cloudflare D1 時(shí),使用索引優(yōu)化數(shù)據(jù)庫(kù)對(duì)于降低成本至關(guān)重要。在表上定義索引可減少查詢(xún)?cè)诤Y選該索引字段時(shí)讀取的行數(shù)。
免費(fèi)計(jì)劃包括 1GB 的存儲(chǔ)空間,而在付費(fèi)計(jì)劃中,每增加 GB 數(shù)據(jù)需要支付 0.75 美元。
對(duì)于請(qǐng)求,在免費(fèi)計(jì)劃中,您每天最多可以發(fā)出 5M 行讀取請(qǐng)求和 100,00 行寫(xiě)入請(qǐng)求。在付費(fèi)計(jì)劃中,您每月最多有 25B 行讀取請(qǐng)求和 50M 行寫(xiě)入請(qǐng)求。其他請(qǐng)求的收費(fèi)標(biāo)準(zhǔn)為每 1M 行讀取請(qǐng)求 0.001 美元,每 1M 行寫(xiě)入請(qǐng)求 1 美元。
圖片
Vercel Images 是一項(xiàng)根據(jù)大小、質(zhì)量、格式和像素密度等因素管理圖像上傳、優(yōu)化和交付的服務(wù)。經(jīng)過(guò)優(yōu)化的圖像會(huì)自動(dòng)緩存在 Vercel 邊緣網(wǎng)絡(luò)上,確保在再次請(qǐng)求時(shí)更快地交付給用戶(hù)。
使用該服務(wù)的最佳方式是與 Next.js、Astro 和 Nuxt 等框架集成。當(dāng)您在每個(gè)框架中使用該 <Images>
組件并在 Vercel 上部署項(xiàng)目時(shí),平臺(tái)會(huì)自動(dòng)調(diào)整您的圖像并針對(duì)不同的屏幕尺寸進(jìn)行優(yōu)化。
Vercel Images 的定價(jià)基于計(jì)費(fèi)周期內(nèi)請(qǐng)求的唯一源圖像數(shù)量。源圖像是傳遞給 src
屬性的值,可以生成多個(gè)不同大小和質(zhì)量的優(yōu)化圖像。
免費(fèi)計(jì)劃包括 1000 個(gè)源圖像請(qǐng)求,而 Pro 計(jì)劃包括 5000 個(gè)源圖像請(qǐng)求,每 1000 個(gè)源圖像收費(fèi) 5 美元。
此外,將優(yōu)化圖像從 Vercel 的邊緣網(wǎng)絡(luò)傳送到客戶(hù)端時(shí)使用的帶寬需要付費(fèi)。
Cloudflare Images 是 Cloudflare 的一項(xiàng)類(lèi)似服務(wù),用于管理來(lái)自 Cloudflare 邊緣網(wǎng)絡(luò)的圖像的上傳、優(yōu)化和交付。圖像會(huì)自動(dòng)調(diào)整大小、壓縮并轉(zhuǎn)換為適合用戶(hù)設(shè)備和網(wǎng)絡(luò)條件的最有效格式。
您可以通過(guò) Cloudflare 控制面板或 Cloudflare API 將圖像上傳到 Cloudflare Images。上傳后,您可以直接通過(guò) Cloudflare CDN 或 Cloudflare API 訪(fǎng)問(wèn)圖像。
上傳圖像后,可使用圖像變體調(diào)整圖像大小,以適應(yīng)不同的使用情況。默認(rèn)情況下,圖片使用公共變體提供,但您也可以針對(duì)不同的屏幕尺寸、設(shè)備和網(wǎng)絡(luò)條件創(chuàng)建多達(dá) 100 個(gè)自定義變體。您還可以在通過(guò) URL 或 Cloudflare Workers 請(qǐng)求時(shí)轉(zhuǎn)換圖像,但請(qǐng)注意,轉(zhuǎn)換與交付的圖像分開(kāi)計(jì)費(fèi)。
Cloudflare Images 定價(jià)基于后付費(fèi)模式,根據(jù)每月交付、轉(zhuǎn)換和存儲(chǔ)的圖像總數(shù)收費(fèi)。
如果您將圖片存儲(chǔ)在 Cloudflare Images 中,則每存儲(chǔ) 100,000 張圖片收費(fèi) 5 美元,瀏覽器請(qǐng)求并交付給用戶(hù)的圖片每 100,000 張收費(fèi) 1 美元。如果您對(duì)存儲(chǔ)在其他地方(如 S3 或 R2 存儲(chǔ)桶)的圖片進(jìn)行優(yōu)化,則不會(huì)對(duì)交付的圖片計(jì)費(fèi)。
除了存儲(chǔ)和交付圖像外,您還可以對(duì)轉(zhuǎn)換的圖像收費(fèi)。唯一轉(zhuǎn)換是指轉(zhuǎn)換原始圖像的請(qǐng)求,每 100,000 次轉(zhuǎn)換收費(fèi) 0.50 美元。轉(zhuǎn)換價(jià)格不包括您之前設(shè)置的款式/規(guī)格。
通過(guò)查看 Vercel 和 Cloudflare 的功能和定價(jià),我們可以看到 Cloudflare 是 Vercel 在 2024 年提供的所有主要服務(wù)的絕佳替代品。
如果您需要 Vercel 的替代方案來(lái)托管您的網(wǎng)站或 Web 應(yīng)用程序:Cloudflare Pages。如果您需要 Vercel 的替代方案來(lái)運(yùn)行無(wú)服務(wù)器功能:Cloudflare Workers。如果您需要 Vercel 的替代方案來(lái)存儲(chǔ)數(shù)據(jù):Cloudflare KV 和 Cloudflare D1。如果您需要 Vercel 的替代品進(jìn)行圖像優(yōu)化:Cloudflare Images。
當(dāng)然,您不需要將整個(gè)應(yīng)用程序遷移到 Cloudflare,完全離開(kāi) Vercel。您可以像 Ilias 一樣采用混合方法,僅將應(yīng)用程序的某些部分遷移到 Cloudflare,從而做出更好的開(kāi)發(fā)選擇并優(yōu)化您的網(wǎng)站或應(yīng)用程序,以降低成本并提高性能。
您也可以采取緩慢的方法,逐步將應(yīng)用程序遷移到 Cloudflare,從應(yīng)用程序中最關(guān)鍵的部分開(kāi)始,然后根據(jù)需要移動(dòng)其余部分。
原文:https://flaremingo.com/blog/cloudflare-vs-vercel-in-depth-comparison/
本文鏈接:http://www.www897cc.com/showinfo-26-87501-0.html為什么 Cloudflare 是 2024 年 Vercel 的最佳替代品?生態(tài)系統(tǒng)與價(jià)格比較
聲明:本網(wǎng)頁(yè)內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問(wèn)題請(qǐng)及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。郵件:2376512515@qq.com