gerrit和gitlab的区别(git与gitlab的区别)

Github,GitLab,Gerrit,Gerrithub的区别是什么,怎么选择

今天给各位分享gerrit和gitlab的区别的知识,其中也会对jenkins不建议docker部署进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录

  1. 如何选择正确的DevOps工具
  2. 小团队devops如何落地
  3. 为什么我们需要docker
  4. gerrit和gitlab的区别

如何选择正确的DevOps工具

没有正确和不正确与否,看公司需求。如果公司想使用全开源且公司人员技术能力允许可以选择如下:

1.用户提出需求,项目经理进行评估,并把大的项目进行拆分成小任务。如果采用敏捷开发,目前用的最多的是Jira和禅道。

2.当任务分配给开发人员后,如何进行代码版本化管理。目前使用的最多的是Git+Gitlab或者Github.

3.如何进行同事间的代码互审,主要审查的两种方式,自动和人工。目前使用最多的是gerrit+jenkins.

4.代码审核后进行产品构建,和部署。目前使用最多的是Jenkins完成持续集成和持续部署。

5.部署在哪里?目前最火的是docker+K8S.

6.部署后如何对日志收集和性能监控,用的最多的是prometheus+elk.

希望能采纳。

小团队devops如何落地

1.这个首先的看团队的人数规模了

2.确认好规模了,在的看技术架构了。架构确定好了才能确认流程。

3.不要一味的最求高大上的东西,适合自己的才是最好的。

4.基础服务先搭建好,jenkinsgit/svn,这些软件的使用和脚本的实现了。

5.和技术领导确认发布流程了,流程确认了,才能确定后续的步骤。规范的流程前期实施起来肯定需要磨合和调整的。这个就是整个团队习惯的过程了,这里就基本上完成了。

6.很多网上的资料和想法都是很完美的情况下了,对于自己情况就看个人习惯,操作习惯了。

为什么我们需要docker

没有比较就没有伤害。

先看看没有Docker时,如果需要部署一个应用系统,是如何配置环境的。

1,安装操作系统,比如Ubuntu18.4;

2,安装运行环境,比如Python3.6;

3,安装依赖库,比如Dlib;

4,复制代码,或者预先编译好的应用程序;

5,配置需要的环境变量、开放的端口,等等;

6,运行启动命令或者预先准备的脚本文件。

为了解决系统部署交付难题,Docker容器技术应运而生。

Docker是一个开源的应用容器引擎,将应用以及依赖打包到一个可移植的镜像中,然后发布到服务器上,有助于快捷高效的交付应用。

1,编写Dockerfile,将环境配置和应用依赖打包到镜像中;

2,运行dockerbuild或者使用容器镜像服务,构建Docker镜像;

3,运行dockerpull将镜像文件拉取到服务器,也可以使用云化的容器实例;

4,运行dockerexec启动容器实例,或者启动云服务器。

也就是说,以前需要手动完成的环境依赖配置,Docker将它们自动化了。

不仅如此,Dockercompose提供资源编排服务,定义和运行多个容器组成的应用系统,通过docker-compose.yml文件声明各个服务,作为一个整体来完成应用的创建和启动。

还有Swarm,是Docker官方提供的集群管理工具,将Docker节点统一管理组织,以服务为调度单元,支持动态扩容等特性,和Kubernetes(k8s)相比,更加轻量。

Docker,Compose,Swarm,就是大名鼎鼎的Docker三剑客,助力DevOps,大规模集群化,快捷高效部署应用。

gerrit和gitlab的区别

开发风格

gitlab的特点是一个人维系一个分支。

gerrit的特点是一个团队维系一个分支。(这里的分支对应一个业务需求)

权限管理

gitlab提供了比较多的选择,可以根据需要创建project,每个团队可以根据自己的需求管理自己的代码,方式更加的灵活。

gerrit比较单一,而且权限配置比较复杂,往往都是要联系管理员做出修改,每个团队很难做到对代码的个性化管理。

代码评审

gitlab是以mergerequest作为一次review,mergerequest中可能包含多个commit,如果review不通过也不需要发起另一次mergerequest。

gerrit是以commit作为一次review,由于changeId的存在,可以对一次commit反复的进行review。

如果task划分的粒度够细的话,并不会影响各个团队的review习惯。

团队协作

gitlab可以选择公开代码,团队间可以看到互相的代码,有利于团队的协作。

gerrit由于权限控制问题,只能在权限范围内公开代码。

信息共享

gitlab可以提供issues,wiki等功能方便开发者与使用者之间的沟通,并且gitlab可以无缝的与一些项目管理工具集成,比如:jira。

gerrit这个方面比较欠缺。

gitlab每个项目都有自己的wiki,很方便查看。

有关gitlab+gerrit+jenkins集成

现在比较流行的CI系统,gitlab提供代码查看功能,gerrit保存真正得代码,jenkins通过plugin发布gerrit上的代码。

这样做没有体现出gitlab的特点,而且由于gerrit的权限问题,很多代码无法放在gitlab上,gitlab沦为代码查看工具,很多功能形同虚设。

有关docker:

考虑到公司将使用docker技术,对于dockerfile存放等问题,gitlab比gerrit支持的更好(因为权限,文件查看的问题)。

有关CI:

jenkins提供了plugin,可以通过从gitlab上拉取代码直接部署(已测试成功,CA采用sshkey)。

总结

gerrit作为谷歌管理安卓项目的版本管理工具还是有其优点的,

多部门之间的权限隔离,强制review的机制都是其优点,

反观gitlab作为github的开源版,遵循了一套开源的流程,比较符合大多数人得习惯。

所以,通过比较,推荐使用gitlab作为版本管理工具,并且不与gerrit做集成。

如果你还想了解更多这方面的信息,记得收藏关注本站。


本文内容来自互联网,若需转载请注明:https://bk.66688891.com/12/101003.html