云上的日子
用了快两年的 Cloudflare,记录一下这段时间的感受。
说实话,第一次听说 Cloudflare 的时候,我的印象还停留在"哦,就是那个 CDN 公司"。
后来折腾多了,才发现这公司早就不是单纯的 CDN 了。
Workers:跑在边缘的代码
Workers 是 Cloudflare 的核心产品。简单说,就是让你写的 JavaScript 代码跑在全球 200+ 个城市的边缘节点上。
快,是真的快。
传统服务器在美西,你在国内访问,延迟轻松破 200ms。Workers 的边缘节点遍布全球,国内也有不少。从我家访问这个博客的响应时间,大概在 50-100ms 之间,体验很接近静态托管。
便宜,也是真的便宜。
免费版每天 10 万次请求,对于个人博客来说绑着手用都够。付费版 $5/月起,1000 万次请求,配上 D1 和 R2,小项目基本不花钱。
不过,要接受它的限制。
没有文件系统,不能跑 long-running 任务,CPU 时间有上限。它不是万能服务器,它是专为"快速响应"场景设计的边缘计算平台。理解这一点,用起来就顺了。
D1:SQLite 在云端
D1 是 Cloudflare 出的分布式 SQLite。
作为一个被 MySQL 养大的人,第一次接触 D1 的时候是有点不适应的。没有 ALTER TABLE 的并行支持,没有复杂的 JOIN 优化,全靠 SQLite 那一套。
但用久了发现,对于大多数中小型应用来说,SQLite 反而是最省心的。
- 不需要关心连接池
- 不需要关心主从复制
- 免费 5GB 数据,够用
这个博客的数据就存在 D1 里。几十篇文章,加上一些元数据,总共才几百 KB。查询速度快得惊人,每次打开几乎感觉不到数据库的存在。
R2:无限流量的对象存储
R2 是 Cloudflare 的对象存储,对标 AWS S3。
最吸引人的点:无限流量。
不像 S3 那样按流量收费,R2 的流量免费。存储 $0.015/GB/月,免费 10GB。对于静态网站、小型相册这类场景,R2 几乎是零成本方案。
不过说实话,我目前还没怎么用 R2。博客的图片都是外链,暂时没动力迁移。
生态:一切皆可 Edge
Cloudflare 真正让我觉得有意思的,是它的生态。
- Workers KV — 键值存储,适合配置、小缓存
- Durable Objects — 有状态的边缘计算,复杂场景的利器
- Queues — 消息队列,慢慢在成熟
- Pages — 静态网站托管,跟 Workers 无缝衔接
这些东西单独看都不算出众,但组合在一起,配上 Cloudflare 强大的 CDN 和安全能力,就形成了一个完整的云平台。
一些吐槽
当然,不是所有东西都完美。
文档质量参差不齐。 有时候同一个功能,两篇文档的说法互相矛盾。
控制台偶尔抽风。 部署 Workers 的时候,偶尔会遇到莫名其妙的 500 错误,重试两下就好了。
国内访问确实不如国外快。 毕竟是美国公司,国内边缘节点覆盖比不上腾讯云这些本土选手。但对于我的场景来说,可以接受。
写在最后
云服务这东西,没有最好的,只有最合适的。
Cloudflare 给我最大的感受是:它让很多事情变简单了。
以前想搭一个全球加速的网站,要买服务器、买 CDN、配 SSL、考虑防护...一圈下来,精力全耗在运维上了。
现在一个 Worker 加一个 D1,加一个域名,五分钟就能上线一个能跑的东西。
技术应该是放大器,而不是枷锁。
Cloudflare 做到了这一点。这是我愿意继续用它的理由。