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

一、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 之间的关系以及信息交互可以通过下面这个链接看到 :
  • 12
    点赞
  • 73
    收藏
    觉得还不错? 一键收藏
  • 17
    评论
DevOps流水线搭建是指利用各种自动化工具和技术来实现软件开发、测试和部署的流程自动化。它通过将开发、测试和运维团队的工作流程整合在一起,实现快速、高质量的软件交付。 开发团队通常会使用版本控制系统(如Git)来管理代码,并在团队成员间进行协作。在DevOps流水线中,代码提交至版本控制系统后,自动触发流水线的执行。 流水线一般由以下几个主要阶段组成:构建、测试、部署和监控。在构建阶段,使用构建工具(如Maven)将代码编译为可执行的软件包。测试阶段则会自动运行各种类型的测试,包括单元测试、集成测试和端到端测试,以确保软件的质量。部署阶段将已测试通过的软件包发布到目标环境中,可以使用容器化技术(如Docker)进行部署。最后,监控阶段会实时监测应用程序的运行情况,以及系统的性能和稳定性。 为了实现流程自动化,可以使用一些流行的工具和平台,如Jenkins、GitLab CI/CD、Travis CI等。这些工具可以实现自动触发流水线、自动化构建、测试和部署,并提供实时的日志和报告,便于团队成员进行追踪和分析。 通过构建DevOps流水线,团队可以高效地进行软件开发和部署,大大减少了人为错误和手动操作带来的风险。同时,流水线还可以提供更频繁的软件交付,让团队能够更快地响应用户需求和市场变化。通过持续集成和持续交付的方式,团队可以实现快速迭代、快速反馈的开发模式,不断优化和改进软件质量和用户体验。 总之,DevOps流水线搭建是一种高效、自动化的软件交付方式,它可以提高团队的工作效率,加快软件交付速度,同时保证了软件的质量和稳定性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 17
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值