【DevOps】持续集成的流程及jenkins的介绍

大家好,我是高胜寒,一个在教培行业不忘初心的人,本文是【循序渐进学运维】DevOps工具篇的第3篇文章-【DevOps】持续集成的流程及jenkins的介绍

【循序渐进学运维】DevOps工具篇 主要针对的是DevOps常用的工具,比如jenkins,gitlab, docker等工具的结合使用。

前言

持续集成,一定要有一个持续集成服务器的参与,而jenkins就是搭建持续集成服务器,能够完成自动化构建的一款非常好的软件。

所以我们今天来探讨下jenkins这款软件的相关内容

jenkins的概念

jenkins官网: https://www.jenkins.io/

Jenkins是一个开源的、可扩展的持续集成、交付、部署(软件/代码的编译、打包、部署)的基于web界面的平台。允许持续集成和持续交付项目,无论用的是什么平台,可以处理任何类型的构建或持续集成。

jenkins 是用java开发的,一款开源的自动化服务器,我们只需要通过界面或者jenkinsfile告诉jenkins,执行什么任务,什么时间执行,就可以

官方文档:https://jenkins.io/doc/

持续集成: CI
持续部署: CD

在这里插入图片描述

什么是DevOps

高胜寒搜了很多答案,只有维基百科的答案比较贴切。

维基百科给出了定义:

DevOps 是一种重视软件开发人员(Dev)和运维人员(Ops)之间沟通合作的文化,运动和惯例。 通过自动化软件交付和架构变更的流程,使的构建,测试,发布软件能够更快,频繁和可信

其实维基百科的定义也不是很全面,但正是因为devops的定义没有标准,所以devops到底是什么,这些年来吵得不可开交。 不过所有的定义都透漏出一个信息,那就是能够更快,更好的交付软件。

很多大佬在谈及DevOps的时候都会说到jenkins,接下来我们看看jenkins的一些特性。

jenkins特性

  1. 开源的java语言开发持续集成工具,支持CI,CD;

  2. 易于安装部署配置:可通过yum安装,或下载war包以及通过docker容器等快速实现安装部署,可方便web界面配置管理;

  3. 消息通知及测试报告:集成RSS/E-mail通过RSS发布构建结果或当构建完成时通过e-mail通知,生成JUnit/TestNG测试报告;

  4. 分布式构建:支持Jenkins能够让多台计算机一起构建/测试;

  5. 文件识别:Jenkins能够跟踪哪次构建生成哪些jar,哪次构建使用哪个版本的jar等;

  6. 丰富的插件支持:支持扩展插件,你可以开发适合自己团队使用的工具,如git,svn,maven,docker等。

持续集成的流程

在这里插入图片描述

  1. 开发人员每天提交代码提交到gitlab代码仓库;
  2. jenkins使用git工具到gitlab里面去拉取代码到集成服务器(jenkins),在配合JDK,maven等软件完成代码的编译,代码测试与审查,测试,打包等工作,如果在执行的过程中出错,将重新执行整个流程
  3. jenkins把生成的jar包或者war包分发到测试服务器或者生产服务器,用户就可以从网站访问应用

在上述jenkins的整个流程中,其实还有一些地方需要考虑,我们会在后面的文章中着重介绍。
比如:

  • gitlab如何知道自己代码更新
  • jenkins如何知道gitlab代码更新了
  • enkins依靠什么插件进行拉取
  • jenkins依靠什么插件进行部署操作

部署和发布的区别:

部署: 把软件部署在远程的服务器上,但是用户还不能访问
发布: 用户已经可以访问

比如一个软件新增了一些功能,只有当用户看到了新功能的时候才交发布成功,单纯部署在服务器上叫部署。

总结

本文【DevOps】持续集成的流程及jenkins的介绍中我们主要探讨了持续集成的流程,也是代码或者软件发布的流程, 这整个的流程中,我们会用到jenkins和gitlab,所以下一次,我们着重来讨论jenkins和gitlab的使用。

我是高胜寒,一个在教培行业不忘初心的人,欢迎点赞收藏,我们下篇文章见。