Language:Chinese VersionEnglish Version

云本应永久解决基础设施问题。按使用量付费,忘记硬件,让亚马逊和谷歌处理复杂部分。有一段时间,这个故事成立。然后账单开始到来,许多独立开发者和小团队悄悄地将工作负载迁移回 VPS 盒子和裸机服务器 — 不是因为云变差了,而是因为他们终于理解了自己实际购买的是什么。

2026年的自托管与云计算考量与 2019 年确实不同。托管服务已经泛滥到几乎任何东西都可以外包的程度。同时,像 Hetzner 这样的 VPS 提供商使得原始计算变得如此便宜,以至于在专用硬件上运行自己的 Postgres 实例或分析堆栈的成本只是等效托管服务的一小部分。决策不再是意识形态的。它是经济和运营层面的,值得你像对待任何其他基础设施选择一样严谨对待。

这篇文章面向已经理解基础知识并希望在没有大量空谈的情况下做出这些决策的开发者和小型技术团队。这里的数字是真实的。维护估算来自经验,而非供应商文档。

为什么开发者正在将工作负载拉回

自托管重新受到关注并非怀旧运动。这是对过去几年出现的一种模式的回应:托管云服务在开始时极其方便,在规模扩大时极其昂贵 — 对于独立开发者来说,”规模”可能意味着几千用户,而不是数百万。

对于资金充足、冲刺产品市场契合度的初创公司来说,支付 AWS 溢价是合理的。对于有可预测流量且已经知道如何解决问题的自筹资金团队来说,托管服务 400-600% 的溢价更难证明其合理性。还有一个违反直觉的观点,经验丰富的运营人员会得出这样的结论:一个配置良好、运行三四个服务的单一 VPS 通常比一个包含五个托管服务、十几个 IAM 角色且需要专用仪表板来解释账单的分布式云堆栈更容易理解。

Hetzner 基于 Arm 的 CAX 系列云服务器 — 从 2 vCPU 和 4GB RAM 的约 €4.51/月开始 — 使这一点变得非常明显。以在主要云提供商上获得单个托管 Redis 实例的价格,你可以拥有一台能够运行整个数据层的强大服务器。

真实成本对比

抽象的对比没有实际意义。这里有一个具体的例子:一个典型的独立 SaaS 技术栈,产品有 2,000-5,000 月活跃用户,需要一个 Web 应用、一个 PostgreSQL 数据库、一个 Redis 缓存、基础分析和一个监控解决方案。

AWS (us-east-1, 按需定价)

  • EC2 t3.medium (Web 应用): ~$33/月
  • RDS PostgreSQL db.t3.medium: ~$55/月
  • ElastiCache Redis cache.t3.micro: ~$18/月
  • CloudWatch 基础监控: ~$10/月
  • 数据传输 (50GB 出站): ~$5/月
  • 总计: ~$121/月 — 不包括负载均衡器、备份或任何其他附加服务

DigitalOcean (托管服务)

  • 基础 Droplet 2vCPU/4GB (Web 应用): $24/月
  • 托管 PostgreSQL (1GB RAM): $15/月
  • 托管 Redis (1GB): $15/月
  • 基础监控 (已包含)
  • 总计: ~$54/月

Hetzner CX32 (自托管,所有服务在一台服务器上)

  • CX32: 4 vCPU, 8GB RAM, 80GB SSD: €10.90/月 (~$12)
  • 自动异地备份 (Hetzner 快照或 Borgmatic 到对象存储): ~$3/月
  • 运行时间监控 (自托管 Uptime Kuma): $0
  • 总计: ~$15/月

$15 的选项可以在一台 4 核心和 8GB RAM 的单台服务器上运行 Postgres、Redis、您的应用程序和 Uptime Kuma。对于这个用户数量的大多数独立产品来说,硬件不是瓶颈。AWS 和 Hetzner 选项之间的年度差异约为 1,270 美元。三年内,你可以用这个差额直接购买一台专用的裸机服务器。

反论点是时间。AWS 设置在初始配置后需要最少的运营参与。Hetzner 设置需要你管理 Postgres 更新、处理备份、监控磁盘使用情况并应对偶尔的服务故障。这段时间确实有成本,我们将直接解决这个问题。

什么值得自托管

适合自托管的服务有一个共同的特点:它们被充分理解,拥有成熟的工具,生成稳定的工作负载,并且相对于其运营复杂性,托管服务费用较高。

数据库 (PostgreSQL, MySQL, SQLite)

Postgres 是自托管的经典选择。它稳定、文档完善,而且运营需求(定期清理、WAL 管理、备份验证)只需一下午就能学会。在 CX32 或 Hetzner Dedicated AX41 上自行运行 Postgres 的成本只是 RDS 的一小部分。如果您的团队确实无法承受主要版本升级期间的停机时间,或者没有人能够管理数据库,那么托管服务才有意义。但对于大多数独立团队来说,情况并非如此。

