5778 字
29 分钟

Vercel 托管:使用场景与替代方案对比


最近把整个博客进行了迁移和重构,使用了 Astro 中的 Fuwari 主题。于是乎便有了和传统 wordpress 部署上的差异。究竟应该是选 Vercel 此类平台还是 自编译dist文件然后通过nginx设定目录来部署?毫无疑问,从简洁部署,敏捷开发的角度选 Vercel

现在前端开发通常选择 Next.js 作为其前端框架,因为他们需要构建加载速度快、符合 SEO 且支持服务器端渲染的网站。因此,在为这些网站提供服务时,人们常常会评估 Vercel——Next.js 框架背后的组织所提供的托管服务。

本文将解读 Vercel 托管提供了什么,以及各种需要考虑的因素,以帮助您回答这个问题:

您的网站前端应该托管在 Vercel 还是其他地方?如果决定托管在别处,又有哪些可靠的替代方案?

如果您只想直接看建议,这里是快速版本:

最佳适用场景平台推荐
流量较低的网站或需要快速上线且功能齐全的项目Vercel:开发者体验(DX)极佳,与 Next.js 紧密集成,自动扩缩容,但需警惕失控的成本。
无需 DevOps 设置且成本可预测Railway / Render:现代化的开发者体验,定价可预测,无需构建和部署设置,但与前端框架的集成较弱。
成本最低且控制权最大自管理 PaaS (Coolify, Dokku):定价可预测,无平台锁定,但需要投入精力进行设置。
团队已在使用 AWS / GCP / DOAmplify / Firebase / DO App Platform:统一账单,集成更顺畅,可利用团队现有专业知识,但平台选项可能过于繁杂。

1. 首先需要了解的三个 Vercel 核心能力#

Vercel 托管平台提供了大量功能。本节不打算涵盖所有功能,而是旨在解释那些可能影响您托管平台决策的主要能力。

1.1. 理解 Vercel 的无服务器模型 (Serverless)#

Vercel 托管的主要组件都是无服务器的,您无需管理任何服务器。当有人访问您托管在 Vercel 上的网站时,Vercel 会自动运行您的代码来处理请求。它通过使用短暂的无服务器函数来实现这一点,这些函数仅在需要时启动,并在工作完成后停止。

这意味着:

  • 您无需配置或管理任何服务器。
  • Vercel 会根据流量大小自动扩缩容基础设施以处理负载。
  • 您的费用是按使用量(代码运行的时长、数据传输量)而不是按预配服务器的容量来计算。
  • 防火墙等安全组件已内置于平台中。
  • 无服务器计算的局限性,如冷启动延迟不支持长时间运行的任务,也会显现出来。

小结Vercel 是一个无服务器平台。您的代码按需运行并自动扩缩容,但这种基于使用量的模型要求您注意成本超支、冷启动和长时间运行任务的限制。

1.2. Vercel 的部署工作原理#

Vercel 提供自动化部署。您只需将您的 Git 仓库连接到 Vercel 账户。然后,每当您将代码推送到指定分支时,Vercel 会:

  • 自动拉取最新代码,构建并将构建产物部署到 Vercel 的基础设施上。
  • 允许您创建拥有独立设置和环境变量文件的环境(如 dev, qa, staging 等)。
  • 提供生产就绪功能,如部署预览CI/CD 工作流以及在测试通过后一键发布到生产环境
  • 在不中断流量或停机的情况下处理部署。

小结Vercel 提供了 CI/CD 工作流、部署预览和零停机部署等构建和部署功能。这为您节省了构建部署流水线和管理各种环境的时间与精力。

1.3. Vercel 与 Next.js 的深度集成#

VercelNext.js 框架背后的公司。因此,Vercel 平台会自动与某些 Next.js 功能集成,这可以简化基于 Next.js 的前端设置。例如:

  • 图片优化 (Image Optimization):在代码中使用 next/image 库中的 <Image /> 组件,会自动将图片请求路由到 Vercel 的图片优化函数,并在 Vercel CDN 上进行缓存。
  • 增量静态再生 (ISR):当 Next.js 的 ISR 页面更新时,Vercel 会自动使 CDN 缓存失效并在后台重新生成内容。
  • 流式响应 (Streaming responses):如果底层服务器支持流式传输,Next.js app/ 目录中的服务器渲染页面就支持流式响应。Vercel 的无服务器函数原生支持流式传输。

