自 2008 年成立以来,GitHub 的数据库系统经历了多次重大的演变,以适应不断增长的用户基础和不断变化的技术需求。GitHub 一直使用 MySQL 数据库,其中保存了除了 git 代码仓库以外的其他所有元数据,诸如用户,issue,PR, Gist 这些。在 2023 年结束之际,我们就一起来回顾一下这 15 年来 GitHub 数据库的演进之路。
起步 (2007 ~ 2009)

第 1 个仓库诞生于 2007 年的 10 月 29 日,而第 1000 个则是在来年的 2 月 25 日。

GitHub 是一个 Rails 应用,这个主应用在内部叫做 Monolith,称呼也一直沿用至今。GitHub 一开始是跑在 Engine Yard 上的,从 Logo 上也可以看出 Engine Yard 和 Rails 社区的渊源。

不过因为 GitHub 的增长过快,以及商业化路线和 Engine Yard 初衷有偏离,所以 GitHub 很快又迁移到了 Rackspace。

Rackspace 是一个如今已经陌生的名字,但在 2009 年还是云服务的首选,上面是 GitHub 当时的评估。

这个阶段的数据库架构也比较简单,MySQL(这个时间点应该是 5.0 或者 5.1),一主一备,通过 DRBD 同步。

确定领域模型 (2010)
GitHub 在 2010 年,经过 2 年不断的打磨,终于发布了大家如今熟悉的 PR 工作流。

也是在同一时期,引入了 Organization 这个概念。

所以从领域模型来看,GitHub 从 2010 后就再也没有变过。

本文回顾了GitHub自2008年以来的数据库系统发展,从MySQL初始使用,到读写分离、高可用架构的建立,大表变更自动化,以及最终的微服务化和向MySQL8.0的升级过程。
最低0.47元/天 解锁文章

23万+

被折叠的 条评论
为什么被折叠?



