从 AWS 迁移到自托管
2024年9月12日
在科技新闻中,你经常会听到这样的故事:某个项目变得越来越受欢迎,因此他们不得不从简单的单机设置迁移到某种自动伸缩的云计算托管解决方案,以满足需求。
例如,Rust 基金会报告称,他们在 2023年的基础设施成本上花费了 404,400 美元。这相当于 ZSF 2024年全部运营成本的 88%。很难从 Python 软件基金会的财务报告中找到确切数字,因为他们的基础设施成本是由赞助商承担的,但可以说的是,PyPI wheel 的存储量巨大且呈指数级增长

然而,在这个故事中,我们采取了相反的做法。
ziglang.org 曾托管在 Amazon S3 + CloudFront 上,但由于流量增加,运行成本也随之上升,我们已将网站和 tarball 文件的托管迁移到单机解决方案。
我们过去 6 年的 AWS 费用如下:
亚马逊有时会向我们这样的组织提供免费信用额度,但尽管我们是一个主要收入来源为不受限制捐赠的非营利组织,我们不喜欢乞求金钱,特别是来自杰夫·贝佐斯及其同类的人。我们更喜欢提高整体计算效率,而不是将成本转嫁给那些财力雄厚的人。
问题是,ziglang.org 并非一项关键服务。如果它停机了,那也不算真正的紧急情况,99% 的正常运行时间对于这个用例来说完全足够。有趣的是,那 最后 1% 的正常运行时间却占了 99% 的成本。
考虑到这一点,计划如下。随着 ziglang.org 的流量持续增长,我们将继续在同一台 36 欧元的 Hetzner 实例上托管网站和 tarball 文件,也许有一天会升级到一台 100-200 欧元更强大的机器,但不会再多了。
如果网站因流量过大而暂时不可用,那就随它去吧。如果它被太多没有 正确缓存 CI 运行结果的人意外地 DDoS 了,那就随它去吧。这就是为什么我们用静态公钥签署制品(artifacts),以便您可以使用镜像。
我们不把捐款花在承担这些最终归因于计算资源低效使用的成本上,而是将这些原本隐藏的成本转嫁给 Zig 用户,促使 Zig 用户普遍避免浪费,这样我们就有更多的资金来支付贡献者的时间。
到目前为止,一切顺利。我们正在享受即时网站部署,而不是推送后等待 5 分钟。


展望未来,我们将考虑为发布版本提供 torrent 文件。与此同时,非常感谢 slimsag 和 hryx 为 Zig 发布版本提供镜像。如果您想加入他们,请向 Setup Zig Compiler 提交 pull request。无论如何,通过使用这个集成了镜像的特定 GitHub Action,您不仅帮了我们一个忙,还会使您自己的 CI 更具弹性。
祝您编码愉快,
Andrew