一、持续集成(CI)
持续集成(Continuous integration,简称CI)指的是频繁的(一天多次)将代码集成到主干。将软件个人研发的部分向软件整体部分交付,频繁进行集成以便更快的发现其中的错误。
它的好处主要有两个:
1)快速的发现错误。每完成一点更新就集成到主干,可以快速发现错误,定位错误也比较容易。
2)防止分支大幅偏离主干。如果不是经常集成,主干又在不断更新,会导致以后集成的难度
变大,甚至难以集成。
持续集成并不能消除Bug,而是让它们非常容易的发现和改正。持续集成的目的,就是让产品可以快速迭代,同时还能保持高质量。它的核心措施就是代码集成到主干之前,必须通过自动化测试。只要有一个测试用例失败,就不能集成。
二、持续交付
持续交付(Continuous delivery,简称CD)指的是,频繁的将软件的新版本交付给质量团队或者用户,以供评审,代码就进入生产阶段。持续交付在持续集成的基础上,将集成后的代码部署到更贴近真实运行环境的类生产环境(production-like environments)中。持续交付优先于整个产品的生命周期的软件部署,建立在高水平自动化持续集成之上。
持续交付可以看做是持续集成的下一步。它强调的是,不管怎么更新,软件是随时随地的都可以交付。
三、持续部署
持续部署(continuous deployment)是持续交付的下一步,指的是代码通过评审以后,自动部署到生成环境。持续部署的目标是,代码在任何时刻都是可部署的,可以进入生成阶段。持续部署的前提是能自动化完成测试、构建、部署等步骤。
总的来说,持续集成、持续交付、持续部署提供了一个优秀的DevOps环境。对于整个开发团队来说,能很大的提升开发效率,好处与挑战并行。无论如何,频繁部署、快速交付以及开发测试流程自动化都将成为未来软件工程的重要组成部分。
四、Jenkins的介绍与部署
1)Jenkins介绍:
Jenkins是一个开源的、可扩展的持续集成、交付、部署(软件/代码的编译、打包、部署)的基于Web界面的平台。允许持续集成和持续交付项目,无论用什么平台,可以处理任何类型的构建或持续集成。
Jenkins的特性:
1、开源的java语言开发开发持续集成工具,支持CI/CD;
2、易于安装部署配置:可通过yum安装,或下载tar包以及通过docker容器等快速实现安装
部署,可方便Web界面配置管理;
3、消息通知及测试报告:集成RSS/E-mail通过RSS发布构建结果或当构建完成时通过e-mail
通知,生成JUnit/TestNG测试报告;
4、分布式构建:支持Jenkins能够让多台计算机一起构建/测试;
5、文件识别:Jenkins能够跟踪哪次构建生成哪些jar,哪次构建使用哪个版本的jar等;
6、丰富的插件支持:支持扩展插件,你可以开发适合自己团队使用的工具,如git,svn
,maven,docker等。
2)安装部署Jenkins
# yum install -y java-1.8.0-openjdk #安装openjdk,jenkins基于java开发
# wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat/jenkins.repo #wget -O 下载文件并以指定的文件名保存
# cat /etc/yum.repos.d/jenkins.repo
[jenkins]
name=Jenkins
baseurl=http://pkg.jenkins.io/redhat
gpgcheck=1 #为1时会检测key
# rpm --import https://pkg.jenkins.io/redhat/jenkins.io.key #安装jenkins key
# yum install -y jenkins
# systemctl start jenkins
# [root@docker ~]# ps -ef | grep "jenkins"
jenkins 98548 1 81 17:33 ? 00:01:10 /etc/alternatives/java -Dcom.sun.akuma.Daemon=daemonized -Djava.awt.headless=true -DJENKINS_HOME=/var/lib/jenkins -jar /usr/lib/jenkins/jenkins.war --logfile=/var/log/jenkins/jenkins.log --webroot=/var/cache/jenkins/war --daemon --httpPort=8080 --debug=5 --handlerCountMax=100 --handlerCountMaxIdle=20
root 99551 7116 0 17:35 pts/1 00:00:00 grep --color=auto jenkins
Jenkins的安装配置文件介绍:
/etc/init.d/jenkins #jenkins的启动文件
/etc/logrotate.d/jenkins
/etc/sysconfig/jenkins #jenkins的配置文件(可以写改默认端口)
/usr/lib/jenkins
/usr/lib/jenkins/jenkins.war #jenkins的程序war包
/usr/sbin/rcjenkins #jenkins的为二进制文件
/var/cache/jenkins #jenkins的程序文件,运行程序解压出来的
/var/lib/jenkins #jenkins的主目录
/var/log/jenkins #jenkins的日志文件
3)配置Jenkins
在浏览器中输入IP:8080端口访问
# 获取Jenkins的配置密码
[root@docker ~]# cat /var/lib/jenkins/secrets/initialAdminPassword
7ecae4ee7a53499d9315a538316278ae
# 把密码串粘贴在web页面上