谷歌如何将数十亿行代码从 Perforce 迁移到 Piper

2011 年,谷歌 Perforce 管理团队的技术主管 Dan Bloch 发表了“仍然全部在一台服务器上:Perforce 的规模化”该论文描述了谷歌的源代码控制系统如何每天为“超过一万两千名用户”提供服务,却仍然依靠一台 Perforce 服务器运行,该服务器隐藏在主校区 43 号楼的楼梯下。 截至 2011 年,这台服务器已在 Google 历史上运行了 11 年。它为成立两年的初创企业 Google 提供服务,现在已扩展为支持上市公司 Google。事实上,大约在那个时候,一位幸运的 Google 工程师刚刚获得了 PR #20,000,000。该服务器仍在运行,现在每天执行“1100-1200 万条命令”。 在论文中,Bloch 描述了一些为扩展服务器而做出的成功努力。然而,幕后的景象却不那么乐观。 谷歌不再是曾经的初创企业,现在拥有资源,这些资源是它花在购买一些金钱可以买到的最好的硬件上的。即便如此,服务器还是捉襟见肘。由于谷歌的 CPU 已经超负荷,不时会出现 TCP 连接故障。在任何时候,热备用服务器都保持运行,由八名管理员组成的团队保持警惕,执行保持谷歌源代码控制服务器正常运行所需的常规任务。 多年来,谷歌内部都知道这是一个风险。工程师们一直在寻找替代方案。但以谷歌的规模——“地球上最繁忙的单个 Perforce 服务器,以及任何源代码控制系统中最大的存储库之一”——没有明显、明确的替代方案。 我们之前曾写过 Linus 在 2005 年创建 git 的原因,当时他无法找到任何能够高效扩展以适应庞大的 Linux 内核存储库的解决方案。在“仍然全部在一台服务器上:Perforce 的规模”论文发表几年后,Google 分享了一些有关其整体架构中变更量的统计数据。截至 2014 年,“每周大约有 250,000 个文件中的约 1500 万行代码被更改”。从这个角度来看,这个数量相当于每周从头开始重写 2014 […]

我们如何将代码库从 fp-ts 迁移到 Effect | 作者:Laure Retru-Chavastel | inato | 2024 年 6 月

[*][*] [*] [*] [*] 在 Inato,我们于 2024 年初从 fp-ts 迁移到 Effect。鉴于我们庞大的代码库(约 50 万行 TypeScript 代码),我们需要一种方法来确保任何新代码都可以使用 Effect 编写,同时允许现有的 fp-ts 代码共存。我们仅用两个月就实现了这一目标,为此投入了大约 10% 的时间。在本文中,您将找到我们详细的迁移策略、我们开发的帮助程序(您可以在此找到 存储库),以及我们如何确保代码库的顺利过渡。 本文的 Dev.to 版本已发布 这里。 在 Inato,我们很早就非常积极地采用函数式编程,因此我们从 2020 年初开始在我们的代码库中使用 fp-ts。如果您想了解更多信息,请查看我们的函数式编程之旅。 现在让我们进入正题:今年年初,我们正式决定改用 Effect!为什么? fp-ts 的主要维护者(gcanti👋) 加入 Effect 团队 这可能意味着 fp-ts 方面的开发不太活跃,而 Effect 显然是下一步的开发目标。 由于 fp-ts 的学习曲线较高,且缺乏文档。过去几年加入 Inato 的开发人员经常提到这一点:学习 fp-ts 并不是一件容易的事情。而这正是 Effect 的强项,它拥有一流的文档和大量的培训资源。 欲了解更多理由,请访问 比较 fp-ts […]

告诉 HN:从 Google 迁移到 Squarespace 的域名在 1 个月后被关闭

当我第一次在 HN 上看到有人建议人们在迁移之前将账户转给其他人时,我犹豫了很久。但后来一切都自动发生了,一切似乎都很好。至少我是这么认为的! 一个多月后,它突然宕机了,而且是在最糟糕的时候(周末,这是我的平台最繁忙的时间,所有工程师都下班了)。我公司的主域名和电子邮件已经宕机超过 12 个小时,客户支持现在要求我们再等一段时间。 不太希望在这里发帖会有所帮助,但认为人们应该知道。 以下是时间线: (1)星期六,UTC 时间下午 6 点 — 我们的客户开始联系我们,称他们无法加载我们的平台。 DNS 请求返回“ns1.unknown-nameservers.com”和“ns2.unknown-nameservers.com”作为名称服务器。 我从个人收件箱向工作收件箱发送了一封电子邮件。邮件没有到达。所以不仅我的平台瘫痪了,我们的大多数客户邮件也没有到达! 尝试访问 Squarespace 帐户只会显示一条消息“此帐户当前不可用。请联系客户服务。” 恐慌随之而来,我和我的联合创始人开始尝试通过电子邮件、他们的帮助台、Twitter、Facebook、Linkedin 联系客户支持。甚至让我们认识的 Squarespace 的 PM 上报我们的案例。 Squarespace 表示他们提供 24/7 全天候支持,但我们却无人响应。各种 Facebook 和 Twitter 消息表明其他人也遇到了这种情况。 (2)星期六,UTC 时间晚上 11:00 – 已经过去 5 个小时了。现在,能够访问该平台的任何用户的 DNS 缓存可能都已更新。我和我的联合创始人决定是时候迁移到另一个域名了。因此,我花了接下来的 30 分钟使用我们的新域名部署和更新第三方服务。我设置了语音信箱,告诉人们在主域名关闭时使用新域名。希望即使主域名关闭,他们也能找到我们的号码。 (3)星期六,UTC 时间晚上 11:30 – Squarespace 仍未在任何渠道做出回应。但现在我注意到他们将名称服务器更改为“ns-cloud-a1.googledomains.com”。这几乎是正确的,但在 Squarespace 随机更改它们之前,它们实际上是“ns-cloud-e1.googledomains.com”(用 e 代替 […]