为什么我选择在 Cloudflare 上构建
每个项目都从同一个不起眼的决定开始:这东西到底跑在哪?
多数开发者把托管当成一个勾选项。选默认、部署、继续。我以前也一样。但做得越久越清楚:托管平台不只是基础设施,它是架构约束,会塑造后面每一个决定。
这个站和我要发的东西,我都选了 Cloudflare。不是因为跟风,而是因为它和「软件该怎么工作」的想法一致。
显而易见的选择有什么问题
托管生态反而变复杂了。AWS 给你 200+ 服务,指望你像电气工程师一样自己接线。Vercel 体验顺滑,但把你紧紧绑在它的框架偏好和定价档位上。
传统 VPS 给你控制权,代价是别的都没了——你又得半夜搞 nginx 和 SSL。
这些都不是坏选择,但都逼你在「简单」和「控制」之间做取舍,而我觉得这个取舍本不该存在。
我想要的不是这样:一个让基础设施真正消失的平台。不用想服务器、区域、扩缩策略;全球 edge 不是付费附加项,而是默认。
Cloudflare 做对的地方
Cloudflare 的模型围绕一个简单想法:算力应该离用户近,而不是离你的服务器近。
Workers 在 edge 跑代码——全球 300+ 数据中心——没有冷启动、不用选区域、不用做容量规划。部署一个 Worker,立刻全球可用。这不是话术,是实际架构。
对静态站,Cloudflare Pages 就是我那篇「静态优先架构」里说的:预构建文件从最近的 edge 节点提供。没有源站、没有动态渲染开销,就是字节走最短路径到浏览器。
但说服我的不是某单一功能,而是平台的一致性。
要 KV?KV 就在那儿,全球复制。要关系型库?D1 在 edge 跑 SQLite。要对象存储?R2 兼容 S3 且零 egress 费。要 AI 推理?Workers AI 在同一张网上跑模型。
每种原语都在同一套生态里、同一套部署模型、同一种语言。没有五个厂商控制台之间的胶水代码,也没有「现在去配 IAM」那一套。
底下的哲学
选 Cloudflare 更深的原因是哲学上的。
我认为基础设施应该是隐形的。最好的托管平台是你会忘掉的那种——不是你不理它,而是它几乎不占你注意力,你可以全神贯注在产品上。
Cloudflare 的架构就是这样。Workers 没有要调的冷启动;Pages 没有要手动失效的构建缓存;KV 没有要设计的复制延迟。平台把复杂度吞掉而不是暴露出来。
这比很多开发者以为的更重要。花在配基础设施上的每一小时,都是没花在用户真正在乎的东西上。托管商强加给你的每一个架构决定,都是你没选的约束。
我不想优化部署流水线。我想 push 代码就上线——全球、即时、可靠。
代价
我不天真。Cloudflare 的生态比 AWS 年轻,有些边角还糙。
D1 还在成熟。Workers 运行时不是 Node.js,是 V8 isolate,所以部分 npm 包要改才能用。文档在变好,但偶尔还有坑要翻 Discord。
这些都是真实约束。我接受,因为架构上的契合盖过了这些摩擦。
当托管平台和你想的一样——edge 优先、静态优先、讨厌复杂度——糙边就只是暂时不便,而不是根本错配。
往后看
Cloudflare 在做一件更野心的事:在 edge 上做完整应用平台。不只是托管、不只是 CDN,而是一套完整运行时,让你的代码和用户之间的距离趋近于零。
那和我的方向一致。我想做的是:感觉即时、到处能跑、对用户零要求的软件。选对地基不是技术脚注,是第一个真正的架构决定,会贯穿之后的一切。