Vercel 也与其他前端框架集成得很好,尽管不如与 Next.js 那样深入。

小结Vercel 平台深度集成了 Next.js 的功能,无需任何额外设置或配置。如果您不使用 Next.js,这一点可能不那么重要。


2. 需要考虑的因素#

选择Vercel](https://vercel.com/) 托管,意味着您也选择了它的核心构成要素,以及它们带来的好处与弊端:

2.1. 托管成本#

Vercel 作为无服务器平台,一个主要影响在于其计费方式。Vercel 不是根据预配的服务器数量和容量计费,而是根据实际使用量(代码运行的时长、数据传输量)来计费。

注意:Vercel 的 Pro 计划近期(将于 2025 年 10月全面推送)已经做出了变更。新Pro计划每月20基础费,提供一个访客位。外加20基础费,提供一个访客位。外加20信用和特定包含资源(如1TB Fast Data Transfer、10M Edge Requests),而旧计划为每席位$20/月且所有服务均有固定额度。简单的来说,相比之前的模式,把除了带宽和函数请求以外的其他额度全部封装成了20美元的额度,你可以灵活为你所需要的服务进行付费,用官方的意思更加具有弹性。

image-20250914173245099

新旧Pro计划对比表:

方面旧Pro计划 (Legacy)新Pro计划
月费$20/席位/月
(每个团队成员付费)
$20/月
(每个团队成员付费,有免费观众席位)
包含资源固定额度:
• 1TB带宽
• 1000 GB-hours函数执行
• 100万函数调用
20信用+特定包含:<br>1TBFastDataTransfer(价值约20信用 + 特定包含:<br>• 1TB Fast Data Transfer(价值约350)
• 10M Edge Requests(价值$32)
• Enterprise-grade paid add-ons
(SAML SSO, HIPAA BAA等按需支付)
超额收费• Fast Data Transfer:0.15/GB<br>•函数执行:0.15/GB<br>• 函数执行:0.0106/GB-hour(内存)
+ 0.128/小时(CPU<br>•函数调用:0.128/小时(CPU)<br>• 函数调用:0.60/百万
• Fast Data Transfer:0.15/GB<br>•函数执行:0.15/GB<br>• 函数执行:0.0106/GB-hour(内存)
+ 0.128/小时(CPU<br>•函数调用:0.128/小时(CPU)<br>• 函数调用:0.60/百万
支出管理需要手动监控• 默认启用警报
• $200默认限额
• 可自定义
企业功能需要联系销售大部分功能Pro计划可直接开启

按使用量计费对于流量极低的网站来说非常棒。但它也带来了一些值得注意的考量:

  • 难以估算

    Vercel 的定价页面非常详细。但计费维度的数量也反映了估算下个月账单的挑战性。例如,以下是计算账单时会衡量的一些方面:

    • 防火墙将进行速率限制的传入请求数量。
    • 无服务器函数与 Vercel CDN 之间传输的数据量。
    • ISR 页面重新验证的次数。

    这些因素中的任何一个都可能随着代码更新、配置更改或意外流量(包括机器人)而波动,使得可靠地预测成本几乎不可能。

  • 潜在的账单冲击

    关于 Vercel 托管产生意外账单的故事并不少见。核心问题不在于 Vercel 本身,而在于按使用量计费的模型。在这种模式下,您的成本直接取决于流量模式。实际上,是互联网决定了您的账单。

    按使用量计费容易受到滥用。大量的自动化请求可能会推高托管成本,这种情况被称为**“钱包拒绝服务”(Denial of Wallet, DoW)攻击**。

    Vercel 已经建立了防范基础设施滥用的措施,但风险依然存在。只要计费与使用量挂钩,您就始终面临潜在的 DoW 攻击风险。

  • 托管成本随流量非线性增长

    Vercel 的 Pro 套餐额度很慷慨。但一旦超过这些限制,托管成本会迅速攀升。

    **示例:**一个富媒体网站(平均每页约 5MB 图片)- 使用 Vercel Pro 套餐($20/月)

    • 10 万次请求:无额外带宽费用
    • 50 万次请求:每月额外 $200 带宽费用

    成本快速上升还因为每次用户访问都会触发多个服务。例如,在电商网站上单次访问一个产品页面可能会使用:

    • 无服务器计算 - 服务器端生成 HTML
    • 图片优化计算 - 动态优化图片
    • 带宽使用 - 加载 JS、CSS、图片
    • 边缘请求 - 获取特定地理位置的价格

    随着流量增长,每个服务使用量的增加会产生乘数效应,导致托管成本急剧上升。

小结:如果您的网站流量远在 Vercel 套餐限制之内,该平台可能是一个经济高效的解决方案。但其按使用量计费的模式需要勤加监控,因为这类计划难以估算、易受滥用,并且成本会随流量增长而迅速增加。

2.2. 冷启动延迟 (Cold start delays)#

Vercel 的无服务器基础设施不需要永久运行的服务器。相反,它在收到请求时启动一个短暂的环境来执行我们的代码,并在完成后停止。启动这个短暂环境所需的额外时间会增加到服务请求的总时间中。

VercelAWS(Vercel 的无服务器函数使用 AWS Lambda)都推出了旨在最小化冷启动延迟的功能。但这些方法只是最小化延迟,而不是消除它。因此,在 Vercel 上托管时,密切关注服务器响应速度非常重要。

由于无服务器函数的工作方式,冷启动延迟对某些类型的请求影响更大:

网站/板块/页面类型潜在的冷启动影响
流量极低的网站
网站中不太热门的页面/板块
频繁调用的 API
频繁访问的页面/板块
静态生成的页面
ISR 页面

小结:如果您的网站依赖静态或 ISR 页面,或者只有少数几个非常热门的页面,那么冷启动不太可能成为问题。对于其他情况,必须监控其对服务器响应速度的影响。

2.3. 流量高峰时的可扩展性#

Vercel 这样的无服务器平台的一个固有优势是,它能够快速扩展而无需任何额外设置。因此,那些有周期性流量高峰的网站可以从 Vercel 的无服务器能力中受益。

  • 其按使用量计费模式可能更具成本效益,因为您无需为峰值流量过度配置服务器。
  • 您无需花费时间和精力来构建一个能够承受流量高峰的系统。

小结:如果您的网站会经历周期性的流量高峰,您可以从 Vercel 的自动扩缩容中受益,避免过度配置的成本,并节省管理峰值负载基础设施所需的 DevOps 精力。

2.4. 长时间运行任务的限制#

Vercel 这样的无服务器平台通常适用于处理需要几毫秒的请求。因此,如果您的工作负载包含需要几秒/几分钟才能运行的任务:

  • 您的长时间运行请求(超过 30 秒)可能会迅速推高账单,因为它们是根据完成时间来计费的。
  • Vercel 对长时间运行的任务有 15 分钟的硬性限制。任何耗时更长的任务(包括 Vercel 的定时任务)都将被终止。

小结:包含长时间运行后台任务的系统可能会将这类任务分离出来,以便采用更合适的处理和托管方式。而对于需要处理长时间运行的即时请求的系统,则可能更倾向于非无服务器的部署选项。

2.5. Vercel 平台限制#

像任何托管平台一样,Vercel 也有部署和使用方面的特定限制。提前审查这些限制很重要,以避免日后出现意外。常见的限制包括:

  • 构建最大时长:每次构建 45 分钟
  • 每次部署的路由数量:2048
  • 定时任务最大时长:15 分钟
  • 团队定价:Pro 套餐(20/月)包含1个成员,额外成员每人20/月)包含 1 个成员,额外成员每人 20。

注意:以上列表并不详尽。

小结:虽然这些限制可能不会影响每个项目,但它们可能会成为某些设置的阻碍。如果您预计会超出这些限制,您可能需要评估其他平台。

2.6. 前端与后端托管的协调#

Vercel 专注于前端托管。同时需要后端或数据库的项目必须将它们托管在别处,这可能会影响您对前端平台的选择。

  • Vercel 提供了与托管后端提供商的现成集成。因此,如果您的后端已经托管在云服务上,Vercel 可能是一个自然的选择。
  • 但如果您自己维护后端服务器,将前端和后端放在相同的基础设施上可能会更简单。

小结:如果您的后端运行在托管服务上,Vercel 的现成集成使其成为一个自然的选择。但如果您自己管理后端服务器,将前端和后端放在一起通常更简单。

2.7. 考虑 DevOps 专业能力#

Vercel 的一个关键优势是其自动化的构建和部署基础设施。该平台还提供分析、速度跟踪和可观测性。这些能力共同覆盖了核心的 DevOps 需求,否则这些需求将需要专门的资源。

然而,如果您已经拥有管理服务器、配置部署和处理监控/日志的内部专业能力,自托管可能会提供更多的控制和灵活性。

小结:如果您内部有服务器管理技能,自托管提供更多控制权。如果没有,Vercel 可以为您节省招聘或维护 DevOps 资源的成本。

2.8. 框架集成与上市时间的权衡#

Vercel 的一个关键差异化因素是其与前端框架的深度集成。特别是对于 Next.jsVercel 提供了所有托管平台中最紧密的集成。它也与其他前端框架很好地集成,支持程度各不相同。这些集成减少了像 ISR、图片优化和中间件等功能的设置工作,从而在保留高级托管能力的同时,实现更快的产品上市。

然而,这些好处来自于对特定框架的平台功能的依赖。这种耦合可能会造成托管锁定,使得未来从 Vercel 迁移变得更加困难。

小结:如果您的网站是基于 Next.js 构建的,Vercel 的深度集成可以加快产品上市时间。但随着您对特定框架的平台功能依赖加深,平台锁定的风险也会增加。


3. Vercel 的替代方案#

如果您正在寻找 Vercel 的替代方案,重要的是要确定您希望替代 Vercel 的哪个关键要素。这有助于您缩小选择范围,并选择最符合您优先事项的替代方案。

以下替代方案根据它们与 Vercel 的不同之处进行了分类。

3.1. 仅限前端的无服务器平台#

如果 Vercel 的定价或其任何限制是您关心的问题,您可以寻找仅限前端的无服务器替代方案。在功能和产品方面,这些平台比其他类别的平台更接近 Vercel

平台特点
Netlify最适合静态网站,提供表单处理等额外功能 免费和 Pro 套餐缺少防火墙和速率限制 冷启动延迟比 Vercel 长 与前端框架的集成不如 Vercel 深入
Cloudflare Pages提供慷慨的 CDN 定价,无带宽限制 SSR 和 Node.js 支持有限,因为其 Workers 运行在 V8 运行时上 框架集成不如 Vercel 广泛 非 CDN 功能的开发者体验不如 Vercel

总的来说,CloudflareNetlify 更适合静态网站,而 Vercel 更适合需要服务器端渲染或 ISR 的前端。许多团队也会将 Cloudflare CDN 与 Vercel 结合使用,采取混合方式。

3.2. 全栈无服务器生态系统#

如果您的技术栈的某些部分已经部署在某个云提供商上,使用他们的无服务器产品来托管您的前端可以简化管理、计费和集成。这还可以节省数据传输费用,因为大多数云内传输是免费或有折扣的。

平台特点
AWS Amplify (基于 AWS 生态系统)通过 S3 (存储), Lambda (函数), Fargate (长时任务), CloudFront (CDN) 和 RDS (数据库) 提供全栈能力。 计算和带宽定价通常低于 Vercel。 由于选项和服务众多,开发者体验可能会让人不知所措。
Firebase (与 Google Cloud 产品结合)通过 GCS (存储), Cloud Functions (函数), Cloud Run (长时任务), Cloud CDN, 和 Cloud SQL (数据库) 提供全栈能力。 计算定价低于 Vercel 但高于 AWS;CDN 带宽不如 AWS 慷慨(没有 1TB 免费额度)。 开发者体验比 Vercel 弱,需要管理许多选项。

如果您的技术栈已经与 AWSGoogle Cloud 绑定,那么使用 AWS AmplifyGoogle Firebase 是有意义的。它们广泛的服务和选项确保您在任何时候都不会没有选择,但这也使得开发者体验变得复杂。

3.3. 具有现代开发者体验的永久在线服务器提供商#

如果您偏好可预测的定价,并希望避免无服务器的限制(冷启动延迟、长时任务的最大限制),但仍希望获得类似 Vercel 的开发者集成(Git 集成、自动构建、预览),您可以评估以下平台。

平台特点
Railway可以部署前端、后端(Node, Python, CMS)和数据库。 通过基础设施即代码,简化了开发者管理基础设施的难度。 按分钟配置和计费。 不提供 CDN、边缘函数、防火墙、DDoS 防护。
Render类似 Railway - 可以部署前端、后端和数据库。 功能比 Railway 更丰富 - 包括 CDN、防火墙、DDoS 防护。但没有边缘函数。 按月配置和计费。 定价通常与 Railway 相当 - 具体取决于具体配置。
DigitalOcean App Platform如果您的其余技术栈在 DigitalOcean 上,则非常适合。 按月配置和计费。 包括 CDN,但不包括防火墙、DDoS 防护或边缘函数。 定价与 Render 类似。

这些平台用更好的可预测性(更清晰的定价、无冷启动、无函数限制)换取了无服务器的约束。但它们缺少 Vercel 那样与前端框架的深度集成、内置的 CDN-边缘功能以及即时的无限扩展能力。

3.4. 自管理的传统服务器提供商#

如果您可以自己设置构建和部署流水线,您就可以将前端托管在众多自管理服务器平台之一(AWS EC2Google Compute EngineAzure VMDigitalOcean DropletHetzner 等)。这通常是成本最低的选项,平台锁定的风险也最小。但它需要额外的精力来设置构建和部署流水线以及管理服务器。

使用自托管的 PaaS 框架可以简化在这类服务器上的部署:

自托管 PaaS 框架详情
Coolify基于 UI - 类似 Vercel/Netlify 的部署体验。 为数据库、后端、静态网站提供现成模板。 比 Dokku 更容易上手,但可扩展性较差。
Dokku基于命令行;通过 git push、buildpacks 或 Dockerfile 进行部署。 拥有社区插件来部署数据库、后端和其他组件。 自 2013 年以来一直存在,拥有大量的社区插件。

使用 CoolifyDokku 和许多其他自托管选项的自管理设置,能以最低的成本提供最大的控制权。然而,与托管平台相比,这些方案需要更多亲自动手的服务器管理工作。


4. 结论#

选择合适托管平台,关键在于将每个选项的优势(成本、可扩展性、开发者体验、框架集成等)与您的需求相匹配。

Vercel 的无服务器基础、CI/CD 自动化和与 Next.js 的深度集成,使其成为寻求更快产品上市和现代平台产品的团队的可行选择。与此同时,其按使用量计费、冷启动和平台锁定的风险可能并不适合所有场景。

下表总结了不同需求适合的平台:

如果您…那么选择…
希望从小处着手,流量极小自管理 PaaS (如 Coolify, Dokku):成本效益高,定价可预测,但需要初始设置工作。 Vercel:上市速度快,在套餐额度内定价合理,但要警惕账单冲击。
需要快速上市且不妥协功能Vercel:最佳的开发者体验,丰富的功能集,与 Next.js 深度集成;与其他框架的集成也不错。但要警惕平台锁定的风险。
已经在使用 AWS / Google Cloud / Digital OceanAmplify, FirebaseApp Platform:更易于集成,统一账单,数据传输有折扣,并能利用现有的 AWS/GCP/DO 专业知识(但平台产品可能过于繁杂)。
希望定价可预测且无需设置 DevOpsRailway, Render:现代化的开发者体验和可预测的计费,无需管理基础设施。但与前端框架的集成较弱。
拥有内部 DevOps 技能自管理 PaaS (如 Coolify, Dokku):最大的控制权,最小的平台锁定,最广泛的托管提供商选择,最低的定价。但需要投入时间和预算进行 DevOps 工作。

总而言之,Vercel 托管提供了快速的产品上市和强大的 Next.js 集成,但失控的成本和平台锁定的风险意味着替代方案可能更适合。对于某些项目,可预测的定价或更大的 DevOps 控制权可能比快速发布和框架功能更重要。最佳选择取决于您的优先事项、可用技能以及您的系统和流量如何演变。

Vercel 托管:使用场景与替代方案对比
https://catcat.blog/vercel-hosting-usage-vs-alternatives.html
作者
猫猫博客
发布于
2025-09-14
许可协议
CC BY-NC-SA 4.0