相关文章

GitLab应用:单台服务器托管10万个仓库

来源网址:

  如果用户想要在任何地方免费托管公共/私有数据仓库,可以选择GitLab.com,已有将近20000人积极地使用GitLab来托管仓库,并且一台就已托管10万多个仓库。

  之前,GitLab.com托管在亚马逊AWS上最高的配置实例。但随着用户数的增长,局限于只能进行垂直扩展和CPU绑定,用户必须寻找AWS替代品。

  100K仓库需要占用好几个TB空间,由此存储能力变得相当重要。使用git用户只能选择单一的文件系统,而不是对象存储(比如S3)。用户希望能够轻松地扩展存储,而应用随着通过敲击代码就会给CPU带来一定的负担。因此,需要更多CPU核心来减轻高负载带来的压力。

  事实证明,使用自己的服务器是迄今为止最具性价比的方案。

图来源gitlab.com

  目前,有两台独立服务器用来运行GitLab.com,服务器配置如下:

  ●服务器型号:HP DL180 G6(2009年引进)

  ●处理器:2颗X5690(共24核)

  ●32GB RAM

  ●12块2TB硬盘(其中两个用于卷,使用RAID 1,另外10个磁盘使用RAID 10 ext4文件系统)

  实际上,我们开始只用了16个核,但又增加了8核来取代CPU,从而减少CPU-bound加载。

  故障和故障转移

  弃用AWS意味着不可以再使用任何功能,为了预防宕机等现象发生需要进行故障转移。用户可以使用DRBD来创建一台主服务器和一台从服务器,其中一个服务器作为应用服务器,并且应该是活动的,如果出现问题,DRBD来开启另一台服务器作为备用。DRBD工具以及完成构建提供给我们的用户。

  此外,GitLab.com目前在已有的硬件上能够很好的运行,但其正以前所未有的速度在增长。扩展当前的硬件将会非常昂贵,而且并不会轻而易举完成。未来,GitLab.com将会再次托管在AWS上面,横向扩展也会变得简单。此外,亚马逊刚刚宣布了超过10TB的ESB卷,这将让迁移变得容易。