阅读更多
摘要:如果你想在任何地方免费托管私有/公共仓库,你可以选择GitLab.com。目前,已有20000人在积极使用它来托管仓库,并且一台服务器就已托管10万多个仓库。

【编者按】在单台服务器上就可以托管10万多个仓库,GitLab.com是如何做到的呢?本文翻译自《The hardware that powers 100,000 git repositories》,看GitLab.com是如何自建服务和扩展存储来满足这么多仓库的托管。


以下为译文:

 

你想在任何地方免费托管公共/私有仓库吗?可以选择GitLab.com,我们已经在上面托管过一个单例GitLab,已有将近20000人积极地使用GitLab来托管仓库,并且一台服务器就已托管10万多个仓库。

 

单一服务器

 

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

 

100K仓库需要占用好几个TB空间,所以,存储能力变得相当重要。因为我们使用的是git,所以,我们只能选择单一的文件系统,而不是对象存储(比如S3)。我们希望能够轻松地扩展存储,此外,成千上万个用户在push和pull他们的代码,这样就会给CPU带来一定的负担。因此,我们需要更多的CPU核来减轻高负载带来的压力。

 

事实证明,我们使用自己的服务器是迄今为止最具性价比的选择了。



 

目前,我们有两台独立服务器用来运行GitLab.com,其中一台是活动的主服务器,另外一台备用。服务器配置如下:

 

  • 服务器型号:HP DL180 G6 (2009年引进)
  • 处理器:2x X5690 (共24核)
  • 32GB RAM
  • 12x 2TB HDDs (其中两个用于root卷,使用RAID 1,另外10个磁盘使用RAID 10 ext4文件系统)

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

 

故障和故障转移

 

弃用AWS意味着我们不可以再使用任何AWS功能,因此,为了预防宕机等现象发生,我们需要进行故障转移。

 

我们使用DRBD来创建一台主服务器和一台从服务器,其中一个服务器作为应用服务器,并且应该是活动的,如果出现问题,我们会通知DRBD来开启另一台服务器作为备用。

 

我们的DRBD工具以及完成构建,并且提供给我们的用户

 

未来扩展

 

GitLab.com目前在已有的硬件上能够很好的运行,但其正以前所未有的速度在增长。扩展当前的硬件将会非常昂贵,而且并不会轻而易举完成。

 

未来,GitLab.com将会再次托管在AWS上面,横向扩展也会变得非常轻松。此外亚马逊刚刚宣布了超过 10TB 的 ESB 卷,这将让我们的移植变得容易。

 

来自:GitLab

  • 大小: 333.2 KB
来自: CSDN
0
0
评论 共 0 条 请登录后发表评论

发表评论

您还没有登录,请您登录后再发表评论

