在 CF 的 workers 上撸了一个简单的博客,有站友在这上面部署过复杂的项目吗?

2024-07-10 10:24:48 +08:00
 jamfer
最近才接触 Cloudflare ,感觉很有趣,花了一天撸了个简单的博客,不是用的 pages ,用的是 workers+d1 ,纯动态博客(只放了几篇远古的文章上去,果然个人博客最大的障碍还是更新动力)

写代码的过程中发现 Workers 的 js 跟 node.js 真的很像,但又有本质的不同,serverless 还是限制颇多的(比如无法直接访问文件系统)。但 CF 的免费福利,还是太舒服了。

我忽然有个疑问,V 站是否有人真的在 cf 的 workers 或 pages 上部署了复杂的项目(不是博客),把项目都迁移到 workers 上是否有坑?问这个问题,主要是昨天让我产生了这方面的冲动,CF 有太多优点了。

最后,顺便麻烦大家帮忙测个速: https://blog.gamegene.net
4863 次点击
所在节点    程序员
31 条回复
codehz
2024-07-10 21:45:11 +08:00
Yadomin
2024-07-10 22:08:46 +08:00
Serverless 这种东西看起来美好,但是当请求量上去之后会发现比传统服务器更贵
lisongeee
2024-07-11 00:44:33 +08:00
感觉比较适合反向代理这种无状态但是又不能完全静态的场景
protonme
2024-07-11 00:59:33 +08:00
部署了整套后端服务,包括 d1 数据库,kv ,R2 ,webp wasm 转码之类的。成本非常低,免维护,易部署( GitHub Actions 自动部署)。每天大约 100k 请求。

webp 转码,设置最慢压缩,大约消耗 6-10s cpu time ,所以得放在 queue 里,异步处理,不会阻塞主线程。

做了 100% coverage unit test ,依赖自动 merge ,时刻保持依赖最新。
protonme
2024-07-11 01:03:47 +08:00
但是一开始就要以 serverless 的思路来设计,尤其是数据(因为很多时候是数据没办法无状态),例如用 uuidv4 来确保全球唯一性和无状态性,这样就不需要等待数据库返回主键。包括 cache 的设计,如何保持全球低延迟。
protonme
2024-07-11 01:06:26 +08:00
有个问题是因为实在太新了,很多 best practice 没有稳定下来,例如 @ByteCat 提到的 Hono ,之前 CF 官方推荐的是 itty-router 现在又变成 Hono 了。包括 test 库也一直在变。
Amose2024
2024-07-11 01:10:37 +08:00
请问博客用的什么文本编辑器?
qweruiop
2024-07-11 05:57:56 +08:00
serverless 这个东西开始不贵,后期太贵。
2 年前入了 cf worker 的坑,后期一旦上量,每天几千到几万 usd 的跑不掉。
最开始想的是,访问上去了,也不会计较这点调用费。但是当访问上去了,才知道同样的成本,用传统服务器的性能又会比 worker 高。。。
jamfer
2024-07-11 06:04:19 +08:00
@Amose2024 自己写的 UBB 编辑器,没用 Markdown
liuliancc
2024-07-11 12:25:19 +08:00
我用 Nextjs 和 Prisma ,Prisma 不支持 edge 运行时,感觉用 workers 会有很多坑,还是在用 Vercel 部署。不过我非常喜欢用 honojs 写后端,然后部署在 workers 上,非常合适
sparkinglemon
2024-07-11 13:57:20 +08:00
@liuliancc prisma 的竞品 drizzle orm 支持 edge 运行时比如 D1 ( https://orm.drizzle.team/docs/get-started-sqlite#cloudflare-d1 )

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1056149

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX