虽然 Lambda 解决了一部分问题,比如免运维、低价,也许 serverless 本身也能避免一些内存泄露问题?
但是产生了更多的问题:
前一阵子刷 Github 看到一个热门库Hono,据说是转为 edge function 环境设计(其实就是本身功能比较精简,尺寸小,有一个高性能路由),作者似乎现在是在给 CloudFlare 做布道师。
感觉 EdgeFunction + Hono 似乎可以在 Lambda 的基础上更进一步,更加简化其他工作,只要开发程序本身即可。遂开始把 lambda 上的程序转移到函数计算架构。
Hono 有一个脚手架工具可以生成多个基于多种平台的模板。
因为我是前端,所以最喜爱的是 Vercel ,Vercel 虽然也有函数计算,但是它的函数不能单独存在,必须存在于 Next.js 项目内。
对于我的项目,我可能希望多个 workers 一起工作,不一定每个 worker 都有前端界面,这样 vercel 的方案就比较受限。
鉴于现在 CF 的人气比较高,免费计划也很值,于是就开始研究了,经过最近的研究,个人有以下几个感受:
[ol]
[/ol]
总体来说,我的个人项目从 lambda 迁移到 cf 以后,各方面是提升的。
冷启动问题没有了,而且感觉 wrangler 很简单很可控很放心。
相比 Lambda 的花费,现在花费更低了
原本的 postgres+primsa 本身就与 serverless 相容度低,而且 postgres 用在小应用上没有必要。
最后是 CloudFlare 天生比较抗攻击的优点。有时候小公司做些东西被小鬼盯上了很容易被流量攻击打死,这也是我拒绝自建网络服务的一个很重要的原因。
总体来说现在不管程序还是架构还是维护都比以前更轻巧了,继续开发维护也更加有信心了。
不得不感叹,安全、抗打、低价,CloudFlare 才是未来啊!(对于小公司或个人 sideproject ,我是这样认为的)
不过这么好的东西,问题当然还是有的。就是 cloudflare 国内不能直接访问。
但通过转移域名解析服务器到 cloudflare 是可以实现直接访问的。
听说墙封死 cloudflare 是可以做到的,不过因为 cloudflare 用的公司极多可能造成损失,所以大概还是可以通过这种方式访问吧。
其他的,我看对象存储和消息队列也是有的,构建一个功能全面的 App 应该没有太大问题,如果不在乎有一天无法访问的风险,我觉得还真是一种相当先进的服务托管方式了。
lambda, Cloudflare, Workers, serverless