Skip to content

探索 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 在某些方面(如数据库)不是特别好用,基础设施也不够完善,但主要是便宜。难用和不易上手是短期缺点,但我后面可以通过自动化脚本或辅助程序来提升操作体验。

结语

在接下来的实际产品开发中,我会针对遇到的各种问题,提供我所找到的解决方案。