12k
All articles

Vercel 的三个现代 Web 托管替代方案

对比 Netlify、Cloudflare Pages 和 Fly.io 作为 Vercel 的替代方案,为现代 Web 项目选择合适的边缘托管平台。

OpenReplay Team
OpenReplay Team
Vercel 的三个现代 Web 托管替代方案

Vercel 让部署 Next.js 应用变得极其简单。推送到 Git,获得一个 URL。对许多团队来说,这种简洁性证明了其溢价的合理性。但在 2025 年,这种权衡正在发生变化。

定价复杂性不断增加。Hobby 层级的限制对于实际项目来说显得过于严格。构建分钟数和 serverless 计算成本在规模化时让团队感到意外。而且某些工作负载——后台任务、自定义运行时、有状态服务——根本不适合 Vercel 的模式。

如果你正在评估 Vercel 之外的现代 Web 托管平台,三个替代方案脱颖而出:Netlify、Cloudflare Pages 和 Fly.io。每个平台对前端应用的边缘托管采取不同的方法,理解这些差异比比较功能清单更重要。

核心要点

  • Vercel 在 Next.js 部署方面表现出色,但其定价和工作流限制促使团队在 2025 年转向替代方案。
  • Netlify 提供基于积分的定价,支持广泛的框架,并具有熟悉的 Git 到部署工作流。
  • Cloudflare Pages 结合 Workers 提供了一个全栈边缘平台,具有集成的数据服务和有竞争力的价格。
  • Fly.io 为需要后台 worker、自定义运行时或全球有状态服务的团队提供容器级控制。

为什么团队在 2025 年寻求 Vercel 之外的选择

核心问题不在于 Vercel 不好。而是该平台针对特定工作流——带有 serverless 函数的 Next.js 应用——进行了优化,并相应地收费。

当团队需要对运行时有更多控制、希望在规模化时获得可预测的成本,或需要 Vercel 原生不提供的服务(数据库、后台 worker、自定义容器)时,就会遇到摩擦。对于超出免费限制但不需要企业功能的副项目来说,从 Hobby 到 Pro 的跳跃感觉过于陡峭。

Netlify:基于积分定价,源于 JAMstack

Netlify 开创了 Git 到部署的工作流,Vercel 后来对其进行了改进。如今,它采用基于积分的定价模型,构建、带宽和函数调用都从共享积分池中消耗。

部署模型: 连接 Git 仓库,配置构建命令,Netlify 处理其余工作。该平台擅长静态站点和 JAMstack 架构,但通过其适配器生态系统支持服务端渲染。

边缘和 serverless 能力: Netlify 提供传统的 serverless Functions(运行在 AWS Lambda 上)和 Edge Functions(在边缘的 Deno 上运行)。Edge Functions 在更接近用户的位置执行,冷启动延迟更低——适用于身份验证检查、A/B 测试或个性化。

开发者体验: 构建插件无需自定义脚本即可扩展 CI/CD 管道。为 pull request 自动生成部署预览。仪表板清晰地显示构建日志和函数指标。

定价结构: 免费层级对小型项目来说仍然现实。积分提供了灵活性,但需要监控——带宽密集型站点或函数密集型应用可能比预期更快地消耗分配额度。

在比较 Netlify 与 Vercel 时,主要权衡是生态系统深度。Vercel 的 Next.js 集成更紧密,而 Netlify 的框架支持更广泛。

Cloudflare Pages:全栈边缘平台

Cloudflare Pages 称为”静态托管”完全没有抓住重点。结合 Workers,它是一个全栈边缘平台,具有与传统后端竞争的数据选项。

部署模型: Pages 处理静态资源和构建管道。Workers 在 Cloudflare 的全球网络边缘运行 JavaScript/TypeScript。Pages Functions 让你可以直接向 Pages 项目添加 API 路由,无需管理单独的 Worker 部署。

边缘和 serverless 能力: Smart Placement 自动将计算密集型 Workers 运行在更接近数据源的位置,而不是强制将所有内容都放在边缘。这解决了当函数需要查询特定区域的数据库时的延迟问题。

数据选项: D1 在边缘提供 SQLite。Hyperdrive 通过池化和缓存加速与外部 PostgreSQL 数据库的连接。KV 提供键值存储。R2 处理对象存储。你可以在不离开 Cloudflare 生态系统的情况下构建完整的应用程序。

