全栈开发者部署网站,首选无外乎 Vercel,Cloudflare Pages 二选一。那么,这两者间有何区别呢?结合我过去一年多的体验,简单分享一下。
我目前两边都在付费使用,且都经历了一些团队协作。我觉得本次分享应该言之有物,不过如果跟事实有出入,欢迎各位指正。
相似之处
两者整体体验非常接近,都很好用。
- GitHub 导入仓库
- 新 commit 自动部署
- 分支自动部署,预览新版本
- 支持多种构建脚本
- 免费域名(二级域名)
- 免费永久 SSL 证书
- CDN
- 可观的免费额度
Vercel 的优势
1. 域名放在哪里都可以
Cloudfare 最大的问题就是你非得把域名根 DNS 转过去,很蛋疼。虽然我对其他域名提供商也没什么忠诚可言,但是我就懒得换……
经网友提醒,我又查看了一下,Cloudflare Pages 不需要停放根域名到 CF,所以这点二者一致。
Vercel 这方面比较大度,你域名放在哪里都行,只要 CNAME 过来就能用。
2. 集成数据服务非常方便
Vercel 集成了很多数据服务,包括 config、KV、Storage、DB,使用起来非常方便,只需要在 GUI 上点一下,然后在本地把环境变量配置一下即可。使用的时候只需要安装指定依赖,非常好理解,和常规工作流程完全一致。
CF 也有类似的服务,但是使用起来就麻烦很多。他们家只针对自家 Worker 做了比较简单的集成,想在自己熟悉的框架里使用会比较麻烦。
3. 团队管理更好用
虽然 Vercel 团队需要花钱($20/人月,相当贵),但是团队管理很好用,该有的功能都有,权限配置好,用起来也很顺畅。
CF 则不然,我到现在都没找到控制团队权限的做法,导致我无法方便的将统计报表分享给朋友。
4. 更好的 Serverless 支持
Next.js 本来就是 Vercel 主力开发的,所以自然,Next.js 在 Vercel 上可以放心使用,服务器环境绝对不会成为问题。默认情况下,Vercel 会使用 Edge 引擎提供更好的性能和更低廉的价格;实在不行,也可以切换到 Serverless 模式获得更好的兼容性。
CF 只支持 node.js 的子集(相当于 Vercel Edge Function),所以如果我们的业务代码中使用的函数库包含了一些不被支持的功能,就无法使用 CF 了。
Cloudflare Pages 的优势
1. 提供很好用的分析工具,包括 Web Vitals
我其实到现在都无法难理解,这东西在 Vercel 那边居然要付费使用,还得通过代码嵌入页面。
CF Pages 这边用起来很简单。直接打开开关,它会负责把统计代码插入页面,然后我们就能看到包含访问量、来源、技术等的数据统计。更重要的是,我们还能看到 Web Vitals 数据,而 Web Vitals 数据,能直接影响 SEO,所以这个统计就非常有帮助了。
2. 免费额度更高
这点 Vercel 也很值得吐槽,它们家额度设计相当诡异。比如,类似(1)的访问量统计,一个月额度 25k,啥意思呢?你的网站访问量超过每天 800,这个月可能就要交钱了……我完全无法理解他们的设计思路。
还有 KV 也是,明明是集成的 Upstash 服务,Upstash 每天免费 10K,它们家免费 5K……其它带宽、容量等就不细说了,都不敢放开用。
CF 具体多少我没仔细看,不过印象里要多得多得多,可能是最大方的云服务商了,基本属于 $20/月 放开用。
3. 全球最近接入
这点说实话我不太敢确定,没有具体测过。按照官方文档的说法,Vercel 企业版是全球的,但是免费和团队版都要手动选择边缘计算服务器的部署位置。
CF 按照后台的说法,会自动选择离用户最近的地方执行函数功能,我们就当他是全球最近接入吧。
4. 目前 *.pages.dev 没有被墙
这意味着即使你没有自己的域名,可以用 Cloudflare Pages 提供服务。相对来说,*.vercel.app 已经被墙的很彻底。
不过,如果真的是持久运营的产品,还是早点切换到自己的域名吧。
排除的其它选项
- VPS:太麻烦了,我已经不想再自己折腾服务器了。
- GitHub Pages:不支持边缘计算,纯静态限制太多。
- Supabase:Deno 限制太多。
总结
我个人的感受:Vercel 强在开发体验(DX);CF Pages 强在量大管饱。具体怎么选择,还请大家酌情考虑。
如果你对出海开发、全栈开发、云服务提供商有什么想法、问题和分享,欢迎留言讨论。祝大家清明安康。
欢迎吐槽,共同进步