相关推荐

  • 单台服务器10万在线,观点|如何利用单台服务器实现10万多个Git仓库托管

    可以选择GitLab.com,我们已经在上面托管过一个单例GitLab,已有将近20000人积极地使用GitLab来托管仓库,并且一台服务器就已托管10万多个仓库。单一服务器之前,GitLab.com托管在亚马逊上,使用的是AWS上最高的配置...

  • GIT仓库基本使用操作

    GIT仓库基本使用操作 引言 Git的操作知识可以分成三层: 本地仓库的管理(本地搭建git环境,add,commit,版本管理,分支管理等) 本地仓库与远程仓库的交互(clone,push,pull,多人协同开发等) 远程仓库的管理...

  • Linux下安装操作Git远程仓库与本地仓库同步的教程

    ——————————————————————————————————————— 主机操作系统:Centos 6.7 Linux内核版本: linux-3.0 安装配置:GIT ...Git是一个开源的分布式版本控制系统,用以

  • 代码托管从业者 Git 指南

    六七年前,我机缘巧合进入了代码托管行业,做过基于 Git 支持 SVN 客户端接入、Git 代码托管平台分布式、Git 代码托管读写分离、Git 代码托管高可用等工作,所幸学到了一些知识,积累了一些经验,本次分享我的一点...

  • php代码托管平台pr,程序员必须知道的几个Git代码托管平台

    说到Git代码托管平台,首先推荐的是GitHub,好多好的开源项目都来自GitHub,但是GitHub只能新建公开的Git仓库,私有 仓库要收费,如果你做的是一个开源项目,可以首选GitHub。下面推荐几个比较好的Git代码托管平台,...

  • 搭建私有Git服务器

    搭建私有Git服务器 首先介绍Git和SVN 1.最核心的区别Git是分布式的,而Svn不是分布的。能理解这点,上手会很容易,声明一点Git并不是目前唯一的分布式版本控制系统,还有比如Mercurial等,所以说它们差不许多。...

  • 怎么git 自己建的服务器_搭建自己的 git 服务器

    如果你有一台自己的Linux云主机,在上面搭建Git服务器比想象中要简单的多。这篇文章讲解如何搭建Git服务器及使用git的hook机制(使用post-receive这个hook,在git服务器受到push请求,并且接受完代码提交时...文章...

  • 史上最简单的Git入门教程

    Git基本教程 目录 Git基本教程 1 1. 版本控制系统简介 1 1.1 何为版本控制 1 1.2 分布式VS集中式 3 2. Git初体验 6 2.1 Git诞生记 6 2.2 安装Git 7 2.3 创建Git版本库 8 3. Git本地管理 10 3.1 提交修改 ...

  • 冰河亲自整理的Git命令汇总,悄悄努力,然后惊艳所有人

    Git目前是各大互联网公司使用的...这不,最近就有很多小伙伴私信我:冰河,可以帮我整理下Git的使用命令吗?网上的太零散了,买书看又没时间。于是乎,我熬夜整理了这篇文章。这篇文章主要是汇总讲解Git的使用命令。

  • 基于git和svn的开源代码托管平台

    基于git在线代码托管平台github、gitlab、码云、Bitbucket、coding.net。和基于SVN的svnchina。

  • 码农的自我修养 - 几种Git平台对比介绍

    Git产生背景:同生活中的许多伟大事件一样,Git 诞生于一个极富纷争大举创新的年代。Linux 内核开源项目有着为数众广的参与者。绝大多数的 Linux 内核维护工作都花在了提交补丁和保存归档的繁琐事务上(1991-2002年...

  • 520,冰河亲自整理的Git命令汇总升级版,悄悄努力,然后惊艳所有人(升级版)

    这不,最近就有很多小伙伴私信我:冰河,可以帮我整理下Git的使用命令吗?网上的太零散了,买书看又没时间。我:可以啊!于是乎,我熬夜整理了这篇升级版文章。这篇文章主要是汇总讲解Git的使用命令。

  • 使用Git在GitHub上托管程序

    一、Git 是什么 Git 是 Linus Torvalds 为了帮助管理 Linux ...你在项目中实现一个新功能的时候,Git将跟踪你对每个文件所做的修改。确定代码可行后,你将提交所做的修改,而Git将记录项目最新的状态,如果你犯了...

  • Gitee使用(详细idea关联git)

    多个开发人员共同负责同一个软件或文档的开发,每个人在各自 的机器上有整个软件文档的备份,并对之实施编程开发,在分别完成各自任务之后,再通过文本比对工 具将各自机器上的不同版本的程序整合到一台机器上。...

  • git学习——服务器上的 Git

    服务器上的 Git 到目前为止,你应该已经学会了使用 Git 来完成日常的工作。然而,如果想与他人合作,还需要一个远程的 Git 仓库。尽管技术上可以从个人的仓库里推送和拉取改变,但是我们不鼓励这样做,因为一不留心...

  • Git入门到精通(大全)

    想删除一个段落,又怕将来想恢复找不回来怎么办?有办法,先把当前文件“另存为……”一个新的Word文件,再接着改,改到一定程度,再“另存为……”一个新文件,这样一直改下去,最后你的Word文档变成了这样 过了一...

  • Git使用教程

    集中式版本控制系统(如svn):版本库是集中存放在中央服务器的,而干活的时候,用的都是自己的电脑,所以要先从中央服务器取得最新的版本,然后开始干活,干完活了,再把自己的活推送给中央服务器。 集中式的缺点:...

  • 基于Unbuntu16.04 Git学习及Git服务器的搭建

    1、安装git 输入git 测试有没有安装git 输入命令:sudo apt-get install git安装 安装完成后,还需要最后一步设置,在命令行输入: $ git config --global user.name "Your Name" $ git config --...

  • git知识点总结梳理

    如果你是位图形或网页设计师,可能会需要保存某一幅图片或页面布局文件的所有修订版本(这或许是你非常渴望拥有的功能),采用版本控制系统(VCS)是个明智的选择。 有了它你就可以将选定的文件回溯到之前的状态,...

  • Git服务器分类

    服务器上的 Git 协议 本地协议 优点 缺点 SSH 协议 优点 缺点 Git 协议 优点 缺点 HTTPS 协议 优点 缺点 在服务器部署 Git 将纯目录转移到服务器 小型安装 SSH 连接 ...

Global site tag (gtag.js) - Google Analytics