0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

CI、CD、DevOps关系

Linux爱好者 来源:Linux爱好者 作者:Linux爱好者 2020-11-12 15:47 次阅读

DevOps

DevOps是Development和Operations的组合,是一种方法论,是一组过程、方法与系统的统称,用于促进应用开发、应用运维和质量保障(QA)部门之间的沟通、协作与整合。以期打破传统开发和运营之间的壁垒和鸿沟。



DevOps是一种重视“软件开发人员(Dev)”和“IT运维技术人员(Ops)”之间沟通合作的文化、运动或惯例。通过自动化“软件交付”和“架构变更”的流程,来使得构建、测试、发布软件能够更加地快捷、频繁和可靠。具体来说,就是在软件交付和部署过程中提高沟通与协作的效率,旨在更快、更可靠的的发布更高质量的产品

也就是说DevOps是一组过程和方法的统称,并不指代某一特定的软件工具或软件工具组合。各种工具软件或软件组合可以实现DevOps的概念方法。其本质是一整套的方法论,而不是指某种或某些工具集合,与软件开发中设计到的OOP、AOP、IOC(或DI)等类似,是一种理论或过程或方法的抽象或代称。

CI

CI的英文名称是Continuous Integration,中文翻译为:持续集成。

CI中,开发人员将会频繁地向主干提交代码,这些新提交的代码在最终合并到主干前,需要经过编译和自动化测试流进行验证。

持续集成(CI)是在源代码变更后自动检测、拉取、构建和(在大多数情况下)进行单元测试的过程。持续集成的目标是快速确保开发人员新提交的变更是好的,并且适合在代码库中进一步使用。CI的流程执行和理论实践让我们可以确定新代码和原有代码能否正确地集成在一起。

CD

CD可对应多个英文名称,持续交付Continuous Delivery和持续部署Continuous Deployment ,以下分别介绍。

查了一些资料,关于持续交互和持续部署的概念比较混乱,以下的概念总结按大部分的资料总结而来。

持续交付

完成 CI 中构建及单元测试和集成测试的自动化流程后,持续交付可自动将已验证的代码发布到存储库。为了实现高效的持续交付流程,务必要确保 CI 已内置于开发管道。持续交付的目标是拥有一个可随时部署到生产环境的代码库。

在持续交付中,每个阶段(从代码更改的合并,到生产就绪型构建版本的交付)都涉及测试自动化和代码发布自动化。在流程结束时,运维团队可以快速、轻松地将应用部署到生产环境中或发布给最终使用的用户。

持续部署

对于一个成熟的CI/CD管道(Pipeline)来说,最后的阶段是持续部署。作为持续交付——自动将生产就绪型构建版本发布到代码存储库——的延伸,持续部署可以自动将应用发布到生产环境。

持续部署意味着所有的变更都会被自动部署到生产环境中。持续交付意味着所有的变更都可以被部署到生产环境中,但是出于业务考虑,可以选择不部署。如果要实施持续部署,必须先实施持续交付。

持续交付并不是指软件每一个改动都要尽快部署到产品环境中,它指的是任何的代码修改都可以在任何时候实施部署。

持续交付表示的是一种能力,而持续部署表示的则一种方式。持续部署是持续交付的最高阶段

Agile Development

另外一个概念,也就是所谓的敏捷开发,似乎还没有所谓的简称,而且这个称呼似乎在国内被滥用了。敏捷开发着重于一种开发的思路,拥抱变化和快速迭代。如何实现敏捷开发,目前似乎尚没有完善的工具链,更多的是一种概念性,调侃的说法“既想马儿跑得快,又想马儿不吃草”的另外一种说法。

上图揭示了敏捷开发的一些内涵和目标,似乎有点儿一本真经的胡说八道的意思。

CI、CD、DevOps关系

概念性的内容,每个人的理解都有所不同。就好比CGI 这个词,即可以理解成CGI这种协议,也可以理解成实现了CGI协议的软件工具,都没有问题,咬文嚼字过犹不及。留意下图:

责任编辑:lq

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 软件开发
    +关注

    关注

    0

    文章

    532

    浏览量

    27168
  • 代码
    +关注

    关注

    30

    文章

    4553

    浏览量

    66645
  • devops
    +关注

    关注

    0

    文章

    100

    浏览量

    11899

原文标题:DevOps、CI、CD都是什么鬼?

