
使任何开源项目长期保持可持续性都具有挑战性。您需要找到时间来处理代码、规划功能、回复反馈,如果项目不仅是代码,还是一个实时网站,那么它还需要托管和定期维护。
Swift Package Index 的托管问题比大多数网站略大。除了 Web 和数据库服务器之外,我们还需要大量的处理能力来监控和分析持续发布的软件包,并运行我们的构建机器,这些机器每月处理大约 30,000 个 Swift 构建,这些构建通过我们的兼容性构建系统进行处理。😅
我们很高兴地说,截至今天,Swift Package Index 的所有托管问题都已得到解决,这要归功于两家相信开源的公司的慷慨支持。
首先是 MacStadium。自公开启动以来,该网站一直通过他们的 开源计划 在他们的 Mac mini 基础设施上运行。他们满足了我们提出的每一项要求,包括为我们提供 DTK 的访问权限,这使得我们能够在 M1 机器上市前几个月就获得 Apple Silicon 兼容性结果。他们非常乐于合作,并且始终如一地给予支持。感谢 Heather、Brian 以及 MacStadium 的所有支持团队。
然而,虽然在同一硬件上运行 Web 托管、数据库、软件包更新监控、Linux 构建器和所有 Apple 构建器是可能的,但这并非理想。我们的构建队列变得非常延迟,因为我们要求这些 Mac mini 做太多事情。
这就是 Microsoft Azure 介入的地方。我们现在通过将 Web 托管和 Linux 构建器迁移到 Azure 来减轻负载。该站点已实现负载均衡和冗余,这不仅提高了速度和可用性,还减少了所需的维护工作。与 Microsoft 的合作绝对是一种乐趣,他们唯一的优先事项是看到项目成功。没有什么麻烦是过分的。感谢 Stormy、Thomas、Shelby 和 Candice。
随着 Web 服务器、数据库、软件包更新监控和 Linux 构建器托管在 Azure,以及 macOS、macOS ARM、iOS、tvOS 和 watchOS 构建器托管在 MacStadium,该项目的托管在可预见的未来是安全和稳定的。非常感谢这两家公司的帮助。没有他们的帮助,运行这个网站是不可能的。
注意: 值得一提的是,这篇博文不是我们与这两家公司之间任何协议的条件。所有这些支持的提供没有任何期望,仅仅是为了支持一个开源项目。我们写这篇文章纯粹是因为我们对他们的帮助表示感谢。❤️