layout: post
title: Jenkins、gitlib、sonar简介
date: 2018-04-29
tags: [“jenkins”,”自动化运维工具”]


一、CI/CD概念

1、什么是持续集成:

持续集成是指开发者在代码的开发过程中,可以频繁的将代码部署集成到主干,并进行自动化测试。

2、什么是持续交付:

持续交付是指在持续集成的环境基础之上,将代码部署到预生产环境

3、什么是持续部署:

在持续交付的基础上,把部署到生产环境的过程自动化,持续部署和持续交付的区别就是最终部署到生产环境是自动化的。

二、版本控制系统介绍

1、CVS早期的集中式版本控制系统

2、SVN集中式版本控制系统

集中式管理,依赖于网络,一台服务器集中管理,目前依然有不少公司使用。

任何的提交和回滚都依赖于连接服务器,SVN服务器是单点。

3、gitlib—分布式版本控制系统

分布式版本控制系统,不依赖于服务器,离线依然可以工作;目前广泛使用,逐渐替代SVN。

Git在每个用户都有一个完整的服务器,然后在有一个中央服务器,用户可以先将代码提交到本地,如果没有网络也可以先提交到本地,然后在有挽留过时提交到中央服务器,这样就大大方便了开发者,而相比CVS和SVN都是集中式的版本控制系统,工作的时候需要先从中央服务器获取最新代码,改完之后需要提交,如果是一个比较大的文件则需要足够快的网络才能够快速提交完成,而使用分布式的版本控制系统,每个用户都是一个完整的版本库,即使没有中央服务器也可以提交代码或者回滚,最终再把改好的代码提交至中央服务器进行合并即可。

三、Jenkins介绍

Jenkins是一款java开发的开源自动化服务器,可用于自动执行与构建、测试、交付和部署软件有关的各种任务。

Jenkins可以通过操作系统的二进制包安装,也可以通过docker来安装,甚至可以独自跑在一台机器上,但是其需要一个JRE运行环境。

四、Sonarqube、Sonar-scan介绍

SonarQube是一个开源代码质量管理系统。其可以快速的定位代码中潜在的或者明显的错误。

Sonar-scan是SonarQube的一个插件,其可以实现扫描代码的功能,并将扫描的报告保存到数据库的那个中,SonarQube通过数据库来读取扫描的数据结果。

文档更新时间: 2018-12-20 16:37   作者:张尚