分析工具(Plausible、Umami、PostHog OSS)

注重隐私的分析平台是自托管价值最高的目标之一。Plausible Cloud 每月 9 美元可支持高达 10,000 次页面浏览,并可在此基础上扩展。在您已有的服务器上自托管实例几乎没有额外成本。您可以控制数据——这对 GDPR 合规性和受众信任至关重要。PostHog 的开源版本比托管的免费套餐功能强大得多,一旦调整 ClickHouse 配置,就能在普通硬件上流畅运行。

Git 托管(Gitea、Forgejo)

Gitea 及其社区分支 Forgejo 轻量、快速,一旦部署几乎不需要维护。对于将源代码托管在 GitHub 基础设施之外(出于合规、成本或独立性考虑)的团队,自托管 Git 是一个轻松的选择。整个堆栈在 512MB 内存以下就能运行,对中端 VPS 不会增加显著负载。

监控和可观测性(Grafana + Prometheus、Uptime Kuma)

Grafana Cloud 和 Datadog 的月度成本随数据量增长而显著增加。自托管的 Prometheus + Grafana 堆栈以运行它的计算成本提供了同等可见性。Uptime Kuma 部署大约需要二十分钟,几乎不需要资源。主要的权衡是告警路由——PagerDuty 的值班升级处理能力比您自己构建的任何系统都好,但对于小团队,Telegram 或 Slack webhook 完全足够。

文件存储(MinIO、Garage)

当您的存储量足够大时,S3 兼容的对象存储作为自托管服务的运行成本只是 S3 的一小部分。MinIO 操作简单,可与任何 S3 SDK 集成。S3 上的 $0.023/GB/月 与 Hetzner 对象存储服务的 €0.0119/GB/月 相比,在数百 GB 的规模下差异显著。在您自己的硬件上自托管 MinIO 成本更低,特别是对于大型媒体文件或备份。

什么不值得自托管

适合托管服务的产品有着不同的特点:特殊的合规要求、故障时的严重责任、单台服务器无法匹敌的网络规模,或者与节省成本不成比例的监管复杂性。

身份验证和身份管理

认证不是优化成本的地方。配置错误的会话令牌、损坏的密码重置流程或PKCE实现错误不仅会导致停机时间,还会造成安全事件。Clerk、Auth0和WorkOS等服务吸收了OAuth 2.0、OIDC、MFA、passkeys和企业SSO的复杂性,这样你就不必自己处理了。你节省下来的调试JWT边缘情况的时间,足以支付数年的订阅费用。

支付

Stripe的每笔交易2.9% + $0.30费用不是托管成本,而是合规性和责任成本。自行管理支付流程的PCI DSS合规是一项重大工作,而Stripe提供的审计跟踪、欺诈检测和争议处理基础设施,其复制成本要高得多。不要自行托管支付。

CDN和DDoS缓解

Cloudflare的免费套餐涵盖了大多数独立产品的CDN、DDoS缓解和基本WAF。Cloudflare运营的网络——拥有超过300个接入点——无法通过自托管的Varnish实例或几个nginx缓存来近似。这是一个托管服务比你能构建的任何东西都更好且更便宜的案例。离开Cloudflare的唯一原因是合规性要求禁止第三方流量检查。

事务性邮件投递

从自己的IP发送邮件在技术上很简单。建立发送方声誉、管理退回邮件、维护DKIM和SPF记录,以及当你的IP被列入黑名单时处理可投递性问题——这相当于一份兼职工作。Postmark、Resend和Amazon SES每1000封邮件$0.10的费用,与投递错误带来的风险相比并不昂贵。如果你想自行接收和存储邮件,可以自己托管。对于事务性发送,请使用专业服务提供商。

DNS

运行自己的权威DNS对大多数团队来说是一个维护负担,基本上没有好处。Cloudflare DNS和Route 53每月$0.50/托管区的价格,以远低于故障成本的价格可靠地解决了这个问题——故障成本就是你运营的所有服务同时无法访问。

维护的现实

当你因为每月节省$80托管Postgres而兴奋时,自托管的时间成本很容易被低估。以下是在单个VPS上运行小型自托管堆栈(Web应用+数据库+Redis+监控)的诚实估算:

  • 初始设置:4-8小时,用于配置干净、有文档记录的部署,包括备份和监控
  • 常规维护(每月):1-2小时——安全补丁、备份验证、磁盘和内存检查
  • Postgres主版本升级(每年):2-4小时,包括测试和回滚验证
  • 事件响应(估计每年1-2次):每次事件2-6小时
  • 年度总计:大约20-35小时

