jenkins持续集成工作原理、功能、部署方式等介绍

超详细的jenkins持续集成工作原理、功能、部署方式等介绍

原创 波波说运维 2019-08-29 00:01:00

概述

今天简单整理了一下jenkins的一些概念性内容,归纳如下:


1、概念

jenkins是一个开源项目,提供了一种易于使用的持续集成系统,使开发者从繁杂的集成中解脱出来,专注于更为重要的业务逻辑实现上。同时 Jenkins 能实时监控集成中存在的错误,提供详细的日志文件和提醒功能,还能用图表的形式形象地展示项目构建的趋势和稳定性。

Jenkins可以构建一个自动化的持续集成环境可以使用它来“自动化”编译、打包、分发部署应用,它兼容ant、maven、gradle等多种第三方构建工具,同时与svn、git能无缝集成,也支持直接与知名源代码托管网站,如github、bitbucket直接集成。


2、Jenkins的功能

1. 定时拉取代码并编译

2. 静态代码分析

3. 定时打包发布测试版

4. 自定义操作,如跑单元测试等

5. 出错提醒


3、原理

这里是选择Gitlab作为git server。Gitlab的功能和Github差不多,但是是开源的,可以用来搭建私有git server,也提供非常强大的web GUI,比如开发者互相review源代码的时候就会很方便。系统的工作流程大概分为以下几步:

1> 开发者将新版本push到git server (Gitlab)。

2> Gitlab随后触发jenkins master结点进行一次build。(通过web hook或者定时检测)

3> jenkins master结点将这个build任务分配给若干个注册的slave结点中的一个,这个slave结点根据一个事先设置好的脚本进行build。这个脚本可以做的事情很多,比如编译,测试,生成测试报告等等。这些原本需要手动完成的任务都可以交给jenkins来做。

4> 我们在build中要进行编译,这里使用了分布式编译器distcc来加快编译速度。

jenkins的工作原理是先将源代码从gitlab中拷贝一份到本地,然后根据设置的脚本进行build。我们可以看出,整个系统的关键就是那个build脚本,用来告诉jenkins在一次集成中需要执行的任务。

不过我之后是用的Github作为git server。但其实差不多。


4、部署方式

1、jenkins触发式构建:

用于开发环境部署,开发人员push代码或者合并代码到gitlab项目的master分支,jenkins就部署代码到对应服务器。

2、jenkins参数化构建:

用于测试环境预上线环境部署,开发push代码或者合并代码到gitlab项目的master分支之后,并不会部署代码,而是需要登录到jenkins的web界面,点击构建按钮,传入对应的参数(比如参数需要构建的tag,需要部署的分支)然后才会部署。

3、jenkins定时构建:

用于APP自动打包,定时构建是在参数化构建的基础上添加的,开发人员可以登录jenkins手动传入tag进行打包,如果不手动打包,那么jenkins就每天凌晨从gitlab拉取最新的APP代码打包。


5、持续集成的分类

1. 持续集成:指程序员在代码的开发工程中,可以频繁的将代码部署到主干上,并进行自动化测试

2. 持续交互:指在持续集成的基础之上,将代码部署到线上测试环境

3. 持续部署:指在持续交互的基础之上,将要部署的代码实现自动部署,包括持续交互、持续部署

原文地址:https://www.cnblogs.com/flytor/p/11428453.html

时间: 2025-01-18 07:35:36

jenkins持续集成工作原理、功能、部署方式等介绍的相关文章

jenkins持续集成工作原理

转载https://www.cnblogs.com/liyuanhong/p/6548925.html 片段 这里是选择Gitlab作为git server.Gitlab的功能和Github差不多,但是是开源的,可以用来搭建私有git server,也提供非常强大的web GUI,比如开发者互相review源代码的时候就会很方便. 系统的工作流程大概分为以下几步: 1> 开发者将新版本push到git server (Gitlab). 2> Gitlab随后触发jenkins master结点

Jenkins持续集成案例之-自动化部署

Jenkins是一个开源软件项目,目的就是提供了一个开放的软件平台,让我们实现软件集成变成可能,我们经常听到企业中讲CI.CD两个名词,这些都可以跟jenkins联系在一起,实现持续集成,持续部署及持续交付: 在企业中,Jenkins一般都是批量部署多台web服务.或者应用程序.多个网站,今天带大家来学习一下Jenkins批量构建同一网站-多台服务器的操作案例: 一.Jenkins后台配置 1)点击工程名称-配置-构建后操作-设置Jenkins编译打包完后,war包存放的位置,如下图: 2)然后

