当前位置: 七九推 > IT编程>脚本编程>vue.js > CICD简介

CICD简介

2022年06月23日 vue.js 我要评论
CI/CD ​ CI/CD 的出现改变了开发和测试人员发布软件的方式。 ​ 传统的软件开发和交付方式在迅速变得过时。过去的敏捷时代里,大多数公司的软件发布周期是每月、每季度甚至每年&#x

CI/CD

​ CI/CD 的出现改变了开发和测试人员发布软件的方式。

​ 传统的软件开发和交付方式在迅速变得过时。过去的敏捷时代里,大多数公司的软件发布周期是每月、每季度甚至每年,而在现在 DevOps 时代,每周、每天甚至每天多次都是常态。当 SaaS(软件即服务) 成为业界主流后尤其如此,您可以轻松地动态更新应用程序,而无需强迫用户下载更新组件。很多时候,用户甚至都不会注意到正在发生变化。开发团队通过软件交付流水线(Pipeline)实现自动化,以缩短交付周期,大多数团队都有自动化流程来检查代码并部署到新环境。

CI是什么?

在这里插入图片描述

持续集成

​ 定义:频繁地(一天多次)将代码集成到主干。CI是一种通过在应用开发阶段引入自动化来频繁向客户交付应用的方法。CI 的核心概念是持续集成、持续交付和持续部署。作为一个面向开发和运营团队的解决方案,CI 主要针对在集成新代码时所引发的问题(亦称“集成地狱”)。

​ 持续集成强调开发人员提交了新代码之后,立刻自动的进行构建、(单元)测试。根据测试结果,我们可以确定新代码和原有代码能否正确地集成在一起。

持续集成的目的

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

​ 持续集成过程中很重视自动化测试验证结果,对可能出现的一些问题进行预警,以保障最终合并的代码没有问题。

持续集成的作用

  • 代码库存越是积压,就越得不到生产检验,积压越多,代码间交叉感染的概率越大,下个发布(release)的复杂度和风险越高,持续集成可以保证团队开发人员提交代码的质量,减轻了软件发布时的压力;
  • 持续集成中的任何一个环节都是自动完成的,无需太多的人工干预,有利于减少重复过程以节省时间、费用和工作量;
  • 及早的发现代码中的问题,及早解决,代码越早推送(PUSH)出去,用户能越早用到,快就是商业价值;

特点

  • 它是一个自动化的周期性的集成测试过程,从检出代码、编译构建、运行测试、结果记录、测试统计等都是自动完成的,无需人工干预;
  • 需要有专门的集成服务器来执行集成构建;
  • 需要有代码托管工具支持;

CD是什么?

​ CI/CD 中的“CD”指的是持续交付和/或持续部署,这些相关概念有时会交叉使用。两者都事关管道后续阶段的自动化,但它们有时也会单独使用,用于说明自动化程度。

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

​ 持续交付可以看作持续集成的下一步。它强调的是,不管怎么更新,软件是随时随地可以交付的。持续交付通常是指开发人员对应用的更改会自动进行错误测试并上传到存储库(如 GitHub或容器注册表),然后由运维团队将其部署到实时生产环境中。这旨在解决开发和运维团队之间可见性及沟通较差的问题。因此,持续交付的目的就是确保尽可能减少部署新代码时所需的工作量。

​ 持续部署(另一种“CD”)指的是自动将开发人员的更改从存储库发布到生产环境,以供客户使用。它主要为了解决因手动流程降低应用交付速度,从而使运维团队超负荷的问题。持续部署以持续交付的优势为根基,实现了管道后续阶段的自动化。

​ 归根结底,我们没必要纠结于这些语义,您只需记得 CI/CD 其实就是一个流程(通常形象地表述为管道),用于实现应用开发中的高度持续自动化和持续监控。因案例而异,该术语的具体含义取决于 CI/CD 管道的自动化程度。许多企业最开始先添加 CI,然后逐步实现交付和部署的自动化(例如作为[云原生应用]的一部分)。

CICD实现过程
工厂里的装配线以快速、自动化、可重复的方式从原材料生产出消费品。同样,软件交付管道以快速、自动化和可重复的方式从源代码生成发布版本。如何完成这项工作的总体设计称为“持续交付”(CD)。启动装配线的过程称为“持续集成”(CI)。确保质量的过程称为“持续测试”,将最终产品提供给用户的过程称为“持续部署”

实现流程

​ 1、运维管理员创建gitlab项目,创建Jenkins项目

​ 2、开发人员将code提交到对应的gitlab中(可按分支触发)

​ 3、gitlab通过webhook触发对应Jenkins项目

​ 4、进入CI环节:将code集成进标准的docker镜像中,并进行测试;

​ 集成及测试成功,则将集成后的镜像上传至仓库中;

集成或测试失败,则结束本次Jenkins,并将原因通过邮件发送给开发者与运维管理员。

​ 5、进入CD环节:

​ 通过Ansible将CI集成成功的镜像部署到已定义的所有机子中,并进行测试。

​ 如测试通过完成本次部署,如测试失败将判定该项目是否为第一次部署的;

​ 如该项目不是第一次部署的,则滚回到上一版本的容器,并将原因通过邮件发送给运维管理员。

如测试失败将判定该项目是否为第一次部署的;

​ 如该项目不是第一次部署的,则滚回到上一版本的容器,并将原因通过邮件发送给运维管理员。

(0)
打赏 微信扫一扫 微信扫一扫

相关文章:

  • Vue整合ElementUI

    Vue整合ElementUI

    文章目录 Vue整合ElementUI下载喝配置ElementUI使用ElementUI美化我们的ElementUI实现路由跳转 Vue整合ElementUI... [阅读全文]
  • 毒霸网址大全的彻底删除

    毒霸网址大全的彻底删除

    篡改主页真是很讨厌,不知道什么时候下载的软件就带上了。说一下处理方法。 [阅读全文]
  • VUE的axios的详细介绍和用法

    VUE的axios的详细介绍和用法

    Vue中发送网络请求有非常多的方式, 那么, 在开发中, 如何选择呢? 选择一: 传统的Ajax是基于XMLHttpRequest(XHR) 为什么不用它呢? ... [阅读全文]
  • 使用vmware ESXI创建虚拟机

    使用vmware ESXI创建虚拟机

    一、目标: ip:192.168.0.237 操作系统:centos7 hostname:home02_2 虚拟机名字:... [阅读全文]
  • vue基础知识

    vue基础知识

    概述 Vue是由一个个实例构建而成的,一个组件就是一个Vue的实例 官网 https://cn.vuejs.org/v2/guide/ link ... [阅读全文]
  • 前端路由拦截器使用及介绍

    前端路由拦截器使用及介绍

    一:路由拦截器(beforeEach:路由守卫) vue-router 提供的导航守卫主要用来通过跳转或取消的方式守卫导航。(在路由跳转时触发)我们主要介绍的... [阅读全文]

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

发表评论

验证码:
Copyright © 2017-2022  七九推 保留所有权利. 粤ICP备17035492号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com