以保守的每小时75美元的机会成本计算,每年在时间上的花费是1,500-2,600美元。与上文AWS比较中1,270美元的年度节省相比,两者相差不大——如果你的时间有限,则倾向于选择托管服务。当你已经出于其他原因运行基础设施,或者多个服务共享同一台服务器时,计算方式就会改变。在单个Hetzner服务器上运行四五个服务的开发者,比每个服务都维护专用基础设施的开发者拥有更好的时间与节省比率。

另一个变量是风险承受能力。DigitalOcean的托管Postgres实例有明确的SLA和支持团队,当凌晨2点出现问题时你可以联系他们。而你自托管的Postgres实例只有你自己、你的运行手册,以及在那个时间点能在Stack Overflow上找到的内容。

混合方法

最务实的立场是有意识地采用混合方法:在成本节省巨大且运营复杂性可控的情况下自托管,在可靠性、合规性或专业知识比账单更重要的地方使用托管服务。一个典型的独立产品的可行技术栈:

  • 在Hetzner CX32上自托管: PostgreSQL, Redis, 应用运行时, Plausible分析, Grafana + Prometheus, Gitea
  • 托管服务: Cloudflare (CDN, DNS, WAF), Clerk或Auth0 (身份认证), Resend或Postmark (事务性邮件), Stripe (支付), Backblaze B2或Hetzner对象存储 (异地备份)

此配置每月总运行成本约为30-50美元,其中托管服务覆盖高风险领域,而自托管栈处理可预测、易于理解的工作负载。它消除了最昂贵的托管服务项目,同时为身份认证、支付和交付保留了专业级解决方案。

关键原则是:当自托管选项同样适用时,不应出于便利性而添加托管服务;当运营复杂性带来的节省不值得时,不应出于原则而自托管。

按服务类别的决策框架

以下启发式方法适用于独立团队遇到的最常见服务类别。它们是起点而非规则——你的具体情况、团队规模和风险承受能力都会影响最终决定。

数据库

自托管如果: 你的团队至少有一人熟悉Postgres操作,你有可预测的流量,且备份/恢复流程有文档记录并经过测试。使用托管如果: 你处于产品发布前阶段,无法承受在关键增长窗口期间的数据库停机,或者团队没有数据库运维经验。

分析

自托管如果:你重视数据所有权,你的页面浏览量会使托管计划变得昂贵,或者GDPR合规是优先事项。使用托管如果:你想要事件级的产品分析且设置简单(Amplitude、Mixpanel),且成本低于50美元/月。

电子邮件(事务性)

始终使用托管交付。对于大多数每月电子邮件支出低于500美元的团队来说,可送达性和合规性复杂性带来的节省不成比例。

身份验证

月活跃用户(MAU)低于10,000时使用托管服务。Clerk、Auth0和类似服务的免费和低成本 tiers 覆盖了大多数独立产品。只有在你有合规要求、企业SSO需求或庞大的活跃用户群使得托管定价过高时,才考虑自托管Authentik或Keycloak。

对象存储

自托管(MinIO或Garage)如果:你存储超过500GB且已经运营自己的硬件。使用Hetzner对象存储或Backblaze B2如果:你想要S3兼容性但只需S3价格的一小部分,且不想管理存储基础设施。

监控和正常运行时间

自托管用于基础设施指标(Prometheus + Grafana)。使用托管用于需要从你网络外部发起的正常运行时间检查— Better Uptime和Freshping有有用的免费套餐。较大团队的告警管道可以从托管值班产品中受益。

CI/CD

使用托管(GitHub Actions、GitLab CI),除非你有高构建量使得按分钟计价变得昂贵,或有合规要求阻止将代码发送到外部系统。在Hetzner上的自托管运行者在规模上经济高效,但会带来重要的维护开销。

底线

2024-2026年的自托管复兴并非开发者拒绝云服务—而是开发者更擅长阅读细则。托管服务解决了真正的问题,但也带来了真正的成本。自托管基础设施创造了真正的节省,也带来了真正的运营义务。这两者之间的权衡都不是免费的。

善于管理这一点的开发者会系统性地思考,而不是默认遵循意识形态。他们确切知道托管服务的成本,替换它们的成本,以及他们自己的时间价值。他们自托管堆栈中无聊、稳定的部分,在错误代价高昂的地方为专业知识付费。

从过去三个月的云账单开始,找出五个最高的项目。对于每个项目,问自己:我能否在每月15美元的Hetzner服务器上运行这个,实际需要多少时间成本?对于大多数独立团队,其中两三个项目会有明确的答案—在季度结束前采取行动将覆盖下一年的基础设施成本。

By Michael Sun

Founder and Editor-in-Chief of NovVista. Software engineer with hands-on experience in cloud infrastructure, full-stack development, and DevOps. Writes about AI tools, developer workflows, server architecture, and the practical side of technology. Based in China.

Leave a Reply

Your email address will not be published. Required fields are marked *

You missed