CICD介绍「建议收藏」

CICD介绍「建议收藏」CICD一概要CICD的采用改变了开发人员和测试人员如何发布软件最初是瀑布模型,后来是敏捷开发,现在是DevOps,这是现代开发人员构建出色的产品的技术路线。随着DevOps的兴起,出现了持续集成(ContinuousIntegration)、持续交付(ContinuousDelivery)、持续部署(ContinuousDeployment)的新方法。传统的软件开发和…

大家好,又见面了,我是你们的朋友全栈君。

CICD

一 概要

CICD的采用改变了开发人员和测试人员如何发布软件
在这里插入图片描述

最初是瀑布模型,后来是敏捷开发,现在是DevOps,这是现代开发人员构建出色的产品的技术路线。

随着DevOps的兴起,出现了持续集成(Continuous Integration)、持续交付(Continuous Delivery) 、持续部署(Continuous Deployment) 的新方法。传统的软件开发和交付方法正在迅速变得过时。

从历史上看,在敏捷时代,大多数公司会每月,每季度,每两年甚至每年发布部署/发布软件。然而,现在,在DevOps时代,每周,每天,甚至每天多次是常态。当SaaS正在占领世界时,尤其如此,您可以轻松地动态更新应用程序,而无需强迫客户下载新组件。很多时候,他们甚至都不会意识到正在发生变化。开发团队通过软件交付流水线(Pipeline)实现自动化,以缩短交付周期,大多数团队都有自动化流程来检查代码并部署到新环境。今天,我们将介绍什么是CI / CD / CD,以及现代软件公司如何使用工具将部署代码的流程自动化。

二 名词解释

持续集成

持续继承的重点是将各个开发人员的工作集合到一个代码仓库中。通常,每天都要进行几次,主要目的是尽早发现集成错误,使团队更加紧密结合,更好地协作。

持续交付

持续交付的目的是最小化部署或释放过程中固有的摩擦。它的实现通常能够将构建部署的每个步骤自动化,以便任何时刻能够安全地完成代码发布(理想情况下)。

持续部署

持续部署在持续集成的基础上更进一步,指将推送指仓库默认分支的部署至产品环境。如果这部分需要手动触发,这就是一个持续交付(Continuous Delivery)环节。


在这里插入图片描述

三 名词详解

1. CI

CI (Continuous Integration) 持续集成,开发人员可以通过持续集成将开发的代码持续的提交到公共的代码仓库中.开发人员可以在任何时候多次的提交自己开发的代码,而并不是独立的开发某一个独立模块并在开发周期结束的时候一起提交.

这里就是为了让开发人员可以更快,更频繁的提交自己的代码,从而降低成本.
传统开发中, 在开发过程中自己提交的代码和新提交的代码会存在冲突的地方,或者你的提交的代码和你的同时的代码存在冲突时,那么在提交时才会发现你的代码和其他的代码存在冲突.
持续集成中,就可以快速的避开这样的问题,更早的提交自己的代码的.与其他的开发的代码集成,就会更快的发现问题.那么冲突的问题就可以更早的解决,降低了集成的成本

当然许多组织发现这种集成会变得昂贵.因为他们需要手动的过程来确保新代码不会引入新的错误,并且不会破坏现有代码。
为了减少集成任务期间的摩擦,持续集成依赖于测试套件和自动化测试执行

持续集成的目的就是将集成简单化,简化了重复的日常开发任务,并在开发周期的最在时间发现问题.并且发现bug并及时的解决.

2. CD

CD(Continuous Delivery) 持续交付.其实就是CI的扩展.将CI进一步自动化.可以更方便的进行项目的部署.

CD集中依赖于部署流水线.可以通过流水线自动化的测试和部署
持续交付的本质就是将每一个构建成功的引用交付给用户去使用,在持续交付的认识中,不单是测试的完成,而是交付到客户的手中.
注意: 持续交付不是持续部署(Continuous Deploy) 因为部署也包括部署到测试环境中,而持续交付时表示一个具体的功能上线,用户可以使用的.

