2019年11月19日 基础设施团队会议

2019年11月19日 · Pietro Albini 代表 基础设施团队

会议由 pietroalbini 主持。会议记录由 pietroalbini 撰写。
出席:alexcrichton, kennytm, Mark-Simulacrum, pietroalbini, shepmaster
会议开始

将 crates.io 迁移到 CloudFront 后面

尽管 static.crates.io(托管所有已发布的 crate 的源代码)已位于 CloudFront 之后,但 crates.io Web 应用程序目前尚未如此。这带来了一些问题,因为 crates.io 托管在 Heroku 上,需要将 CNAME 指向 Heroku 的 DNS。不幸的是,crates.io 没有使用子域名,这阻止了我们使用 CNAME。我们所有的 DNS 区域都在 AWS Route53 上,但 AWS 只支持将根域(apex)的 CNAME 指向其他 AWS 资源。因此,直到今天,crates.io 的 DNS 一直在不同的服务上管理,这给我们的维护带来了问题。

我们正在努力的解决方案是将 CloudFront 放在 crates.io 前面,这将最终使我们能够将 crates.io 域名迁移到 AWS。pietroalbini 正在完成最后的 infra 相关工作,我们预计在未来几天内部署这些更改。

使用 Terraform 管理 DNS

pietroalbini 向团队其他成员宣布,他已开始着手将我们的域名 DNS 记录迁移到 Terraform。他已经迁移了 cratesio.comcrates.io 的区域,并计划在未来几周内迁移其他区域。pietroalbini 还为此设置编写了文档

另一个 GitHub Actions CI 配置原型

pietroalbini 继续研究我们新 GitHub Actions 配置的另一个原型。重申一下,GitHub Actions 不支持模板或 include,因此基础设施团队正在寻找一种减少我们管道之间重复的方法。

由于上周会议提出的两个原型并未获得团队所有成员的喜爱,pietroalbini 继续进行实验,本周提出的原型基于 YAML anchors,这是一种标准的 YAML 特性,用于在单个文件内重用部分数据。不幸的是,GitHub Actions 明确禁用了 YAML anchors,因此 pietroalbini 编写了一个小型工具,用于预先生成展开的配置文件并提交到仓库中。

团队更喜欢这种方法,因为它在保持配置文件处于可管理状态的同时,没有引入任何新的配置语法。pietroalbini 将完善该原型,并在未来几天内为其提交一个 PR。