cloudfalre worker 也许是目前 web 服务部署的一种最佳实践。

3 天前
 jeesk
1. 先前我问了一下,如果使用 cf 不考虑大陆,数据中心选择哪里好,后面我将我原有的 go 服务使用 worker 重写后, 速度比以前提高太多。

2. 这个服务我自己做了一个用户注册系统,主要是帮用户申请签名证书,以及商品订阅,以前用户备份的配置信息。js + d1 数据库完全够用。 关键的是还快,没有内存担心的问题。

3. 涉及到 cloudflare api 相关接口, 以前无论是部署到海外还是国内, 接口都慢的要死, 使用 worker 后, 快得无法想象。

4. 我以为使用 cloudflare 如果接口超过 cpu 占用 10ms ,接口就会超时, 从我使用的看来,没有这个问题。



5. worker 加上 d1 ,加上 cf 的证书,认证,限流,安全验证, 可以说从 serverless 的思想,重点狙击个人使用 springboot ,golang 写的 web 服务。

6. 当然也有很多限制, 比如储存文件,文件上传的得使用其他的对象储存。可能没有直接写磁盘方便。国内可能不能正常访问。如果 cf 关闭了这个服务,迁移代码很麻烦。无法使用一些 linux 命令处理一些业务逻辑,这个目前无解。


总得来说如果你有一个简单的服务,如果不想自己处理证书,安全,限流等等一系列的问题, 那么迁移到 worker 目前看,是一条不错的路子。这么香,况且还免费,不是我吹,要是国内能提供这种服务,估计国内阿里云和腾讯云会受到重创。在这种情况下,springboot
和 go 不再是我的优先考虑了。
3893 次点击
所在节点    程序员
50 条回复
oneisall8955
3 天前
+1 ,有 all in worker 的想法
kuanat
3 天前
Serverless 的优点是在 free tier 也就是用量很少的情况下省钱。再就是独立模块开发比较快。

我司之前有个图像分析的工作流尝试通过 cf ,即使是 paid plan 可用性也不是太好,如果换算成 sla 大概在 99.5% 左右吧,队列中的任务经常三五分钟的重试。

不过瑕不掩瑜,特别是随着 cf 支持 js 之外的语言,我个人很多自动化项目都上了 cf 。我尝试过好几个 serverless 平台,cf 还是更懂开发者的。
summerwar
3 天前
存储文件直接 cf 的 r2 就好了。

d1 里要做好索引,有些查询会走全量搜索,当数据量多的时候,多查询几次会超量。举个例子,假如你有个表数据是 10 万记录,查询的时候没走索引,那么一次查询就占用了 10 万次查询的量。turso 和 d1 都有这个潜在的坑,因为查询量是按照扫描量来算的
forsigner
3 天前
我刚好在实践这个技术栈,一个基于纯 cloudflare 技术栈的动态博客: https://github.com/penx-labs/penx ,并且实现了一键部署: https://penx.io/self-hosted
ruome
3 天前
@forsigner 👍
r46mht
3 天前
worker 跟 aws lambda 之类的相比有什么优点?
musi
3 天前
国内之前腾讯小游戏还能免费用他家的 servetless ,我也觉的香。后面用户一多就开始收割了
jeesk
3 天前
从 2000 年开始的免费 php 主机,免费云主机,到现在免费的 serverless 。

severless 的思想, 关注于业务逻辑。 不折腾 https 证书,限流,防火墙,认证,在 cf 提供的其他功能,将传统的运维问题足以简化, 便能够快速部署一些业务逻辑简单的服务,并且是高可用的。

从传统云主机的份额下,撕裂出一块口子,为小型企业,个人开发者提供另外一条快速开发之路, 甚至不再需要运维,不需要懂 linux ,一样能做一套服务, 开发者在 cf 平台下就能够胜任, 一定额度的限制下之下,这一切还是免费的。


php 免费主机: 自己部署 php , 限制多,自己处理证书.
免费云主机: 自己部署应用,有内存和磁盘的限制,自己处理证书。这些都会遭受攻击,甚至会被暂停服务。


