首页
运维教程
Linux基础
系统服务
系统架构
数据库
shell脚本
虚拟化
大数据
DevOps
企业案例
运维开发
python
go语言
运维安全
行业资讯
网络基础
系统安全
运维面试
学习路线
学习方法
面试题库
职场解惑
软件
运维软件
办公软件
书籍资源
技术陪跑营
重要信息
首页 运维教程DevOps【DevOps】持续集成

【DevOps】持续集成

文章目录

什么是集成
什么是持续集成
持续集成的六个步骤:
1. 提交
2. 测试(第一轮)
3. 构建
4. 测试(第二轮测试)
5. 部署
持续集成的组成要素
持续集成有什么好处
总结

大家好,我是高胜寒,一个在教培行业不忘初心的人,本文是【循序渐进学运维】DevOps工具篇的第2篇文章

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

什么是集成

开发人员写代码,代码写完后直接给客户吗? 显然不是,客户需要的是软件而不是一堆代码,而一个软件不是一个开发完成的,是一个团队的开发完成的,这么多人的代码不可能自己组合一起, 所以当我们想把每个程序员写好的代码组合在一起,这个过程就叫做集成。

一个学员在做项目,他们的工作流程是,先开发一个月,一个月后,在召集团队里的精英来做集成,把最基本的流程跑通,通常需要花3-4天时间,如果改动量比较大,可能需要一两周时间。

既然一个月之后再集成,那为什么不把时间弄短点,比如一周集成一次。每天集成一次。时间越短,代码量越少,需要改动的也少,集成的难度会降低。
那如果在降低呢,比如2小时,半小时,有人尝试着让开发和集成同时进行,最终诞生了持续集成的想法。

持续集成的想法很好,但总不能有人提交了代码,就有个负责人去集成把,这种工作中肯定是行不通的,所以就有人编写了脚本,定期去源码服务器拉取代码,出现程序更新时,就自动完成构建。

这个脚本也慢慢发展,变成了工具,能够适用于大部分的开发语言。

什么是持续集成

持续集成(CI), 指的是,频繁的(一天多次)将代码集成到主干。
持续进程的目的,就是让产品可以快速迭代,同时还能保证高质量。它的核心措施是,代码集成到主干之前,必须通过自动化测试,只要有一个测试用例失败,就不能集成。

通过持续集成,一个开发团队可以快速的从一个功能到另一个功能,而我们之前提到的敏捷开发,很大一部分就是归功于持续集成。

持续集成的六个步骤:

在这里插入图片描述
代码从提交到部署到生产环境,一共经历了六个步骤:
1. 提交
2. 测试(第一轮)
3. 构建
4. 测试(第二轮测试)
5. 部署
6. 回滚

1. 提交

流程的第一步,主要是开发者向代码仓库提交代码,代码仓库或者叫代码托管平台,目前常见的有 github, gitlab, bitbucket,开源中国代码托管,coding.net,CSDN代码托管,京东代码托管

我们在公司里一般是搭建自己的gitlab,来进行代码管理。自己搭建在公司内部服务器,更加安全。当然 在github上用户也可以创建私有项目, 还要一些小公司会放在阿里云code代码托管平台上。

有个学员的公司,因为疫情在家办公,他刚入职,公司给发了VPN账号,可以登陆公司的SVN服务器,也可以把公司的代码资料都下载下来,刚要跟公司说这样不安全。
直到代码下载下来,看到代码后豁然开朗,这给别人,别人都不要,所以绝对安全。

2. 测试(第一轮)

代码仓库对commit操作配置了钩子(hook),只要提交代码或者合并到主干,就会跑自动化测试。

3. 构建

通过第一轮测试,代码就可以合并到主干,后面就可以进行交付了。
交付后,先进性构建(bulid),然后进入第二轮测试。所谓的构建,就是将源代码转换为事件的代码,比如安装依赖,配置资源(js脚本,图片)等等

4. 测试(第二轮测试)

构建完成进行第二轮测试,在第一轮中测试过的内容可以不用测试。也可以把构建放在最前面,把两次测试合并。

5. 部署

当第二轮测试结束,没有问题之后,当前的代码就 可以直接部署了,将当前版本的所有文件打包存档。 打包直接用tar打包即可, 然后发送到生产服务器。

  1. 回滚
    部署完成之后,进行在线访问测试,一旦发现当前版本有问题,就要回滚到上一个版本的构建结果, 可以使用我们之前学习过的符号链接,ln 来指向上一个版本。

持续集成的组成要素

  • 一个自动化构建过程,从检出代码,编译构建,运行测试,结果记录,测试统计等都是自动化完成的,无需人工干预
  • 在公司里,代码存储库,一般使用svn或者git。
  • 一个持续集成服务器,在公司我们用的最多的是jenkins。jenkins的配置和使用方法都很简单。

集成一定是集成团队的代码,而不是一个人的代码。

持续集成有什么好处

  • 快速返现错误,没完成一点就进行更新,集成到主干,可以很容易的发现和定位错误
  • 减少重复性的工作
  • 防止分支偏离主干,如果不做经常性的集成,主干一直在更新,会导致以后的集成难度变大。

总结

本文主要讲述了
1. 什么是集成
2. 什么是持续集成
3. 持续集成的步骤
4. 持续集成的优势

我是高胜寒,一个在教培行业不忘初心的人,下一篇文章,我们再见!

本文链接:http://www.geekyunwei.com/1232.html

网友评论comments

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注

暂无评论

Copyright © 2021 极客运维 公众号《极客运维之家》
扫二维码
扫二维码
返回顶部