【DevOps】持续集成

【DevOps】持续集成文章目录什么是集成什么是持续集成持续集成的六个步骤 1 提交 2 测试 第一轮 3 构建 4 测试 第二轮测试 5 部署持续集成的组成要素持续集成有什么好处总结大家好 我是高胜寒 一个在教培行业不忘初心的人 本文是 循序渐进学运维 DevOps 工具篇的第 2 篇文章 循序渐进学运维 DevOps 工具篇主要针对的是 DevOps 常用的工具 比如 jenkins gitlab docker 等工具的结合使用 什么是集成开发人员写代码 代码写完后直接给客户吗 显然不是 客户需要的是软件而不是一堆代

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

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

什么是集成

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

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

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

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

什么是持续集成

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

持续集成的六个步骤:

在这里插入图片描述
代码从提交到部署到生产环境,一共经历了六个步骤:

  1. 提交
  2. 测试(第一轮)
  3. 构建
  4. 测试(第二轮测试)
  5. 部署
  6. 回滚
1. 提交

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

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

2. 测试(第一轮)

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

3. 构建
4. 测试(第二轮测试)

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

5. 部署

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

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

持续集成的组成要素

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

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

持续集成有什么好处

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

总结

本文主要讲述了

  1. 什么是集成
  2. 什么是持续集成
  3. 持续集成的步骤
  4. 持续集成的优势

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

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/209767.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月19日 上午8:28
下一篇 2026年3月19日 上午8:28


相关推荐

  • 多重比较法-LSD[通俗易懂]

    多重比较法-LSD[通俗易懂]总第174篇/张俊红前面我们讲了方差分析,方差分析主要是用于多组均值比较的,方差分析的结果是多组均值之间是否有显著性差异,但是这个显著性差异是整体的显著性差异,可是我们并…

    2022年4月28日
    70
  • 程序包org.codehaus.jettison.json 不存在

    程序包org.codehaus.jettison.json 不存在描述 本地 maven 库有 jettison 包但是没有引到工程中项目不报错但是在打 jar 包的时候报错解决办法 查看 pom 文件有没有引用 jettison 我的是没有在 pom 文件加上 lt dependency gt lt groupId gt org codehaus jettison lt groupId gt lt artifactId gt

    2026年3月17日
    2
  • BERT中的词向量指南,非常的全面,非常的干货[通俗易懂]

    BERT中的词向量指南,非常的全面,非常的干货[通俗易懂]点击上方“AI公园”,关注公众号,选择加“星标“或“置顶”作者:ChrisMcCormick编译:ronghuaiyang导读在本文中,我将深入研究谷歌的BERT生成的…

    2022年6月10日
    37
  • GTEST学习总结

    GTEST学习总结目录1.编译及学习资料1.1编译gtest1.2学习文档及资料2.gtest总结2.1gtest中的术语2.2断言2.2.1基本断言2.2.2BinaryComparison2.2.3Stringcomparison2.3创建测试用例2.4TestFixtures2.5更多断言方法2.6异常断言2.7自定义输出语句2.8…

    2026年4月18日
    5
  • docker 上传本地镜像_docker本地仓库

    docker 上传本地镜像_docker本地仓库前言之前通过docker搭建过jenkins+python3环境,如果想要在不同的机器上搭建一样的环境,就可以将之前搭建的镜像上传到镜像仓库,这样方便在不同的机器上快速搭建同一套环境。如果公开的话

    2022年7月31日
    20
  • Java中ldc与lconst区别_写Java不懂Java系列之加载和存储

    Java中ldc与lconst区别_写Java不懂Java系列之加载和存储很多 Java 工程师语法用的很 666 但是真的让他说说 Java 是怎样编译运行的 我相信他会懵逼 希望处于这个阶段的同学可以仔细阅 Class 文件系列的文章 这里涵盖了 Class 文件的绝大部分内容 当你阅读并理解之后 相信你不再迷茫 不知道是否还记得 Code 属性 不记得的小伙伴建议回顾一下 Code 属性中存储了今天我们将要讲解的字节码指令 今天介绍一下字节码指令 加载和存储指令 所谓的字

    2026年3月26日
    1

发表回复

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

关注全栈程序员社区公众号