探索 Serverless:独立开发者的最佳选择
This content is not available in your language yet.
传统开发部署的困境
作为独立产品开发者,在开发完一款产品后,想要将其发布上线并持续运营是一件很麻烦的事情。传统的方式通常包括:
- 购买云主机并自己配置
- 购买域名并绑定
- 搭建监控系统
- 建立服务发布流程(DevOps)
此外,还需要考虑:
- 服务可能被攻击或植入木马,需要做安全防范
- 数据备份
传统软件公司都需要专业的运维人员处理这些事情。
云服务的出现
随着时间推移,云计算服务逐渐出现。许多云厂商提供了更快捷的docker部署和docker Serverless服务
- 使服务器配置和管理变得更容易
- 能够快速扩容
- 提供一些安全防护工作
但这种方式仍有很大成本:需要持续进行管理,对于企业来说,这是可以计算的运营成本,对于独立开发者来说,持续投入这个成本很高
- 一年的服务购买成本可能达到几千元
- 如果流量增加,可能达到几万元一年
Serverless 的兴起
近年来,Serverless 服务逐渐兴起:
- 早几年就提出了这个概念,但当时还不成熟
- 现在各种基础设施已经完善
许多静态页面的部署已经变成了 Serverless 服务,也就是我们常说的“无服务器”。这种服务按用量付费,不用就不付钱,对独立开发者很友好
除了静态页面,还出现了很多新的 Serverless 服务:
- 后台服务可以部署为一个个的云函数
- 数据库、缓存、消息队列等也有对应的 Serverless 服务
现在基本上整套前端加后端的服务都可以用 Serverless 来完成,这样:
- 运维成本最低
- 非常省事
- 不需要担心容量问题和服务费用问题
Serverless 的优缺点
优点:
- 成本低
- 省事
- 自动扩展
缺点:
-
对于追求高可用性的场景可能不太适合
-
服务有冷启动的问题, 比如我有一个函数, 一段时间不用, 再次调用时, 可能需要几秒的启动时间,需要做一定的优化
我的选择
经过调研,我最终选择了 Cloudflare 的服务来部署我的前端、后端服务。对于数据库、对象存储和各种中间件,我也会使用 Cloudflare 提供的服务。
我也调研过其他服务:
- 阿里云
- 亚马逊 AWS
- 微软 Azure
- Supabase
- Firebase
选择 Cloudflare 最主要原因:价格便宜!价格便宜!价格便宜!
Cloudflare 在网上被大家称为赛博菩萨,或者说赛博义夫,我觉得是很有道理的。这家公司在网上的评价非常高,因为它提供的服务优质又便宜,而且还能被白嫖。
即使是免费套餐也够我用了,然后它的最基本的基础套餐是每个月 5 美元,而且这个 5 美元的基础套餐囊括了它所有提供的服务,包括 Page、Worker、数据库、对象存储等。
我简单评估了一下,即使我的产品的业务量上来了,基本上也用不完。
虽然 Cloudflare 在某些方面(如数据库)不是特别好用,基础设施也不够完善,但主要是便宜。难用和不易上手是短期缺点,但我后面可以通过自动化脚本或辅助程序来提升操作体验。
结语
在接下来的实际产品开发中,我会针对遇到的各种问题,提供我所找到的解决方案。