前文

  现在绝大多数公司的代码管理系统都是基于gitlab搭建的,即使是svn的,相信将来也会迁往gitlab,所以了解和掌握gitlab对开发者是非常重要的。比如git和gitlab、github的关系是什么,gitlab如何搭建,gitlab提供了什么功能,gitlab如何升级等等。
  本文通过简单的介绍,帮大家了解gitlab。

GitLab的历史和与GitHub的区别

  首先我们看下三者的wiki介绍:

  git由linux(林纳斯)于2005年创造,目的是为了管理linux源码;github则是由GitHub公司(曾称Logical Awesome)的开发者Chris Wanstrath、P. J. Hyett和汤姆·普雷斯顿·沃纳于2008年正式上线;GitLab 由乌克兰程序员 Dmitriy Zaporozhets 和 Valery Sizov 开发,在2013年7月推出了社区版和企业版,正式上线日期wiki没查到,姑且按2013年来算。
  所以GitLab和GitHub的区别和共同点是非常明显的:

  1. 都是基于Git进行版本控制的软件源代码托管服务平台,不过前者多数服务于公司内部,后者则服务于外部开源项目,当然也有公司通过购买GitHub私人镜像来控制版本仓库。
  2. 二者都是基于ruby on rails编写的
  3. GitLab除了代码管理功能外,还提供了CICD、gitlab-runner的概念,帮助用户更方便地集成DevOps

  这里不得不提一句,大佬就是大佬,想要管理linux源码,就写了个Git,从而后续才诞生了基于Git管理的平台。另外GitLab和GitHub都是基于ruby on rails的框架来编写的,好奇之下,我也去研究了下ruby语法和这个框架,挺牛批的,动态语言发挥了淋漓尽致,有兴趣的都可以去了解和学习下。

GitLab的搭建

  关于GitLab的搭建,网上的文章太多了,而且都是前篇一律,不得不说转载的真的好多,我不知道转载的意义在哪,收藏不好吗?偏要来个转载,搜个问题,全部都是一样的回答,搞得越来越不想用中文搜问题。
  所以这里关于搭建不会说太多,就简单地聊一聊,讲道理官网搭建真的很方便,而且现在用docker搭建的话,下个官网推介的模板docker-compose.yml,然后docker-compose up -d,恭喜你,简单地就搭建成功了,不过要注意的是最好服务器要至少1核2G配置,不然基本跑步起来。想搜索安装文档的话,直接搜:GitLab install doc,第一条就是。还是附上链接:https://docs.gitlab.com/omnibus/docker/
在这里插入图片描述
  但是为什么要聊搭建呢?因为GitLab的搭建方式一共有三种,我们知道2013年GitLab划分了社区版和企业版,对应的docker镜像名是gitlab-ee和gitlab-ce(社区版),如果观察上面的截图,就知道我这边贴出的是企业版,但实际上社区版就完全够用了,按官方说的用户数量小于2000人,基于社区版的负载都是完全没问题,所以对于绝大多数公司,简单地搭个社区版就行。因为企业版是在太贵了,如下图,企业版分为Premium和Ultimate,二者的价格分别是19美金/每人/每月,如果你的用户有1w人,选Premium这个相对便宜的也要130w人民币每月!官网:https://about.gitlab.com/pricing/
在这里插入图片描述
  所以两种搭建方式分别是gitlab-ce和gitlab-ee,要注意看清镜像的名字;那这里强烈推介第三种搭建方式,第三种是第三方的镜像,是基于gitlab官方代码而改动编写的,这个镜像的好处是把很多参数都通过镜像的环境变量分离出来了,用户可以随意的修改适配自己的参数;另外就是把redis和pg剥离出来了,当服务器的负载变高的时候,那就完全可以将redis和pg剥离到其他服务器,这也能很好地降低负载,而原生的官方镜像则不行。
  镜像地址:https://github.com/sameersbn/docker-gitlab,这篇GitHub的README写的非常的详细,根据其上的安装来安装即可。我比较推介这个方式,因为这个人的更新和GitLab的更新基本相差就几天。所以都能找到相关的说明。

GitLab的升级特性

  不得不说GitLab的团队是非常勤奋,GitLab从推出就保持一年一次大升级的动作,时间定在每年的5/22,目前最新的是13.9版本,而今年的5/22就即将推出了14版本!
  但作为企业来说,是不愿意过于频繁的更新这种内部系统,特别版本管理还是公司的重中之重;所以很容易看到官方已经支持13了,很多公司还用的是8~10的版本。不过给力的是,GitLab的发布真的有一些特性非常好用,比如11版本大幅度提升了runner的特性和CICD的特性,12.10则直接将后台的UNICORN框架替换成了PUMA,官方是说内存的管理上提升了40%,同时12版本也集成了sidekiq集群,能更加高效快速地提升队列的处理能力。
  所以对于GitLab的升级真的是又爱又恨,关于升级官方也给了专门的升级列表,同时网上也有相关的教程,重点就是每个大版本都要升到最末尾才能接着升下个大版本。比如10.1要升到13,那你就要10.1->10尾->11初->11尾->12初->12尾->13初,基本就是这样。详细可参考:

总结

  这次就介绍到这了,关于GitLab还有很多可以说的,这个后续有空再说。比如gitlab-runner的功能特性,GitLab的架构等等。

Logo

瓜分20万奖金 获得内推名额 丰厚实物奖励 易参与易上手

更多推荐