开发者体验: Wrangler CLI 处理本地开发和部署。学习曲线比 Netlify 陡峭,但上限更高。

定价结构: Pages 和 Workers 的免费层级非常慷慨。超出后按使用付费。Cloudflare Pages 与 Vercel 的比较通常在成本上有利于 Cloudflare,特别是对于高流量静态内容。

Fly.io:基于容器的全球部署

Fly.io 采用根本不同的方法。它不是抽象化服务器,而是为你提供在你选择的区域中的硬件上运行的容器。

部署模型: 将你的应用打包到 Docker 容器中(或让 Fly 从 Dockerfile 构建一个),Fly.io 处理在其全球网络上的分发。你控制哪些区域运行你的应用。

边缘和 serverless 能力: 这不是传统意义上的 serverless。机器可以持续运行或缩放到零。你可以完全控制运行时——安装系统依赖项、运行后台进程、维护持久连接。

数据选项: Fly Postgres 提供带有自动故障转移的托管 PostgreSQL。LiteFS 支持分布式 SQLite。Volumes 提供附加到特定机器的持久存储。

开发者体验: flyctl CLI 管理一切。心智模型更接近 Heroku 而非 Vercel——你部署的是服务,而不是函数。这适合熟悉容器并希望在没有 Kubernetes 复杂性的情况下进行全球分发的团队。

定价结构: 基于使用量的计费,没有固定的 Hobby 或 Launch 计划。你为消耗的计算时间、内存、带宽和存储付费。小规模时可预测,但在更大规模时需要监控。

选择合适的平台

决策取决于你的约束条件:

  • Netlify 适合希望获得类似 Vercel 简洁性、更广泛框架支持和基于积分的成本灵活性的团队。
  • Cloudflare Pages + Workers 适合需要边缘计算、集成数据服务和激进定价的项目。
  • Fly.io 最适合需要容器级控制、后台 worker 或全球分布的有状态服务的场景。

结论

这些平台没有一个普遍优于 Vercel。每个平台都在简洁性、控制和成本之间进行不同的权衡优化。Netlify 提供熟悉的工作流和灵活的定价。Cloudflare Pages 提供边缘优先架构和不断增长的数据生态系统。Fly.io 为复杂工作负载提供容器级控制。正确的选择取决于你的特定项目实际需要什么——而不是在功能比较表中看起来最好的是什么。

常见问题

我可以将现有的 Next.js 应用从 Vercel 迁移到这些替代方案吗?

可以,这三个平台都支持 Next.js。Netlify 和 Cloudflare Pages 使用适配器来处理服务端渲染。Fly.io 在容器中运行你的应用,让你完全控制 Node.js 运行时。迁移复杂性取决于你使用 Vercel 特定功能(如 Edge Middleware 或 Image Optimization)的程度。

哪个平台为业余项目提供最好的免费层级?

Cloudflare Pages 提供最慷慨的免费层级,具有无限的静态请求和大量的每月 Worker 请求配额。Netlify 提供免费层级,但配额是基于积分的,而不是固定的带宽或构建分钟配额。Fly.io 可能为新用户提供少量促销积分,但它没有结构化的免费层级,大多数使用都需要付费。对于静态内容密集型项目,Cloudflare 在成本上胜出。

与 Vercel 相比,这些平台如何处理数据库?

Vercel 与 Neon 和 PlanetScale 等外部提供商合作。Cloudflare 提供原生选项,包括用于 SQLite 的 D1 和用于 PostgreSQL 连接的 Hyperdrive。Fly.io 提供托管 Postgres 和用于分布式 SQLite 的 LiteFS。Netlify 通过其生态系统依赖外部数据库集成。

哪个替代方案最适合运行后台任务或长时间运行的进程?

Fly.io 是后台任务和长时间运行进程的明确选择。其基于容器的模型允许你运行持久 worker、cron 任务和超过 serverless 时间限制的进程。Netlify 和 Cloudflare 专注于请求-响应模式,并对函数有严格的执行时间限制。

DevTools for the frontend

Gain Debugging Superpowers

Unleash the power of session replay to reproduce bugs, track slowdowns and uncover frustrations in your app. Get complete visibility into your frontend with OpenReplay — the most advanced open-source session replay tool for developers.

Star on GitHub12k

We use cookies to improve your experience. By using our site, you accept cookies.