cf 的 worker , 在上述的条件下有了阉割,但是自动证书,免费的限流、防火墙,认证,甚至 d1,r2 还有快照,这些几乎是传统云主机的痛点。

1. 使用 worker 没有证书的困扰,ssl 错误的生产事故不再。
2. 限流功能随便配置,免费足够。
3. cf 的认证策略特别多, 相信我,肯定有你能够用到的。
4. 使用 d1 数据库,还有快照, 你自己部署云主机备份过自己的数据库快照吗?
jeesk
3 天前
shuimugan
3 天前
Cloudflare Workers 连冷启动都没有,而且 IO 等待的耗时不计在内,只算 CPU 时间,比 Serverless 好太多了
nong99
3 天前
一般都会在 cf worker 部署什么内容呢? 大陆不允许访问,那…
knightjun
3 天前
servetless 确实很好用,灵活性强,省了很多成本
jeesk
3 天前
@nong99 用 itdog 测试一下?
qweruiop
3 天前
cf worker 是个大坑,已经有 2 个业务从 cf 迁移走了。
一旦上量,cf 会一直建议你买企业版,然后你的 worker 和 r2 的账单会无法想象。
chesha1
3 天前
cf workers 确实好用,唯一不行的就是免费版的 cpu 时间太受限了,开个 paid plan 就能用得很爽

serverless 对于体量不大的服务来说确实是最佳实践,但是如果体量上来之后,一方面有很多有状态服务(比如云下的非托管数据库),serverless 和这些服务交互有点麻烦,那还不如把计算也放在一起。另一个是 serverless 的可观测性不好做,如果所有东西全放在 k8s 里一把梭就很直观。最大的阻碍是目前国内的开发观念还需要更新,很多人还是觉得有个服务器看着才安心,但是这几年境外用 ts 全栈+serverless ( vercel/cf 等)已经发展得很好了,国内还是 spring 全家桶+前端( vue 等)+云服务器/托管 k8s 比较主流
jeesk
3 天前
@qweruiop 你说的上量量有多少?

我一直推荐的个人开发者和小企业免费使用。
codehz
3 天前
worker 的问题是,延迟只在你完全不考虑状态的时候还行,d1 的访问延迟太离谱了,kv 稍微快一点,但也不够快,要性能还得上 durable object 。。。(拿来部署 tg bot ,发现延迟问题很明显,tg 的 webhook 响应时间普遍在秒级以上)
jeesk
3 天前
@chesha1 cpu 密集型,我暂时没测试,我有些一些加密验证的 需求, 我准备测试一下后, 看看情况。10ms 确实太离谱了, 对非对称加密不知道能不能用。
JensenQian
3 天前
美国吧
我 r2 选择的就是美国
1 国内访问 cf 都是去美西
2cf 自己主要数据中心应该都在美国
NewYear
3 天前
这类服务有 2 大问题让人很难下定决心。

很典型的“除了优点全是缺点”,按量付费看似很便宜,但控制不了账单,账单是失控状态的还怎么玩呢。

1 、理论上资源无限就意味着账单无限。
2 、随便被攻击或者恶意流量怎么办,都是面向用户的东西。
3 、如果账单可以限额,也不管用啊,达到限制是中断服务呢还是怎么办呢。

第二大问题便是难以迁移。
4 、也就是你用了 CF ,要迁移到其他服务商不会容易,然而就算能迁移,这个账单 bug 还是存在。

这也是为什么大家倾向于租用服务器/VPS ,因为账单可控啊。
个人玩玩就算了,也有被人恶搞的风险,要是虚拟主机/vps ,最多就是打爆了被服务商赶走,这种服务咋整,不管是国内还是国外,欠账单的巨额款,要怎么办呢。

如果只能个人玩玩,且风险大,我个人用都得藏起来,那真是兴趣不大,事实上我也在用 worker ,但只是用来跳转页面用,不管拿它来做什么,都担心超过配额,归根结底,没意思。

其实企业也一样,预算也是重要的一环,不可控的预算企业也怕怕,管理人员也不是傻子,真要长久干都是要估摸好预算否则很容易出事。

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

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

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

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

© 2021 V2EX