简单了解CI/CD

释放双眼,带上耳机,听听看~!

DevOps是什么?

DevOps即Development和Operations的组合词,是开发和运维的缩写,但他并不是让开发来做运维,更不是让运维去写代码。
DevOps是一组最佳实践强调(IT研发、运维、测试)在应用和服务生命周期中的协作和沟通,强调整个组织的合作以及交付和基础设施变更的自动化,从而实现持续集成、持续部署和持续交付。

持续集成的概念

Jenkins官网:https://jenkins.io/zh/
Jenkins官方文档:https://jenkins.io/zh/doc/
Jenkins是一个开源软件项目, 可扩展的持续集成、持续交付、持续部署的基于Web界面的平台,使软件的持续集成变成可能,Jenkins是基于JAVA开发的一种持续集成工具,用于监控持续重复的功能,功能包括:
1)持续集成(Continuous Integration)简称CI
2)持续交付(Continuous Delivery)
3)持续部署(Continuous Deployment)简称CD

持续集成CI

持续集成是指开发者在代码开发过程中,可以频繁(一天多次)的将代码部署集成到主干,并进行自动化测试。频繁的集成到主干以便更快地发现其中的错误。

持续集成的优点如下:

  • 快速发现错误,每完成一点更新,就集成到主干,可以快速发现错误,定位错误也比较容易
  • 防止分支大幅偏离主干,如果不是经常集成,主干又在不断更新,会导致以后集成的难度变大,甚至难以集成

持续集成并不能消除Bug,而是让它们非常容易发现和改正。持续集成的目的,就是让产品可以快速迭代,同时还能保持高质量。它的核心措施是,代码集成到主干之前,必须通过自动化测试。只要有一个测试用例失败,就不能集成。

持续交付

持续交付(Continuous delivery)指的是频繁地将软件的新版本,交付给质量团队或用户,以供评审,如果评审通过,代码就进入生产阶段。
持续交付在持续集成的基础之上,将集成后的代码部署到更贴近真实环境的(类生产环境或预生产环境)中,持续交付优先将整个产品的生命周期所使用的软件部署,建立在高水平自动化持续集成之上。
可以看出持续交付是持续集成的下一步,它强调的是,不管怎么更新,软件都是可以随时交付

持续部署CD

持续部署(Continuous deployment)是持续交付的下一步,指代码通过评审之后,将代码自动部署到生产环境。
持续部署的目标是:代码只要评审通过,在任何时候都是可以部署的,进入生产阶段;持续部署的前提是能自动完成测试、构建、部署等步骤

Jenkins部署

以下讲解Jenkins的yum部署方式,更多部署方式请参考;https://abcops.cn/jenkins-deployment/

Jenkins基于JDK环境
[root@abcops_node1 ~]# yum install java-1.8.0-openjdk.x86_64 java-1.8.0-openjdk-devel -y

下载Jenkins镜像源
[root@abcops_node1 src]# wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo

导入Jenkins key
[root@abcops_node1 src]# rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key

执行yum安装,如果提示没有jenkis安装包,就yum makecache生成下缓存
[root@abcops_node1 src]# yum install jenkis
[root@abcops_node1 /]# rpm -ql jenkins
/etc/init.d/jenkins             #启动脚本
/etc/logrotate.d/jenkins
/etc/sysconfig/jenkins          #Jenkins主配置文件
/usr/lib/jenkins
/usr/lib/jenkins/jenkins.war
/usr/sbin/rcjenkins
/var/cache/jenkins              #程序文件目录
/var/lib/jenkins                  
/var/log/jenkins                #Jenkis日志文件

启动Jenkins

[root@abcops_node1 /]# systemctl start jenkins
[root@abcops_node1 /]# ss -anplt | grep java
LISTEN     0      50          :::8080                    :::*                   users:(("java",pid=19353,fd=165))

以上内容参考自以下两条链接:
https://blog.csdn.net/miss1181248983/article/details/82840006
https://blog.51cto.com/wzlinux/2055030

人已赞赏
0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
有新消息 消息中心
搜索