跳转到主要内容

WRITING

月均 $31 运维 28 个线上服务的成本工程

2026年4月11日3 分钟阅读曾田力
独立开发VPS产品DevOps
月均 $31 运维 28 个线上服务的成本工程

成本结构

先看账单:

项目月均成本说明
VPS$30PureVoltage, 4C/8G, Ubuntu 22.04
域名~$0.08tianli.cyou, Cloudflare 注册
合计~$31
单台 VPS 月账单约 31 美元与典型 PaaS 组合月费 52 美元的构成对比
一台 4C/8G VPS 全包 ~$31/月(域名摊到每月只有 $0.08,细到看不见);同一摊服务换成 Vercel Pro + Supabase + Render 的组合,按公开列表价要 $52/月——每月差出约 $21。

没有 Vercel Pro、没有 AWS Lambda、没有 Supabase、没有 Render。所有服务跑在一台机器上。

28 个服务怎么塞进一台 VPS

一台 4C/8G VPS 内 24 个 systemd 服务按四类分组加 4 个 Docker 容器的块图
24 个 systemd 服务按 Web 应用(6)/API(4)/自动化(8)/基础设施(6)四类分组,每个都是独立 unit、挂了自动重启;需要隔离环境的 4 个跑 Docker——全部塞进同一台 4C/8G。

systemd 服务(24 个)

按用途分类:

  • Web 应用(6):个人网站、Dashboard、文档站、n8n、代理管理、状态页
  • API 服务(4):灌溉计算、搜索、联系表单、webhook receiver
  • 自动化(8):briefing 生成、数据同步、证书更新、日志轮转、备份…
  • 基础设施(6):Nginx、Node.js 运行时、Python 服务、监控…

每个服务都是独立的 systemd unit,挂了自动重启,日志进 journald。

Docker 容器(4 个)

需要隔离环境的服务用 Docker:n8n(工作流引擎)、Uptime Kuma(状态监控)等。

关键决策

为什么不用 Serverless

  1. 延迟可控:VPS 上的 Node.js 进程常驻内存,没有冷启动
  2. 成本可预测:$30/月固定,不怕流量峰值账单爆炸
  3. 全部可观测journalctl -u xxx 即可看日志,不需要 CloudWatch
  4. 可以 SSH:出了问题直接登上去排查,不用猜

Cloudflare 免费套餐的威力

  • DNS + CDN:全球边缘节点,不花钱
  • SSL:Origin Certificate,免费且自动
  • CF Access:零信任认证,不需要自建登录系统
  • Origin Rules:回源到 8443 端口,Nginx 统一入口

Nginx 统一网关

所有服务通过 Nginx 反代暴露,一个 8443 端口对外。子域名路由到不同 upstream:

docs.tianli.cyou → localhost:3001
status.tianli.cyou → localhost:3002
n8n.tianli.cyou → localhost:5678

资源使用情况

实测 4C/8G 的利用率:

  • CPU:日常 5-10%,build 时峰值 60%
  • 内存:常驻 3.2GB,还有 4.8GB 余量
  • 磁盘:40GB 用了 18GB
  • 网络:日均 2GB 出站
CPU、内存、磁盘、网络四项实际用量与总容量的余量条形图
实测利用率离瓶颈都还很远:CPU 日常 5–10%(build 峰值也才 60%),内存 3.2GB/8GB,磁盘 18GB/40GB,网络日均出站约 2GB——这台机器远没有被塞满。

扩容策略

当一台 VPS 不够时:

  1. 垂直扩容:升级到 8C/16G(约 $60/月),覆盖大部分场景
  2. 水平拆分:把计算密集型服务(build)移到第二台
  3. 最后才考虑云服务:只有当单个服务需要弹性伸缩时

总结

独立开发者不需要"云原生"。一台 VPS + Cloudflare 免费套餐,就能构建可靠的生产环境。关键不是技术选型多先进,而是每一分钱都花在刀刃上

订阅

新文章都先发在这里。用 RSS 订阅: /feed.xml

作者

曾田力

水利工程师。在这里写 AI 方法论、投资日复盘和工程实践。

这篇写错了、写漏了,或者你有别的想法?