一个客户在一月初给我打了个电话,兴高采烈。"高坦,我刚看到 Vercel 现在支持 Docker。我们可以关闭 DigitalOcean droplets 了,对吧?"他在运行三个 droplet,其中两个每月 24 美元,一个 48 美元。他已经准备好了一个电子表格。他想省钱,而且想立即省钱。
我告诉他先等两周,让我真正测试一下。好在他听了我的建议。
关键是:Vercel 的容器支持确实令人印象深刻。VPS 也还没死。这两个句子同时都是真的,两者之间的细微差别值得理解,这样你在向 Vercel 的基础设施 docker push 所有内容时就不会疑惑为什么 WebSocket 连接一直断开。
Vercel 实际上宣布了什么
Vercel 的 Docker 支持通过 Build Output API 推出,后来被正式用于公众使用,让你可以发送 Dockerfile,由 Vercel 处理容器运行时。不再局限于 Next.js 约定或无服务器函数文件结构。你写你的 Dockerfile,Vercel 构建它、运行它。
这确实是一个根本性的转变。在此之前,如果你有一个 FastAPI 后端或一个运行某些特殊功能的自定义 Node 服务器,你要么得把它扭曲成无服务器函数的形状,要么在 Vercel 前端旁边运行一个 VPS。大多数人选择了后者。这很烦人,但能用。
运行时的实际样子
Vercel 的容器运行时不是原生 Docker。它更接近你在托管容器服务上得到的东西。你的容器收到一个请求,Vercel 路由它,容器处理它。持久化进程能正常工作。你可以运行像 Python WSGI 服务器或 Go HTTP 二进制文件这样的东西。单个请求生命周期内的长时间运行任务没问题。
但约束条件很重要。容器可以扩展到零。冷启动存在。最关键的是:你没有持久磁盘存储。如果你的应用写入本地文件系统并期望这些文件在下一个请求时还在那里,你会遇到问题。
Vercel 容器真正闪耀的地方
自三月以来,我一直在 Vercel 容器上运行一个 Django REST API。这是一个相对简单的、读取密集型的服务,用于一个媒体客户端,主要是 GET 请求,访问 Neon Postgres 数据库。没有文件写入。没有后台任务。没有 WebSockets。
效果非常好。部署预览能工作。GitHub 集成意味着每个 PR 都有自己的环境。这个特定容器的冷启动延迟大约在首次空闲后的 800ms 到 1.2 秒之间,听起来不好,但当客户的流量是突发性和可预测的时,这是可以接受的。
那项服务的成本?加上 Vercel Pro 计划后大约每月 20 美元。DigitalOcean App Platform 上的等效服务会类似。原始 droplet 会更便宜,但我们得自己管理它。
这是一个明显胜利的场景
想想典型的代理公司项目。一个带有无头 CMS 的营销网站,一个用于联系表单或某些自定义逻辑的轻量级 API,以及对快速部署的需求。以前你会用 Vercel 做前端,用一个 6 美元的 droplet 做小 API。现在你可以把所有东西都放在 Vercel 上,使用一个仪表板,API 也有部署预览。要维护的东西更少。要忘记更新的东西更少。
对于处理五到十五个客户网站的自由职业者来说,即使计算成本略高,这种运营上的简洁性也是值钱的。
VPS 仍然大获全胜的场景。很明显。
好的。我需要直言不讳,因为围绕 Vercel 容器的热情已经导致某些开发者犯了代价高昂的错误。
持久化文件系统操作。如果你的应用生成 PDF 并在推送到 S3 之前在本地存储,没问题,这个具体操作是可行的。但如果你运行的是类似自托管 Meilisearch 实例这样的东西,它会把索引写入磁盘,你就需要持久化存储。Vercel 不提供挂载卷。你得添加类似托管 Meilisearch 服务的东西或在 VPS 上运行它。就这样了。
WebSocket 和长连接。Vercel 的无服务器和容器环境有请求超时限制。2024 年末,在 Docker 支持推出之前,我在一个 Seahawk 项目上遇到过这个问题。我们在为一个小型 SaaS 客户开发实时协作工具。尽力了一切想在无服务器基础设施上让它运行。最后把 WebSocket 服务器挪到了一个月 12 美元的 Hetzner VPS 上。问题解决了。那个 VPS 从那时起一直运行无恙。
大规模后台工作进程和定时任务。是的,Vercel 有定时任务。对简单的定时任务来说它们不错。但如果你运行的是像 Celery 工作进程这样的东西,持续处理一个任务队列,你需要一个能够... 持续运行的进程。VPS 轻而易举能做到。在 Vercel 容器上,你是在逆势而为。
大流量下的成本。这是让人惊讶的部分。在低到中等流量下,Vercel 容器很有竞争力。但在真正的高请求量下,按请求计价就开始累积成本了。一个月 48 美元的 Hetzner 独服能处理的流量,在 Vercel 上高峰期要花好几百美元。那个想关闭他的 droplet 的客户?其中一个在运行一个高流量的内部仪表板。我算了一下数字。保留那个 droplet 便宜了 18 英镑/月,即使考虑到偶尔的维护时间。
我绝对不会迁移到 Vercel 的具体工作负载
让我具体说。无论 Vercel 发布什么,这些都是我会主动转向 VPS 的东西:
- 自托管数据库。哪怕只是一个小的 Postgres 读副本以提升读取性能。Vercel 不是数据库主机。用它搭配 Neon、Supabase 或 PlanetScale,但别试着在上面跑 Postgres 本身。
- 媒体处理。FFmpeg 任务、图像调整队列、任何运行时间不可预测的 CPU 密集型工作。一台 20 美元的 Hetzner VPS,配备 2 个 vCPU,处理效果更好,成本更低。
- 全天候运行的内部工具。监控代理、日志聚合器、自定义代理服务器。这些应该就是在运行。始终在线。缩放至零是这里的大敌。
- 任何涉及 GPU 的东西。这不言而喻,但值得说一下。
反过来说,以下是我今天有信心放在 Vercel 容器上的东西:
- 轻量级 REST API(FastAPI、Express、Gin),没有持久状态
- 使用自定义服务器配置的容器化 Next.js 或 Remix 应用
- 仅在营业时间被访问的内部 API(缩放至零在这里实际上很棒)
- 任何你真正想要按 PR 进行部署预览的服务
隐藏的成本:没人谈论的问题:运维复杂性
这些年来,我在 Seahawk 构建了超过 12,000 个网站。让代理商和自由职业者吃亏的第一件事不是计算成本。是运维开销。
一台 VPS 听起来很便宜,每月只需 6 美元。确实便宜。但你需要打补丁、监控它、配置 Nginx、设置 fail2ban,偶尔还要在晚上 11 点 SSH 进去,因为某个地方表现得很奇怪。这不是免费的。这是时间,而时间很贵。
Vercel 消除了所有这些。Railway、Render 和 Fly.io 也是如此。这里真正的竞争不是"Vercel vs 真空中的 VPS"。而是"托管平台税 vs 运维时间税"。对于独立开发者和小型代理商来说,托管平台税通常是更划算的选择。
早在 2019 年,一个客户给了我一份简报,其中包括管理他们的 Ubuntu 服务器。我也按此报价。六个月后,我仍然因为我在技术上"管理"但已经完全降低优先级的服务器上的磁盘空间警报而被叫醒。从那以后,我就更加谨慎地考虑我承担哪些基础设施的所有权,以及哪些我付钱让平台负责。
我实际使用的决策框架
不是魔法流程图。只是我在每个新项目上都会问的一组问题:
- 这个服务是否写入磁盘并期望这些写入持久化?如果是,它需要 VPS 或托管存储。
- 这个服务是否保持长连接(WebSocket、SSE、gRPC 流)?如果是,需要 VPS 或像 Fly.io 这样明确支持它的平台。
- 这个服务在长期内是否受 CPU 限制?Vercel 容器有 CPU 上限。VPS 更胜。
- 团队是否需要部署预览和 GitOps 而不用费力?Vercel 更胜。
- 流量是否持续且高容量?算一下数字。超过某个阈值后,VPS 通常更便宜。
- 这是一个人的项目还是不想操心服务器的小型机构?Vercel 的溢价是值得的。
如果第 1、2 或 3 个问题的答案是肯定的,我会选择 Hetzner 或 DigitalOcean。其他情况都需要具体讨论。
2026 年基础设施的真实样貌
平台在持久化存储方面做得越来越好。Fly.io 有 Fly Volumes。Render 有持久化磁盘。考虑到 Vercel 收到的请求有多频繁,它最终也可能会添加类似的功能。"托管平台"和"拥有完全控制的 VPS"之间的差距在缩小。
但缩小并不等于消除。原始计算的经济学基础没有根本改变。Hetzner CAX11 ARM 实例按 €3.79/月 的价格仍然具有惊人的性价比。在托管平台上没有人能用相同的计算能力击败这个价格。
2026 年诚实的现状是这样的:VPS 没有死亡。VPS 只是越来越可选。这两者是不同的。
我现在在 Seahawk 启动的大多数新项目默认使用 Vercel 或 Railway,除非上面那个问题列表中的某些条件触发不同的答案。在过去十八个月里,我们管理的活跃 VPS 实例数量可能减少了约 40%。但留下来的那些确实有充分的理由,它们不会消失。
常见问题
Vercel 容器能否取代 Docker Compose 实现本地到生产的一致性?
某种程度上可以,但实际上不行。Docker Compose 用于在本地编排多个服务。Vercel 每个部署运行一个容器。如果你的堆栈在 Compose 文件中定义了 Web 服务器、Worker 和 Redis,Vercel 可以处理 Web 服务器部分。你仍然需要指向托管 Redis(Upstash 是常见选择)并单独处理 Worker。本地一致性比以前好,但 Compose 到 Vercel 不是直接转换。
当 Vercel 容器缩放到零时会发生什么?
容器进程停止。当新请求到来时,Vercel 会重新启动它。这个启动时间就是你的冷启动延迟。对于编译型二进制文件(Go、Rust),通常在 500ms 以内。对于较大的运行时,比如基于 JVM 的应用,可能需要 2 到 4 秒。这值得在预发布环境中测试,因为有些客户绝对会注意到 3 秒的首次加载。
Vercel 的容器支持在免费的 Hobby 计划中提供吗?
截至 2026 年初,没有。容器部署至少需要 Pro 计划。Hobby 层仍然支持无服务器函数和静态网站。值得直接查看 Vercel 的定价页面,因为这个情况以前改过,将来也可能会改。
什么时候应该使用 Fly.io 而不是 Vercel 或裸 VPS?
当我需要持久化进程、全球分布接近用户、又不想管理服务器配置时,Fly 是我的首选。它处于一个有趣的中间位置。你部署容器,但相比 Vercel,你能对区域、机器大小和持久化卷有更多控制。我用它来处理长期运行的 API 和任何需要在多个区域中运行、具有 WebSocket 需求的东西。权衡是 DX 比 Vercel 的 GitHub 集成要复杂一些。
---
VPS 不是你应该出于习惯而默认使用的东西。但它也不是你应该出于兴奋而放弃的东西。了解你的工作负载。计算数字。也许在关闭任何东西之前等两周。
相关阅读:2026年AI搜索关键词研究:是什么、为什么传统、技术SEO和AI搜索。
