什么是CICD?

什么是CICD?传统的应用发布模式如果你经历体验过传统的应用发布,你可能就会觉得CICD有足够吸引你的地方,反之亦然。一般一个研发体系中都会存在多个角色:开发、测试、运维。当时我们的应用发布模式可以能是…

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

什么是CICD?

传统的应用发布模式

什么是CICD?

如果你经历体验过传统的应用发布,你可能就会觉得CICD有足够吸引你的地方,反之亦然。一般一个研发体系中都会存在多个角色:开发、测试、运维。当时我们的应用发布模式可以能是这样的:

  • 「开发团队」在开发环境中完成软件开发,单元测试,测试通过,提交到代码版本管理库;

  • 「开发同学」通知运维同学项目可以发布了,然后运维同学下载代码进行打包和构建,生成应用制品;

  • 「运维同学」使用部署脚本将生成的制品部署到测试环境,并提示测试同学可以进行产品的测试;

  • 「测试同学」开始进行手动、自动化测试,测试完成后提醒运维同学可以进行预生产环境部署;

  • 「运维同学」开始进行预生产环境部署,然后测试同学进行测试,测试完成后,开始部署生产环境。

当然我描述的可能只是其中的一部分,手动操作很多、出现的问题很多。上面看似很流畅的过程,其实每次构建或发布都可能会出现问题。未对每次提交验证、构建环境不一致:开发人员本地测试成功后提交代码,运维同学下载代码进行编译却出现了错误。

「存在的问题:」

  1. 「错误发现不及时」: 很多错误在项目的早期可能就存在,到最后集成的时候才发现问题;

  2. 「人工低级错误发生」: 产品和服务交付中的关键活动全都需要手动操作;

  3. 「团队工作效率低」: 需要等待他人的工作完成后才能进行自己的工作;

  4. 「开发运维对立」: 开发人员想要快速更新,运维人员追求稳定,各自的针对的方向不同。

经过上述问题我们需要作出改变,如何改变?

什么是CICD

什么是CICD?

软件开发的连续方法基于自动执行脚本,以最大程度地减少在开发应用程序时引入错误的机会。 从开发新代码到部署新代码,他们几乎不需要人工干预,甚至根本不需要干预。


它涉及到在每次小的迭代中就不断地构建,测试和部署代码更改,从而减少了基于错误或失败的先前版本开发新代码的机会。

此方法有三种主要方法,每种方法都将根据最适合您的策略的方式进行应用。

持续集成 CI(Continuous Integration)

什么是CICD?

在传统软件开发过程中,集成通常发生在每个人都完成了各自的工作之后。在项目尾声阶段,通常集成还要痛苦的花费数周或者数月的时间来完成。持续集成是一个将集成提前至开发周期的早期阶段的实践方式,让构建、测试和集成代码更经常反复地发生。

开发人员通常使用一种叫做CI Server的工具来做构建和集成。持续集成要求史蒂夫和安妮能够自测代码。分别测试各自代码来保证它能够正常工作,这些测试通常被称为单元测试(Unit tests)。

代码集成以后,当所有的单元测试通过,史蒂夫和安妮就得到了一个绿色构建(Green Build)。这表明他们已经成功地集成在一起,代码正按照测试预期地在工作。然而,尽管集成代码能够成功地一起工作了,它仍未为生产做好准备,因为它没有在类似生产的环境中测试和工作。

CI是需要对开发人员每次的代码提交进行构建测试验证。确定每次提交的代码都是可以正常编译测试通过的。在没有持续集成服务器的时候,我们可以写一个程序来监听版本控制系统的状态,当出现了push动作则触发相应的脚本运行编译构建等步骤。现在有了专业的持续集成服务器后,我们借助持续集成服务器来实现版本控制系统中代码提交触发构建测试等验证步骤。

持续合并开发人员正在开发编写的所有代码的一种做法。通常一天内进行多次合并和提交代码,从存储库或生产环境中进行构建和自动化测试,以确保没有集成问题并及早发现任何问题。

「开发人员提交代码的时候一般先在本地测试验证,只要开发人员提交代码到版本控制系统就会触发一条提交流水线,对本次提交进行验证。」

持续交付 CD (Continuous Delivery)

什么是CICD?

Continuous Delivery (CD) 持续交付是持续集成的延伸,将集成后的代码部署到类生产环境,确保可以以可持续的方式快速向客户发布新的更改。如果代码没有问题,可以继续手工部署到生产环境中。

