云函数(FaaS)是一段运行在云端的、轻量的、无关联的、并且可重用的代码。 无需管理服务器,只需编写和上传代码,即可获得对应的数据结果。 使用云函数可以使企业和开发者不需要担心服务器或底层运维设施,可以更专注代码和业务本身,也可以使代码进一步解耦,增加其重用性。
最近随着容器化技术的兴起, 各大云服务厂商也很早就推出了自己的函数计算 / Serverless 相关服务.
函数计算服务其实对个人开发者来说也是非常灵活的一种选择, 可以做到像写博客一样写代码, 无需操心基础设施的运维.
现在我都没有买国内的 VPS(连学生机都懒得养), 配置较好的 VPS 价格一般也不会低, 对于资源消耗较多的服务, 便宜大碗的 HomeLab 更加成本友好.
以阿里云的块存储为例, SSD 云盘 的价格高达 1 元/GiB/月.
前段时间(2023年暑假)淘宝可以购入国行五年联保的企业级固态 WD SN640 7.68TB 价格仅为 1600-1900 元, 使用五年折合仅约 0.0043 元/GiB/月(= 30元/7.68TB/月).
再加上国内宽带也一直是商宽补贴家宽的策略, 国内云的宽带和流量费用也十分昂贵, 阿里云包月 100Mbps 的带宽高达 2000 元/月, 按量计费也要 0.8 元/GB.
在这种”企业云”的定价策略下, 个人开发者想大量用国内云几乎是不现实的.
云函数除了按量计费降低成本和弹性之外, 还可以提供高可用和稳定的服务. (好吧虽然最近刚翻过车我也被波及了)
云函数相当于是容器托管, Docker 容器的一些优势也能充分体现.
比如易于部署(不会一台机器配置的乱七八糟), 安全性隔离(一个容器出现问题不会整台机器沦陷), 独立性高.
只要服务本身运行时间不是很长, 或者本身就是 HTTP 服务的, 调用频率也不是很高, 不需要大量磁盘空间的, 都可以托管到云函数上.
状态的保存可以直接挂载 NAS 或者 OSS 持久化存储状态.
我自己的做法是将需要提供公网访问的服务或一些低频率调用的服务部署到云函数上, 确保高可用性.
其他一些需要长时间运行或占用大量资源的服务放到自己家里的 HomeLab 上, 使用 VPN 连接, 内网既保证了安全性, 还保证服务不会太多, 迁移或发生变更的时候不会太复杂, 也不会造成单点故障大面积不可用.
比如我在阿里云 函数计算 FC 上部署了 NJU 健康打卡, 自建公开分享网盘, Freenom 自动续期, 验证码自动识别后端, 微信消息推送后端, 微信机器人后端, 自建 Bitwarden 密码管理 等一系列需要的服务.
目前的访问量下阿里云给的免费额度也根本用不完, 只需要支付极少的出站流量费用(甚至每月不到 1 元).
如果配额富裕的话, 对于某些镜像比较大的函数服务(如我的验证码识别后端), 可以创建另一个服务轮询访问用于”保活”, 防止冷启动造成较大延迟.
本文采用 CC BY-NC-SA 4.0 许可协议发布.
作者: lyc8503, 文章链接: https://blog.lyc8503.net/post/cloud-native/
如果本文给你带来了帮助或让你觉得有趣, 可以考虑赞助我¬_¬