部署平台决定的不只是“代码能不能上线”,还包括构建方式、运行时、数据库、后台任务、日志、区域、休眠、网络和迁移成本。海外 SaaS MVP 适合先选一个能快速发布的方案,但也要避免把有状态服务放在不适合的运行环境里。
价格、免费额度和区域容量变化较快,本文只比较部署模型和适用场景。
先分五种部署模型
| 模型 | 代表 | 典型用途 |
|---|---|---|
| 前端云 / Serverless | Vercel、Cloudflare、Netlify | 前端、静态站点、边缘函数和轻量 API |
| 托管应用平台 | Render、Railway、Zeabur、Heroku、DigitalOcean App Platform | Web 服务、Worker、Cron、数据库和容器 |
| 云厂商容器 / 云服务 | AWS、Google Cloud Run | 容器、云函数、企业网络和更大规模的基础设施 |
| 轻量容器 / VM 平台 | Fly.io | Docker 应用、区域部署、持久服务和更细的运行控制 |
| 自建云主机 | VPS、Docker、Kubernetes | 完全控制基础设施和数据,但运维成本最高 |
总表
| 项目 | 部署模型 | 适合 | 优点 | 主要代价 |
|---|---|---|---|---|
| Vercel | 前端云 | Next.js、前端和预览环境 | Git 集成、Preview 部署、前端体验好 | 后端长任务、持久进程和供应商绑定需要单独设计 |
| Cloudflare | 边缘平台 | 静态站点、Workers、R2、KV 和全球网络 | 全球边缘网络、DNS 和 Serverless 生态 | 运行时与传统 Node.js / Linux 环境有差异 |
| Netlify | 前端云 | 静态站点、Jamstack、Functions 和预览部署 | Git 工作流、Preview、CDN 和前端工具完整 | 复杂后端、长任务和持久服务需要外置 |
| Render | 托管应用平台 | Web Service、Worker、Cron、数据库 | 服务类型清晰,部署和日志简单 | 免费实例限制、磁盘和服务类型需要留意 |
| Fly.io | 容器 / Machine 平台 | Docker、区域部署和长时间运行服务 | 区域选择灵活,运行控制较细 | 网络、Volume、数据库和故障恢复需要自己理解 |
| Railway | 托管应用平台 | 快速部署 API、数据库和 Worker | 项目化界面和部署体验快 | 成本随资源使用增长,生产治理能力需评估 |
| Zeabur | 托管应用平台 | 个人项目和亚洲开发者的快速部署 | 服务模板多,界面化操作简单 | 高级网络、区域和企业能力需要核对 |
| Heroku | PaaS | 传统 Web 应用和标准化团队流程 | 生态成熟,概念简单 | 价格与资源模型相对固定,灵活性不如容器平台 |
| DigitalOcean App Platform | 托管应用平台 | Web、Worker、Job 和托管数据库 | 比 VPS 更省运维,同时保留 DigitalOcean 生态 | 区域、网络和高级生产能力需要核对 |
| AWS | 云厂商平台 | EC2、ECS、Lambda、RDS 等组合 | 服务最全,适合长期扩展和企业网络 | 产品复杂,配置、权限和成本治理要求高 |
| Google Cloud Run | Serverless 容器 | 无服务器 API、Worker 和容器服务 | 按请求或资源运行,容器迁移相对直接 | 冷启动、并发、网络和配套云服务需要理解 |
| 自建 VPS | 云主机 | 想掌控 Docker、网络和数据 | 控制力强,迁移自由 | 补丁、监控、备份、证书和故障恢复都要自己负责 |
Vercel:前端和 Preview 优先
Vercel 为部署提供 Local、Preview 和 Production 等环境。连接 Git 仓库后,每次提交或 Pull Request 都可以生成新的部署和预览地址,这对 MVP 快速迭代很有价值。
适合:
- Next.js、Astro、React 等前端和全栈前端项目;
- 需要每个 PR 都有可访问预览地址的团队;
- API 请求短、状态少、主要依赖外部 BaaS 的产品。
不适合直接承担:
- 长时间运行的 Worker;
- 需要本地持久磁盘的服务;
- 依赖常驻进程、复杂队列或本地数据库的应用。
这并不意味着 Vercel 不能做后端,而是需要把数据库、队列、文件存储和长任务拆到合适的服务中。
Cloudflare:网络和边缘能力优先
Cloudflare 适合把 DNS、CDN、WAF、静态站点、Workers、R2 和 KV 放在同一套边缘平台中。对于全球用户、轻量 API、Webhook、缓存和静态内容,它通常很有吸引力。
Cloudflare Workers 的运行时不是完整的服务器 Linux 环境。依赖 Node.js 原生模块、文件系统、长连接或特定系统库的项目,部署前要检查兼容性。需要完整 SSR 的 Next.js 应用,也要区分 Pages 静态部署和 Workers 运行模型。
Netlify:静态站点和预览部署
Netlify 与 Vercel 类似,适合静态站点、前端框架、Git 工作流和 Deploy Preview,也提供 Functions、Edge Functions、Forms 等配套能力。Astro、Eleventy、React 等以内容和前端为主的项目,可以把 Netlify 与 Vercel 放在同一层比较。
如果产品需要常驻 Worker、复杂队列、持久磁盘或完整 Linux 运行时,Netlify 仍然应该只承担前端和轻量函数,后台部分拆到托管应用平台或容器服务。
Render:服务类型最容易理解
Render 把应用拆成 Web Service、Static Site、Private Service、Background Worker、Cron Job 和 Workflow 等服务类型。它适合希望在一个平台里同时部署网站、API、后台 Worker、定时任务和托管数据库的团队。
Render 的优点是服务边界清楚:Web 请求不应该和后台处理混在一个进程里,Cron 任务运行后可以退出,Worker 则持续消费队列。需要注意实例休眠、磁盘持久化、免费实例限制和服务间网络。
Fly.io:容器和区域控制优先
Fly.io 以 Fly Machines 运行应用,通常从 Dockerfile 或构建配置生成镜像,再通过 fly.toml 和 fly deploy 管理部署。它支持多个地区,适合希望让服务靠近用户,或需要更接近 VM / 容器的控制方式的团队。
Fly.io 的学习成本高于纯 PaaS,尤其是:
- Volume 与应用所在区域绑定;
- 数据库高可用和备份不是默认完成的;
- 多区域部署需要自己设计数据一致性和故障切换;
- 网络、Machine、进程组和健康检查都需要理解。
它适合愿意管理基础设施的开发者,不适合只想拖拽几下就完成部署的非技术团队。
Railway、Zeabur 和 Heroku
Railway 和 Zeabur 适合快速部署 API、数据库和常见服务,开发体验偏项目化和界面化。适合 MVP,但要把资源使用、数据库备份、环境变量和生产日志纳入预算。
Heroku 的价值在于成熟的 PaaS 习惯和标准化流程。对于已有 Heroku 经验的团队,它依然清晰;对于新项目,则需要比较当前成本、扩展方式和是否需要容器级控制。
DigitalOcean App Platform 适合不想直接维护 VPS、但又已经在使用 DigitalOcean 网络、数据库或对象存储的团队。它位于“纯 PaaS”和“自己管理主机”之间,适合 Web、Worker、Job 等常见服务。
AWS 和 Google Cloud Run 更适合已经有云厂商经验、需要企业网络或希望逐步扩展基础设施的团队。MVP 阶段可以只使用其中一个托管服务,不要因为服务数量多就一开始搭完整云平台。
数据库和后台任务不要顺手放错地方
部署平台的选择经常被“前端部署成功”掩盖。上线前至少分开判断:
| 组件 | 需要确认的内容 |
|---|---|
| Web | 是否支持框架、SSR、Streaming、WebSocket 和自定义域名 |
| API | 超时、并发、冷启动、环境变量和网络出口 |
| Worker | 是否支持常驻进程、队列、优雅退出和自动重启 |
| Cron | 是否支持时区、失败告警、重复执行和补跑 |
| 数据库 | 区域、备份、恢复、连接数、迁移和只读副本 |
| 文件 | 对象存储、CDN、上传大小、生命周期和权限 |
怎么选
| 情况 | 推荐 |
|---|---|
| Next.js 前端和快速 PR 预览 | Vercel |
| 静态站点、边缘 API、全球网络和 DNS | Cloudflare |
| 静态站点、前端框架和 Deploy Preview | Netlify 或 Vercel |
| Web + Worker + Cron + 数据库一体化 | Render |
| Docker、区域部署和更细的运行控制 | Fly.io |
| 想用项目界面快速部署常见服务 | Railway 或 Zeabur |
| 不想维护 VPS,但需要 Web / Worker / Job | DigitalOcean App Platform 或 Render |
| 已经采用 AWS / Google Cloud,或需要企业云能力 | AWS 或 Google Cloud Run |
| 已经熟悉 Heroku 的标准 PaaS 流程 | Heroku |
| 希望掌握系统和 Docker 的所有细节 | VPS / 自建 |
迁移设计
无论选择哪家平台,建议把部署相关配置保存在仓库里:Dockerfile、启动命令、环境变量清单、数据库迁移、健康检查、备份脚本和部署说明都不要只存在控制台。
同时避免把平台专属 API 深度散落在业务代码中。把 Blob、队列、邮件、Cron 和日志接入封装成小模块,未来迁移时会比重写整个业务简单。
结语
海外 SaaS MVP 常见的低风险组合是:Vercel 或 Cloudflare 部署前端,托管 BaaS 提供数据库和认证,Render 或其他平台运行 Worker / Cron。等到流量、任务和网络要求变复杂,再把需要的部分迁移到 Fly.io 或自建基础设施,而不是一开始就承担全部运维。