持续交付的好处
可以快速的获取的用户的反馈.适应市场变化和商业策略的变化。开发团队保证每次提交的修改都是可上线的修改,那么决定何时上线,上线哪部分功能则完全由产品业务团队决定

CD(Continuous Deployment) 持续部署

持续部署扩展了持续交付,以便软件构建,在通过所有测试时自动部署。在这样的流程中,不需要人为决定何时及如何投入生产环境。CI/CD 系统的最后一步将在构建后的组件/包退出流水线时自动部署。此类自动部署可以配置为快速向客户分发组件、功能模块或修复补丁,并准确说明当前提供的内容
采用持续部署的组织可以将新功能快速传递给用户,得到用户对于新版本的快速反馈,并且可以迅速处理任何明显的缺陷。

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

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

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 大数据的两种处理方式是什么_大数据的基本处理模式

    大数据的两种处理方式是什么_大数据的基本处理模式大数据的处理方式有两种:基于内存的流式处理和基于硬盘的存储处理。流式处理就好象是在经过的数据面前建一道水闸。数据流过这里,经过闸门的时候,就进行筛选过滤,分析出有价值的内容,然后丢弃,以后也不再使用

    2022年8月5日
    6
  • selenium的PO模式

    selenium的PO模式PageObject模式是Selenium中的一种测试设计模式,主要是将每一个页面设计为一个Class(封装在一个class类中),其中包含页面中需要测试的所有元素(按钮,输入框,标题等)的属性和操作,这样在Selenium测试页面中可以通过调用页面类来获取页面元素,这样巧妙的避免了当页面元素id或者位置变化时,需要改测试页面代码的情况。当页面元素id变化时,只需要更改测试页Class中页面的属…

    2022年5月20日
    69
  • 软件实施工程师的经验之谈(适合新手,老鸟请指正)[通俗易懂]

    软件实施工程师的经验之谈(适合新手,老鸟请指正)[通俗易懂]干了三年实施,技术没学多少,人倒是变的圆滑多了问题1:实施干嘛的呢?说简单通俗点,开发就是研发生产电视机的,我们实施就是给买电视机的人去进行安装调试,试运行完了签验收单收款和后期的日常维护(当然,如果大公司有自己的售后服务团队就另当别论了)问题2:实施的薪资(我想大部分人都关注这个吧)以一线城市北上广为例,我在北京,第一份实施工作月薪4500,出差补助一天一百,报销路费和住宿费,不报销吃饭…

    2022年6月2日
    63
  • [时空权衡]字符串匹配KMP算法代码(引自算法导论)

    [时空权衡]字符串匹配KMP算法代码(引自算法导论)

    2021年8月11日
    59
  • 全012路规律_11选5判断012路的方法

    全012路规律_11选5判断012路的方法堆题目链接将一系列给定数字顺序插入一个初始为空的小顶堆H[]。随后判断一系列相关命题是否为真。命题分下列几种:x is the root:x是根结点;x and y are siblings:x和y是兄弟结点;x is the parent of y:x是y的父结点;x is a child of y:x是y的一个子结点。输入格式:每组测试第1行包含2个正整数N(≤ 1000)和M(≤ 20),分别是插入元素的个数、以及需要判断的命题数。下一行给出区间[−10000,10000]内的N个要被

    2022年8月8日
    3
  • 安卓四大组件面试题_android常见面试题

    安卓四大组件面试题_android常见面试题1、Activity与Fragment之间常见的几种通信方式答:1.使用Bundle:在activity中建一个bundle,把要传的值存入bundle,然后通过fragment的setArguments(bundle)传到fragment,在fragment中,用getArguments接收。这个方法能保证在fragment销毁重建后依然能获取到传递过来的数据。2.采用接口回调的方式。3.EventBus。2.谈谈Android中几种LaunchMode的特点和应用场景?

    2022年8月26日
    7

发表回复

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

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