文章出处:【微信号:LinuxHub,微信公众号:Linux爱好者】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    如何在DevOps环境中实施测试用例管理

    由于DevOps 工作流程使用CI/CD 方法进行软件开发,因此您的测试管理工具还应该能够与GitLab 和Jenkins 等CI/CD
    的头像 发表于 01-29 09:30 913次阅读
    如何在<b class='flag-5'>DevOps</b>环境中实施测试用例管理

    什么是DevOps中的持续测试?持续测试如何融入DevOps

    持续测试(CT) 是在整个软件开发生命周期(SDLC) 中自动测试软件应用程序和组件的实践。在 DevOps 中,持续测试是在整个DevOps 管道中集成测试活动的实践。
    的头像 发表于 01-09 09:10 163次阅读
    什么是<b class='flag-5'>DevOps</b>中的持续测试?持续测试如何融入<b class='flag-5'>DevOps</b>?

    什么是CI/CD?基本的gitlab CI/CD流程详解

    什么是CI/CD?通俗来说就是启动一个服务,能够监听代码变化,然后自动执行打包,发布等流程;
    的头像 发表于 12-08 09:50 1106次阅读
    什么是<b class='flag-5'>CI</b>/<b class='flag-5'>CD</b>?基本的gitlab <b class='flag-5'>CI</b>/<b class='flag-5'>CD</b>流程详解

    _使用GitLab CIDevOps课程-构建管道并部署到AWS_第18节 #硬声创作季

    代码devops
    充八万
    发布于 :2023年08月04日 00:28:02

    _使用GitLab CIDevOps课程-构建管道并部署到AWS_第11节 #硬声创作季

    代码devops
    充八万
    发布于 :2023年08月04日 00:22:05

    84330CI 数据表

    84330CI 数据表
    发表于 07-11 18:42 0次下载
    84330<b class='flag-5'>CI</b> 数据表

    DevOps的最佳CI/CD工具

    CI/CD是一种 DevOps 方法,它结合了持续集成和持续交付的概念,允许企业通过在软件开发生命周期中集成自动化来始终如一地向客户交付应用程序。
    的头像 发表于 07-11 11:06 417次阅读

    如何实现DevOps目标的核心技术类别和具体技术

      1 关于 DevOps 及其工具 2 计划工具 3 问题跟踪 4 源码控制 5 构建工具 6 测试工具 7 持续集成(CI)和持续部署(CD) 8 配置管理工具 9 云平台 10监控和日志工具
    的头像 发表于 06-25 15:34 424次阅读

    DevOps:开发和运营的下一阶段

    DevOps 是一种创建企业应用程序的协作方法,它将软件开发和 IT 运营结合在一起。从一般意义上讲,DevOps 是一种促进组织内软件开发人员和 IT 运营团队之间更好沟通和协作的理念。从狭义上讲,DevOps 描述了软件开发
    的头像 发表于 05-05 09:43 358次阅读

    嵌入式运维:嵌入式固件DevOps的未来

    在过去的十年中,软件开发以惊人的速度发展。如今,团队必须拥有持续集成和交付 (CI/CD) 服务,以便在复杂的 Web 应用程序上进行有效协作。此外,跨所有环境的依赖关系管理历来很困难,但现代容器
    的头像 发表于 05-04 10:14 871次阅读
    嵌入式运维:嵌入式固件<b class='flag-5'>DevOps</b>的未来

    JFrog Xray是一款应用程序安全SCA工具

    在JFrog Xray 和JFrog Platform中,OSS安全是DevOps操作模型的原生功能,并且与您的CI/CD、二进制文件管理以及软件分发紧密集成。
    的头像 发表于 04-26 10:18 703次阅读
    JFrog Xray是一款应用程序安全SCA工具

    DevOps流水线自动化和优化

    JFrogPipelines 通过在所有团队和工具中以持续简化和安全的方式实现DevOps 自动化运维流程,使软件团队能够更快地发布更新情况。它包括持续集成 (CI)、持续交付(CD)、基础设施等,可以自动化从代码到生产的任何项
    的头像 发表于 04-21 10:23 1207次阅读

    更多选择!Ci522/Ci523的新封装QFN20/3*3*0.8mm

    Ci522/Ci523是一个高度集成的,工作在13.56MHz的非接触式读写器芯片,阅读器支持ISO/IEC14443A/(B/)MIFARE。无需外围其他电路,Ci522/Ci523
    的头像 发表于 04-21 09:52 1863次阅读
    更多选择!<b class='flag-5'>Ci</b>522/<b class='flag-5'>Ci</b>523的新封装QFN20/3*3*0.8mm