本文探讨了 Vercel 的功能,并与 Cloudflare 生态系统中的类似产品进行了比较。从托管到存储,我们将看到为什么 Cloudflare 可以在 2024 年成为 Vercel 的最佳替代品。
- 介绍
- 什么是 Cloudflare?
- Cloudflare vs Vercel:托管和部署
- Cloudflare vs Vercel:无服务器函数
- Cloudflare vs Vercel:KV 存储
- Cloudflare vs Vercel:无服务器数据库
- Cloudflare vs Vercel:图像优化
- 结论
介绍
最近,我们看到了很多关于所谓的无服务器恐怖故事的大惊小怪,或者无服务器计算的无限规模可能导致月底的巨额账单。事实上,Vercel 对开发人员来说是一个很好的平台,但与其他替代方案相比,价格可能会比较昂贵。
如果您犯了错误,或者没有很好地了解该平台的工作原理以及如何优化您的网站或应用程序,Vercel 确实会让您付出高昂的代价。例如,伊利亚斯-伊斯姆(Ilias Ism)分享了他如何在 Vercel 上每月被收取 2000 多美元的基本服务费。
但这并不是唯一或最可怕的故事。
互联网上还有许多其他帖子描述开发人员为一个简单的网站或应用程序收取数千美元的费用。迈克尔·奥伯里 (Michael Aubury) 就是这种情况,当有人针对他的 Vercel 部署进行 DDoS 攻击时,他收到了 23,000 美元的账单,而迈克·拉米雷斯 (Mike Ramirez) 在 6 小时内收到了 3,000 美元的账单,因为他的代码中的一个小错误。
如果您正在寻找 Vercel 更具成本效益的替代品,Cloudflare 是一个不错的选择。Cloudflare 提供广泛的服务,可以帮助您优化网站或应用程序,并且可以成为 Vercel 的绝佳替代品。
当然,您不需要将整个应用程序迁移到 Cloudflare,完全离开 Vercel。例如,Ilias 就采取了一种混合方法,包括将图像优化转移到 Cloudflare,做出更好的开发选择(如禁用 标记中的预取),以及在 Vercel 生态系统本身中进行移动(如尽可能使用 edge runtime)。
在本文中,我们将探讨 Vercel 的功能和定价,以及 Cloudflare 如何在 2024 年成为 Vercel 的最佳替代品。
什么是 Cloudflare?
很难用几句话来解释 Cloudflare 是什么。它以其 CDN 和安全服务而闻名,但这还不是全部。它是一个无服务器托管平台,可以帮助您以经济高效的方式部署您的网站或应用程序,一个可以帮助您管理域的 DNS 注册商,一个可以帮助您管理 DNS 记录的 DNS 提供商。远不止于此。
老实说,说到网络基础设施,Cloudflare 是你所能想到的最好、更快、更安全的互联网。Cloudflare Edge 网络是其所有服务的核心,它是一个全球服务器网络,在终端用户附近运行代码、提供计算和存储数据,从而减少延迟并提高性能。
当然,Vercel 也拥有全球服务器网络,但 Cloudflare 网络要大得多。Vercel 的网络有 18 个区域和 100 多个接入点,而 Cloudflare 在全球拥有 300 多个数据中心。
部署数据中心的可用性也是 Cloudflare 的一大优势。在 Vercel 和 AWS 等其他提供商一样,您必须选择一个地区来部署您的应用程序。而在 Cloudflare,区域就是全世界。您无需担心应用程序部署在哪里或数据存储在哪里。
您的网站始终位于网络边缘,靠近所有最终用户。
Cloudflare vs Vercel:托管和部署
图片
让我们从 Vercel 开始。
Vercel 之所以如此受欢迎,是因为它使托管网站或 Web 应用程序变得如此简单。从字面上看,您可以将 Github 存储库连接到 Vercel 并部署您的网站,只需单击几下即可,而不必担心服务器、基础设施或其他任何事情。
你要做的是将你的代码推送到 Github,创建并将其导出到一个项目和 vercel 中,并在每次推送到存储库时开始部署。Vercel 将构建您的网站并将其部署到云端,使其可供全世界使用。
它与 Next.js 有很好的集成,因为它是由 Vercel 团队创建的,但它也支持各种最流行的前端框架,无论您使用什么工具,都可以优化您的网站构建方式。
在 Vercel 上托管您的网站时,它主要按带宽或从您的网站向用户传输的数据量收费。传输的数据包括传出数据(即从您的网站向用户发送的数据)和传入数据(即从您的用户向您的网站发送的数据)。
最初,免费计划包括每月 100 GB 的带宽,专业计划包括每月 1 TB 的带宽。如果超出带宽限制,每增加 100 GB 带宽将收取 40 美元。但在新的定价模式下,不再有一刀切的做法,Vercel 将托管应用程序和网站的带宽定价分为三个变量:快速数据传输(Fast Data Transfer)、边缘请求(Edge Request) 和 数据缓存(Data Cache) 。
快速数据传输是在 Vercel Edge Newtwork 和最终用户之间传输的数据。免费计划包括 100 GB 的快速数据传输,Pro 计划包括 1TB 的快速数据传输,额外费用为每 GB 0.15 美元起。现在,价格将因传输数据的地区而异:
- 每 GB 0.15 美元:美国克利夫兰 (cle1)、美国华盛顿特区 (iad1)、美国波特兰 (pdx1)、瑞典斯德哥尔摩 (arn1)、英国伦敦 (lhr1)、德国法兰克福 (fra1)、都柏林 (dub1)、法国巴黎 (cdg1)、美国旧金山 (sfo1)
- 每 GB 0.30 美元:新加坡 (sin1)、中国香港 (hkg1)
- 每 GB 0.31 美元:日本大阪 (kix1)、日本东京 (hnd1)
- 每 GB 0.32 美元:澳大利亚悉尼 (syd1)
- 每 GB 0.33 美元:印度孟买 (BOM1)
- 每 GB 0.39 美元:南非开普敦 (cpt1)
- 每 GB 0.44 美元:巴西圣保罗 (gru1)
- 每 GB 0.47 美元:韩国首尔 (icn1)
边缘请求(Edge Request)是指在向最终用户提供您的网站或应用程序时向 Vercel 边缘网络发出的请求数量。当用户访问您的网站时,他们的请求会路由到最近的 Vercel 边缘网络,从而减少延迟并提高性能。例如,加载单个网页可能涉及对 HTML 文档、CSS 文件、JavaScript 文件、图像等的请求。这些请求中的每一个都计为一个边缘请求,并根据 Vercel 的定价模型产生费用。
免费计划包括每月 100 万次边缘请求,专业计划包括每月 1000 万次边缘请求,每 100 万次边缘请求额外收费 2 美元。价格也因请求所在地区而异:
- 每 1M 请求 2 美元:美国克利夫兰 (cle1)、美国华盛顿特区 (iad1)、美国波特兰 (pdx1)
- 每 1M 请求 2.20 美元:瑞典斯德哥尔摩 (arn1)、印度孟买 (bom1)
- 每 1M 请求 2.40 美元:英国伦敦 (lhr1)、都柏林 (dub1)、法国巴黎 (cdg1)、美国旧金山 (sfo1)
- 每 1M 请求 2.60 美元:新加坡 (sin1)、澳大利亚悉尼 (syd1)、日本大阪 (kix1)、韩国首尔 (icn1)、日本东京 (hnd1)、德国法兰克福 (fra1)
- 每 1M 请求 2.80 美元:中国香港 (hkg1)、开普敦、南非 (cpt1)
- 每 1M 请求 3.20 美元:巴西圣保罗 (gru1)
数据缓存是指已写入 Vercel 边缘网络以进行快速访问并随后从缓存存储中检索(读取)的所有数据的总和。定价因对缓存存储执行的操作(写入或读取)以及缓存数据的区域而异。免费计划包括 2M 字节的缓存写入和 10M 字节的缓存读取,而 Pro 计划每增加 1M 字节的缓存写入收取 4 美元,每增加 1M 字节的缓存读取收取 0.40 美元。定价也会因缓存数据的区域而异:
- 数据缓存读取:
每 1M 字节 4 美元:美国克利夫兰 (cle1)、美国华盛顿特区 (iad1)、美国波特兰 (pdx1)
每 1M 字节 4.40 USD:瑞典斯德哥尔摩 (arn1)、印度孟买 (bom1)
每 1M 字节 4.80 美元:英国伦敦 (lhr1)、都柏林 (dub1)、法国巴黎 (cdg1)、美国旧金山 (sfo1)
每 1M 字节 5.20 美元:新加坡 (sin1)、澳大利亚悉尼 (syd1)、日本大阪 (kix1)、韩国首尔 (icn1)、日本东京 (hnd1)、德国法兰克福 (fra1)
每 1M 字节 5.60 美元:中国香港 (hkg1)、南非开普敦 (cpt1)
每 1M 字节 6.40 美元:巴西圣保罗 (gru1)
- 数据缓存写入:
- 每 1M 字节 0.40 美元:美国克利夫兰 (cle1)、美国华盛顿特区 (iad1)、美国波特兰 (pdx1)
- 每 1M 字节 0.44 美元:瑞典斯德哥尔摩 (arn1)、印度孟买 (bom1)
- 每 1M 字节 0.48 美元:英国伦敦 (lhr1)、都柏林 (dub1)、法国巴黎 (cdg1)、美国旧金山 (sfo1)
- 每 1M 字节 0.52 美元:新加坡 (sin1)、澳大利亚悉尼 (syd1)、日本大阪 (kix1)、韩国首尔 (icn1)、日本东京 (hnd1)、德国法兰克福 (fra1)
- 每 1M 字节 0.56 美元:中国香港 (hkg1)、南非开普敦 (cpt1)
- 每 1M 字节 0.64 美元:巴西圣保罗 (gru1)
您需要注意的其他变量包括构建执行时间,或在部署期间构建网站或应用程序所需的时间,以及并发构建,或可以同时运行的构建数。
免费计划包括 1 个并发版本,Pro 计划还包括 1 个,每增加一个并发版本收费 50 美元。关于构建执行时间,免费计划包括 6,000 分钟的构建时间,Pro 计划包括 24,000 分钟的构建时间。
在 Vercel 中,Pro 计划的起价为每月 20 美元。
Cloudflare 呢?
Cloudflare 提供与 Vercel 类似的服务,称为 Cloudflare Pages。
Cloudflare Pages 最初是一种 JAMstack 托管服务,通过利用 Cloudflare 边缘网络快速安全地交付网站而声名鹊起,但现在它已经发展成为一个完整的无服务器托管平台,可以运行任何类型的应用程序,从静态网站到需要服务器端逻辑的全栈 Web 应用程序。
与 Vercel 一样,您还可以连接您的 Github 存储库并部署您的网站,只需单击几下即可。无论您使用的是Next.js还是任何其他框架,Cloudflare Pages 都会构建您的网站并将其部署到云端,使其可供全世界使用。
您可以看到的 Vercel 和 Cloudflare Pages 之间的最大区别是定价。Cloudflare Pages 比 Vercel 更具成本效益,主要是因为它不收取带宽费用。
没错,在 Cloudflare Pages 上托管您的网站时,您无需按带宽计费,因此您无需担心有多少用户正在访问您的网站或传输了多少数据。
与 Vercel 一样,Cloudflare Pages 也限制并发构建和帐户每月可以运行的构建总数。免费计划包括每月 1 次并发构建和 500 次构建,Pro 计划包括每月 5 次并发构建和 5,000 次构建。
在 Cloudflare,专业计划的起价为每月 25 美元。
Cloudflare vs Vercel:无服务器函数
图片
无服务器函数(Serverless functions)是向网站添加动态功能的好方法。它们基本上是在云中运行的代码片段,可以由 HTTP 请求、数据库更改或计划任务等事件触发。
Vercel 提供一项名为 Vercel Functions 的服务,允许您在靠近用户的 Vercel 边缘网络中运行无服务器函数。这些函数可按需自动扩展,并可与 Web 和 Vercel 生态系统中的 API、数据库和资源进行交互。
基础结构和无服务器函数可以执行的操作受您为函数选择的运行时环境的限制。可用的运行时包括:Node.js、Go、Ruby、Python 和 Edge 运行时。在 Edge 运行时运行的无服务器函数更轻量级,计费方式也不同。
Vercel 函数可能会受到冷启动的影响,冷启动是指首次调用非活动函数时出现的延迟,因为函数必须初始化并加载到内存中。冷启动可以通过保持函数预热或定期调用来减少,以防止函数被挂起。
与 AWS lambda 一样,Vercel 会要求您选择要部署函数的区域。这是一个关键步骤,可能会对延迟和性能产生很大影响,因为函数离用户越近,执行速度就越快。如果您使用 vercel 存储服务,例如 KV 或 Postgres,您还应该考虑存储数据的区域,并在该区域附近部署函数。
在 2024 年 4 月的定价更新之前,Vercel 不像 AWS 那样按地区收费,但现在由于数据传输成本的原因,定价会因执行函数的地区而异。函数持续时间和调用在各地区的价格仍然相同,但数据传输的收费将有所不同。
出于计费目的,Edge 函数按 CPU 时间或直接执行函数所花费的时间收费,而其他运行时按挂钟时间或函数运行的总时间收费,包括空闲时间或启动环境并将函数加载到内存中所需的时间。CPU 时间以每个 50 毫秒的执行单位来衡量,而挂钟时间以 GB-小时为单位,即为每个函数分配的内存(以 GB 为单位)乘以它们运行的时间(以小时为单位)。
在定价更新之前,免费计划包括 500,000 个 Edge 函数执行单元和 100 GB 小时无服务器函数,而 Pro 计划包括 1M 个边缘功能执行单元,1,000 GB 小时无服务器函数,每增加 1M 个执行单元收取 2.00 美元,每增加 100 GB 小时收取 40 美元。
现在,免费计划包括 1M 的 Edge 运行时函数执行单元和 1000 GB 小时的无服务器函数,而 Pro 计划每增加 1M 执行单元收取 2 美元,每增加 100 GB 小时收取 18 美元(每 1GB 小时 0.18 美元)。
除了持续时间变量之外,Vercel 现在还对两个新变量收费:函数调用和数据传输。这是定价模式的一大变化,因为以前您只需要为函数运行的时间付费。
函数调用是函数被调用的次数,包括成功和失败的调用。免费计划包括 1M 函数调用,而 Pro 计划包括 10M 调用,每增加 0.60M 调用收费 1 美元。
在无服务器函数的上下文中,数据传输称为快速源传输,是指在 Vercel 边缘网络和您的函数之间传输的数据。免费计划包括 100 GB 的快速源传输,Pro 计划包括 1TB 的快速源传输,额外费用为每 GB 0.06 美元。价格也会因数据传输区域而异:
- 每 GB 0.06 美元:美国克利夫兰 (cle1)、美国华盛顿特区 (iad1)、美国波特兰 (pdx1)、瑞典斯德哥尔摩 (arn1)、英国伦敦 (lhr1)、德国法兰克福 (fra1)、都柏林 (dub1)、法国巴黎 (cdg1)、美国旧金山 (sfo1)
- 每 GB 0.27 美元:新加坡 (sin1)、日本大阪 (kix1)、日本东京 (hnd1)、中国香港 (hkg1)
- 每 GB 0.24 美元:韩国首尔 (icn1)
- 每 GB 0.25 美元:印度孟买 (bom1)
- 每 GB 0.29 美元:澳大利亚悉尼 (syd1)
- 每 GB 0.43 美元:南非开普敦 (cpt1)
- 每 GB 0.41 美元:巴西圣保罗 (gru1)
Cloudflare 还提供一种名为 Cloudflare Workers[1] 的服务,允许您在 Cloudflare 边缘网络中运行无服务器函数,以接近您的用户。该函数还能按需自动扩展,并能与 API、数据库以及网络和 Cloudflare 生态系统中的资源进行交互。
目前,Cloudflare 无服务器函数必须用 TypeScript/JavaScript 或任何可以编译为 WebAssembly 的语言编写。
Cloudflare Workers 不会受到冷启动的影响,因为它运行在 V8 isolates[2] 之上,可以在 5 毫秒内预热函数。这意味着您的函数随时可以执行,无论它们处于非活动状态多长时间。与 Vercel 功能相比,这是一个巨大的优势,因为冷启动对于某些应用来说可能是一个大问题。
通过使用 Workers,您也无需担心要部署应用程序的区域。默认情况下,在 Cloudflare 上,区域就是世界,这意味着您的代码将始终在靠近您的资源和用户的地方运行。
由于 Cloudflare 杜绝了冷启动,因此 Workers 不对挂壁时间收费,默认情况下仅使用 CPU 时间计费。免费计划包括每天 100,000 次请求和每次调用平均 10ms 的 CPU 时间,而标准计划起价为 5 美元,包括每月 10,000,000 次请求和 30,000,000 CPUms。额外请求按每 1M 请求 0.30 美元计费,额外 CPUms 按每 1M CPUms 0.02 美元计费。
Cloudflare vs Vercel:KV 存储
图片
Vercel KV 是一个持久的 Redis 数据库,可用于存储和检索 JSON 数据。它不是 Vercel 的原生服务,而是由与 Upstash 合作提供支持的。
默认情况下,在创建 KV 数据库时指定的主区域中配置了一个 Redis 数据库。写操作将在这个主区域内进行。KV 数据库可能有额外的读取区域,读取操作将在离触发请求最近的区域运行。
请注意,当您这样做时,您正在复制数据库,这将成倍地增加服务的使用量和成本,因为每个写入命令将向您的主数据库发出一次,向您配置的每个只读副本发出一次。
并非所有 Vercel 区域都受 KV 存储支持。实际上,仅支持以下区域:都柏林、法兰克福、圣保罗、华盛顿、波特兰、旧金山、新加坡和悉尼。
也不支持更改 Vercel KV 存储的主要区域。如果要更改数据库的区域,则必须创建一个新存储并迁移所有数据。
KV 存储月度费用取决于四个主要变量,即:
- 数据库:免费计划包括 1 个数据库,不允许任何副本,而 Pro 计划最多包括 5 个数据库,包括副本。每个额外的数据库或副本的成本为 1,00 美元。
- 存储:表示每月使用的最大存储量。免费计划包括 512MB 内存,而 Pro 计划包括 1GB,额外存储空间按每 GB 0.25 美元收费。\
- 请求数:请求数是指一个账号对所有KV数据库发出的Redis命令数,包括对副本的写入操作。免费计划包括每月 150,000 个请求,而 Pro 计划包括 150,000 个请求,每 100,000 个额外请求收取 0.35 的费用。
- 数据传输:数据传输是指在查询您账户上的KV数据库的各功能之间传输的数据总量。免费计划包括 256MB 的数据传输,而 Pro 计划包括 1GB,额外的数据传输按每 GB 0.10 美元收费。
Vercel KV 的替代品是 Cloudflare KV。Cloudflare KV[3] 是一个无服务器键值数据库,使您能够在 Cloudflare 边缘网络上存储和检索数据。与 Vercel 不同的是,它是 Cloudflare 的原生服务,并非由与其他公司的合作伙伴关系提供支持。它也不是 Redis 数据库,而是针对 Cloudflare 上的边缘计算进行了优化的键值数据库。
访问 Cloudflare KV 中数据的最常见方式是通过 Workers,但您也可以通过 Cloudflare API 进行访问。
Cloudflare KV 是一个全球数据库,这意味着您的数据会复制到 Cloudflare 在全球的所有数据中心。您的数据不局限于单一地区,您无需担心在不同地区创建副本以获得更好的性能。
Cloudflare KV 的定价和限制因您选择的计划和您正在执行的操作的性质而异。您无需按数据传输或创建的数据库数量付费,而是按您发出的请求数和存储的数据量付费。
对于存储,在免费计划中,您最多可以存储 1GB 的数据,而在付费计划中,每增加 GB 数据需要支付 0.5 美元。
对于请求,在免费计划中,您每天最多可以发出 100,000 个读取请求,每天最多可以发出 1,000 个写入、删除和列出请求。在付费计划中,每增加 10M 读取请求需要支付 0.5 美元,每增加 1M 写入、删除和列出请求需要支付 5 美元。
Cloudflare vs Vercel:无服务器数据库
图片
Vercel 无服务器数据库是一个 PostgreSQL 数据库,旨在与 Vercel Functions 和您的前端框架集成。它也不是 Vercel 的原生服务,而是由与 Neon 的合作伙伴关系提供支持的。
在仪表板中创建 Vercel Postgres 数据库时,会在您指定的区域中配置运行 PostgreSQL 版本 15 的无服务器数据库。该区域是读写操作的路由,数据库创建后不能更改。
可用于部署无服务器数据库的区域并不多。目前仅支持克利夫兰、华盛顿、波特兰、法兰克福、新加坡和悉尼。
区域的选择对于应用程序的性能至关重要,因为数据库越接近查询它的函数,响应时间就越快。
另一个需要考虑的重要事项是 Vercel Postgres 数据库并不总是处于活动状态。如果在指定的持续时间内没有传入请求,则数据库将缩减为零,从而有效地暂停计算时间计费。这意味着,在非活动状态后访问数据库时,您可能会遇到长达 1 秒的冷启动。在 Pro 计划中,您可以配置非活动时间阈值以降低冷启动频率。
Vercel postgres 数据库的总成本是根据五个因素计算的:
- 数据库:您账户中的数据库数量。免费计划包括 1 个数据库,而 Pro 计划包括 1 个数据库,每个额外的数据库收费 1.00 美元。
- 计算时间:计算时间根据数据库的活动时间乘以可用 CPU 数计算得出。在免费计划中,数据库设置了 0.25 个逻辑 CPU,而在 Pro 计划中,它们从 1 个 CPU 开始,用户可以灵活地修改分配的 CPU 数量。在处理请求时或在最后一个请求后配置的空闲超时期限内,数据库被视为活动数据库。免费计划包括每月 100 小时的计算时间,而 Pro 计划包括 100 小时,每增加一小时收费 0.10 美元。
- 存储:存储计算为您的账户的所有 Postgres 数据库每月使用的最大存储量。在免费计划中,用户的存储空间限制为 512MB,而在 Pro 计划中,用户的存储空间限制为 1GB,每增加 GB 的额外存储空间为 0.12 美元。
- 写入数据:写入数据是从计算资源提交到存储的数据量,包括插入、更新、删除和架构迁移等操作。在免费计划中,用户限制为 512MB,而在 Pro 计划中,用户限制为 1GB,每增加 GB 额外支付 0.096 美元。
- 数据传输:数据传输是从数据库传出的数据量。在免费计划中,用户限制为 512MB,而在 Pro 计划中,用户限制为 1GB,额外数据传输的费用为每增加 GB 0.10 美元。
Vercel postgres 的替代品是 Cloudflare D1。Cloudflare D1 是基于 SQLite 构建的 Workers 平台原生的无服务器数据库,使您能够在 Cloudflare 边缘网络上存储和检索数据。
Cloudflare D1[4] 是一个全球数据库,这意味着您的数据可在全球所有 Cloudflare 数据中心使用。您的数据不限于单个区域,区域的选择不会影响应用程序的性能。
D1 数据库可从 Cloudflare 仪表板访问,也可以通过 SDK 通过 Workers 访问,或与 Drizzle 等 ORM 库集成。
Cloudflare D1 也基于即用即付模式,这意味着您只需为使用的资源付费,并且可以像 Vercel 一样扩展到零,而不会在重新上线时遭受冷启动。在 Cloudflare D1 上,您无需按数据传输、计算时间或创建的数据库数量付费,而是按存储的数据量和读取和写入的行数付费。
读取的行数是查询读取(扫描)的行数,与每行的大小无关,而写入的行数则衡量写入 D1 数据库的行数。请注意,Cloudflare 对行扫描收费,而不是对查询返回的行数收费。因此,在使用 Cloudflare D1 时,使用索引优化数据库对于降低成本至关重要。在表上定义索引可减少查询在筛选该索引字段时读取的行数。
免费计划包括 1GB 的存储空间,而在付费计划中,每增加 GB 数据需要支付 0.75 美元。
对于请求,在免费计划中,您每天最多可以发出 5M 行读取请求和 100,00 行写入请求。在付费计划中,您每月最多有 25B 行读取请求和 50M 行写入请求。其他请求的收费标准为每 1M 行读取请求 0.001 美元,每 1M 行写入请求 1 美元。
Cloudflare vs Vercel:图像优化
图片
Vercel Images 是一项根据大小、质量、格式和像素密度等因素管理图像上传、优化和交付的服务。经过优化的图像会自动缓存在 Vercel 边缘网络上,确保在再次请求时更快地交付给用户。
使用该服务的最佳方式是与 Next.js、Astro 和 Nuxt 等框架集成。当您在每个框架中使用该 组件并在 Vercel 上部署项目时,平台会自动调整您的图像并针对不同的屏幕尺寸进行优化。
Vercel Images 的定价基于计费周期内请求的唯一源图像数量。源图像是传递给 src
属性的值,可以生成多个不同大小和质量的优化图像。
免费计划包括 1000 个源图像请求,而 Pro 计划包括 5000 个源图像请求,每 1000 个源图像收费 5 美元。
此外,将优化图像从 Vercel 的边缘网络传送到客户端时使用的带宽需要付费。
Cloudflare Images 是 Cloudflare 的一项类似服务,用于管理来自 Cloudflare 边缘网络的图像的上传、优化和交付。图像会自动调整大小、压缩并转换为适合用户设备和网络条件的最有效格式。
您可以通过 Cloudflare 控制面板或 Cloudflare API 将图像上传到 Cloudflare Images。上传后,您可以直接通过 Cloudflare CDN 或 Cloudflare API 访问图像。
上传图像后,可使用图像变体调整图像大小,以适应不同的使用情况。默认情况下,图片使用公共变体提供,但您也可以针对不同的屏幕尺寸、设备和网络条件创建多达 100 个自定义变体。您还可以在通过 URL 或 Cloudflare Workers 请求时转换图像,但请注意,转换与交付的图像分开计费。
Cloudflare Images 定价基于后付费模式,根据每月交付、转换和存储的图像总数收费。
如果您将图片存储在 Cloudflare Images 中,则每存储 100,000 张图片收费 5 美元,浏览器请求并交付给用户的图片每 100,000 张收费 1 美元。如果您对存储在其他地方(如 S3 或 R2 存储桶)的图片进行优化,则不会对交付的图片计费。
除了存储和交付图像外,您还可以对转换的图像收费。唯一转换是指转换原始图像的请求,每 100,000 次转换收费 0.50 美元。转换价格不包括您之前设置的款式/规格。
结论
通过查看 Vercel 和 Cloudflare 的功能和定价,我们可以看到 Cloudflare 是 Vercel 在 2024 年提供的所有主要服务的绝佳替代品。
如果您需要 Vercel 的替代方案来托管您的网站或 Web 应用程序:Cloudflare Pages。如果您需要 Vercel 的替代方案来运行无服务器功能:Cloudflare Workers。如果您需要 Vercel 的替代方案来存储数据:Cloudflare KV 和 Cloudflare D1。如果您需要 Vercel 的替代品进行图像优化:Cloudflare Images。
当然,您不需要将整个应用程序迁移到 Cloudflare,完全离开 Vercel。您可以像 Ilias 一样采用混合方法,仅将应用程序的某些部分迁移到 Cloudflare,从而做出更好的开发选择并优化您的网站或应用程序,以降低成本并提高性能。
您也可以采取缓慢的方法,逐步将应用程序迁移到 Cloudflare,从应用程序中最关键的部分开始,然后根据需要移动其余部分。
原文:https://flaremingo.com/blog/cloudflare-vs-vercel-in-depth-comparison/