当前位置:   article > 正文

什么是devops,基于Gitlab从零开始搭建自己的持续集成流水线(Pipeline)_gitlab auto devops

gitlab auto devops

一、gitlab 实现的 auto devops

1. DevOps中的一些概念与原则

(1) 什么是持续集成

持续集成(Continuous integration,简称CI)指的是,频繁地(一天多次)将代码集成到主干。

它的好处主要有两个。

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

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

(2) 持续交付、持续部署的概念

持续交付(Continuous delivery)指的是,频繁地将软件的新版本,交付给质量团队或者用户,以供评审。如果评审通过,代码就进入生产阶段。

持续部署(continuous deployment)是持续交付的下一步,指的是代码通过评审以后,自动部署到生产环境。

(3) 持续集成系统的组成

  • 一个自动构建过程,包括自动编译、分发、部署和测试等。
  • 一个代码存储库,即需要版本控制软件来保障代码的可维护性,同时作为构建过程的素材库。
  • 一个持续集成服务器。

(4) 为什么要引入auto devops

  1. 部署的环境问题 ;

  2. Dev, QA, Ops的进度问题 ;

  3. 持续集成的好处 :

    • 编译问题与Bug可以在push或合并之后第一时间发现并解决;

    • Devops使持续交付成为可能,使产品随时可交。过去公司做测试可能需要十几、二十几个组件,集成一次往往要一两个小时,费力费时,而且复杂容易出错,而一旦配置出错的话耗时会更久。因此,一次集成测试一周才会做一次,测出Bug要到下一周才能更新,再做测试,这个周期会非常漫长。而持续集成的意义就在于减少风险,和重复的过程,最终提高工作效率。

  4. 关于devops的其他一些介绍 http://www.gzhphb.com/article/20/201544.html

2. GitLab CI中的一些概念

(1) Pipeline

  • 一次 Pipeline 其实相当于一次构建任务,里面可以包含多个流程,比如自动构建、自动进行单元测试、自动进行代码检查等流程 ;
  • 任何提交或者 Merge Request 的合并都可以触发 Pipeline ;

(2) stages

  • stages 表示构建阶段,就是上面提到的流程 ;
  • 可以在一次 Pipeline 中定义多个 stage ;
  • stages有如下特点 :
    • 所有 stages 会按照顺序运行,即当一个 stage 完成后,下一个 stage 才会开始
    • 只有当所有 stages 成功完成后,该构建任务 (Pipeline) 才算成功
    • 如果任何一个 stage 失败,那么后面的 stages 不会执行,该构建任务 (Pipeline) 失败

(3) jobs

  • job表示构建工作,表示某个stage里面执行的工作 ;
  • 一个stage里面可以定义多个job ;
  • jobs有如下特点 :
    • 相同 stage 中的jobs 会并行执行
    • 相同 stage 中的 jobs 都执行成功时,该 stage 才会成功
    • 如果任何一个job 失败,那么该 stage 失败,即该构建任务 (Pipeline) 失败

(4) gitlab runner

  • 执行构建任务的一个服务 ;
  • 把构建任务放到runner里面而不是在CI里面做是不想把”构建”这个重任(通常较大的工程构建都比较小号资源) 放到gitlab上而影响gitlab性能。通过把gitlab runner安装到不同机器上,让这台单独的机器来执行构建任务
  • 关于 gitlab server 与 gitlab runner 之间的关系以及信息交互可以通过下面这个链接看到 :
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/不正经/article/detail/88026
推荐阅读
相关标签
  

闽ICP备14008679号