「持续交付CD」:是基于持续集成的基础上,将集成后的代码自动化的发布到各个环境中测试(DEV TEST UAT STAG),确定可以发布生产版本。这里我们可以借用制品库实现制品的管理,根据环境类型创建对应的制品库。「一次构建,到处运行」

  • 开发环境发布:我们可以将开发环境产出的制品部署进行测试,没有问题后上传到测试环境的制品库中。

  • 测试环境发布:此时通知测试人员可以进行测试环境发布测试,获取测试环境制品库中的制品,发布到测试环境验证。验证通过将制品上传到预生产环境制品库。

  • 预生产环境发布:获取预生产环境制品,进行部署测试。测试成功后可以将制品上传到生产库中。

  • 手动部署生产环境。

持续交付是超越持续集成的一步。不仅会在推送到代码库的每次代码更改时都进行构建和测试,而且,作为附加步骤,即使部署是手动触发的,它也可以连续部署。此方法可确保自动检查代码,但需要人工干预才能从策略上手动触发更改的部署。

持续部署 CD(Continuous Deploy)

什么是CICD?

如果真的想获得持续交付的好处,应该尽早部署到生产环境,以确保可以小批次发布,在发生问题时可以轻松排除故障。于是有了持续部署。

通常可以通过将更改自动推送到发布系统来随时将软件发布到生产环境中。持续部署 会更进一步,并自动将更改推送到生产中。类似于持续交付,持续部署也是超越持续集成的进一步。不同之处在于,您无需将其手动部署,而是将其设置为自动部署。部署您的应用程序完全不需要人工干预。

「持续部署CD」:是基于持续交付的基础上,将在各个环境经过测试的应用自动化部署到生产环境。其实各个环境的发布过程都是一样的。应用发布到生产环境后,我们需要对应用进行健康检查、添加应用的监控项、 应用日志管理。

我们通常将这个在不同环境发布和测试的过程叫做部署流水线, 持续部署是在持续交付的基础上,把部署到生产环境的过程自动化。

什么是CICD?

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

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

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


相关推荐

  • vim查找关键字「建议收藏」

    vim查找关键字「建议收藏」当你用vi打开一个文件后,因为文件太长,如何才能找到你所要查找的关键字呢?在vi里可没有菜单-〉查找不过没关系,你在命令模式下敲斜杆(/)这时在状态栏(也就是屏幕左下脚)就出现了“/”然后输入你要查找的关键字敲回车就可以了。如果你要继续查找此关键字,敲字符n就可以继续查找了。敲字符N(大写N)就会向前查询;…

    2022年6月16日
    41
  • HTML的注释与JavaScript注释及快捷键「建议收藏」

    HTML的注释与JavaScript注释及快捷键「建议收藏」1、单行注释:在代码前输入两个反斜杠//,或用快捷键ctrl+/2、多行注释:使用/**/把要注释的代码块包起来,或用快捷键shift+alt+a3、若觉得2、的快捷键用着不方便,可以按自己喜欢可以在vscode中修改注释快捷键。…

    2022年5月29日
    24
  • vue前端面试题2022_前端常见面试题

    vue前端面试题2022_前端常见面试题然后现在也是找了一些在Vue方面经常出现的面试题,留给自己查看消化,也分享给有需要的小伙伴。如果文章中有出现纰漏、错误之处,还请看到的小伙伴留言指正,先行谢过。以下↓1.说一下Vue的双向绑定数据的原理vue实现数据双向绑定主要是:采用数据劫持结合“发布者-订阅者”模式的方式,通过Object.defineProperty()来劫持各个属性的setter、…

    2022年9月7日
    0
  • IPFS挖矿奖励分配机制,如何获得更大的出快机会,水滴科技Filecoin扇区封装及挖矿流程是怎样的?[通俗易懂]

    IPFS挖矿奖励分配机制,如何获得更大的出快机会,Filecoin扇区封装及挖矿流程是怎样的?Filecoin挖矿奖励区块奖励方面,在Filecoin总量20亿的FIL通证中,可以通过挖矿获得的部分为70%。其余为开发团队(15%)、投资人(10%),基金会(5%)的份额。就区块奖励而言,可挖通证的50%将在6年内挖出。目前奖励的具体参数还没有最终确定,当前测试网Filecoin区块奖励模型由“简单供给+网络基线供给”构成。  不少业内人士推测,在网络达到一定的目标存储规模之前,矿工的奖励会延迟

    2022年4月14日
    62
  • CIFAR-10 数据集「建议收藏」

    CIFAR-10 数据集「建议收藏」CIFAR-10数据集简介CIFAR-10是由Hinton的学生AlexKrizhevsky和IlyaSutskever整理的一个用于识别普适物体的小型数据集。一共包含10个类别的RGB彩色图片:飞机(a叩lane)、汽车(automobile)、鸟类(bird)、猫(cat)、鹿(deer)、狗(dog)、蛙类(frog)、马(hor…

    2022年4月19日
    38
  • eclipse中文版自动补全设置

    eclipse中文版自动补全设置eclipse中文版自动补全设置如下:

    2022年6月28日
    24

发表回复

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

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