12.Jenkins持续集成企业实战

阅读目录: Jenkins持续集成企业实战1.1 目前主流网站部署的流程1.2 Jenkins持续集成简介1.3 Jenkins持续集成组件1.4 Jenkins平台安装部署1.5 Jenkins相关概念1.6 Jenkins平台设置1.7 Jenkins构建JOB工程1.8 Jenkins自动化部署1.9 Jenkins插件安装1.10 Jenkins邮件配置1.11 Jenkins多实例配置1.12 Jenkins+Ansible高并发构建 Jenkins持续集成企业实战 构建企业自动化部署

Jenkins持续集成-自动化部署脚本的实现《python》

读者须知:1.本手记本着记续接前面的两张手记内容整理2.本手记针对tomcat部署测试环境实现 最近工作比较繁忙,导致这章一直拖延,没有太抽出时间来总结.要实现Jenkins端的持续集成,其实在CI服务配置端很容易,难点呢?就是如何实现自动化的部署.我的脚本设计就是为了解决以下难题: 难点一.如何使得自动化部署脚本更通用 我用的脚本,依赖依赖一个配置文件的模块化,让每一个应用业务模块更加通用.自动化所执行的命令呢?我也是设计想法本着更加通用平台的原则,至少对于tomcat+java or jav

jenkins持续集成--看我如何从1到代码自动部署

jenkins持续集成看我如何从1到代码自动化部署 背景 近期由于工作原因需要学习jenkins持续化集成.对于一个好学又帅气的我来说.学习他还不是手到擒来.公司为一个中小型创业公司,在部署代码上面,很少用gitlab.jenkins等等,也没有清晰的生产环境-测试环境-线上环境之分.唯一有的就是写完代码-登陆服务关闭服务,上传代码-开启服务.这样往往会到来很多问题,同时也会给程序员带来很多繁琐的工作.这不,公司内部整顿,需要一套清晰的流程,而且为了减轻程序员的负担,于是就希望采用gitlab+

Linux-GitLab+Jenkins持续集成+自动化部署

GitLab+Jenkins持续集成+自动化部署 什么是持续集成? (1)Continuous integration (CI) 持续集成是一种软件开发实践,即团队开发成员经常集成他们的工作,通常每个成员至少集成一次,也就意味着每天可能会发生多次集成.每次集成都通过自动化的构建(包括编译.发布.自动化测试)来验证,从而尽快地发现集成错误.许多团队发现这个过程可以大大减少集成的问题,让团队能够更快的开发内聚的软件. (2)没有持续集成 项目做模块集成的时候,发现很多接口都不通==>浪费大量时间 需

Jenkins持续集成学习及企业级应用

文档声明 该文档主体为去年末自主学习时总结,旨在为我司提供一套企业级持续集成解决方案.这篇文章现在看上去很稚嫩,但是当时花费了许多心血.希望将当时的学习心得拿出来与大家交流.该文档主要说明了jenkins持续集成部署的相关步骤,并着重实现了权限分组,邮件配置,插件配置的jenkins实现过程.对出现的问题进行解决,是一套持续集成的解决方案. 持续集成Continuous integration 提出 针对复杂度高的项目提出“早集成,常集成,频繁集成”来帮助项目在早期发现项目风险和质量问题 作用

Jenkins 持续集成使用教程

Jenkins 持续集成使用教程 用 jenkins 有什么好处 通过规范化来完成,简单,繁琐,浪费时间的重复工作 规范化工作,以免出现低级错误 实现随时随地任何人一键构建 ...... 安装 jenkins 以 Mac 设备为例(Windows 步骤类似),帮你一步一步搭建好 jenkins.jenkins 属于 java 项目 依赖于 java,需要先安装 java jdk,具体安装方式请自行百度. 安装 jenkins 有常用的三种方式. 使用 pgk 安装包安装 在 官网 下载 pgk

一个Web 持续集成工作实践

一个web的持续基础实践: https://mp.weixin.qq.com/src=3&timestamp=1494325174&ver=1&signature=wFVC0E6YlKsNsCYnhs8XlMdRTmtwBU8qMW4YCsNoryvcIAGD8hPCnOCaXb5WisyGrmEOVUJVd1n2FRjV3ohyUWuTDUGMGhkDPXAlvd6t0RtNSivqrMRgof1KJcnZrAvzTYkjURSzDPjk8wR5vq8ASUOarm9mFlUad