CI/CD
在这里插入图片描述
开发工作流程分为以下几个阶段:
编码 -> 构建 -> 集成 -> 测试 -> 交付 -> 部署
正如你在上图中看到,「持续集成(Continuous Integration)」、「持续交付(Continuous Delivery)」和「持续部署(Continuous Deployment)」有着不同的软件自动化交付周期。

持续集成CI(Continuous Integration)
在这里插入图片描述
持续集成(Continuous Integration)简称CI,持续集成强调开发人员提交了新代码之后,立刻自动的进行构建、(单元)测试。根据测试结果,我们可以确定新代码和原有代码能否正确地集成在一起。
持续集成过程中很重视自动化测试验证结果,对可能出现的一些问题进行预警,以保障最终合并的代码没有问题。

持续交付CD(Continuous Delivery)
在这里插入图片描述
持续交付在持续集成的基础上,将集成后的代码部署到更贴近真实运行环境的「类生产环境」(production-like environments)中。交付给质量团队或者用户,以供评审。如果评审通过,代码就进入生产阶段。
持续交付并不是指软件每一个改动都要尽快部署到产品环境中,它指的是任何的代码修改都可以在任何时候实施部署。
这里强调的是
手动部署
有部署的能力,但不一定部署

持续部署(Continuous Deployment)
在这里插入图片描述
持续部署是指当交付的代码通过评审之后,自动部署到生产环境中。持续部署是持续交付的最高阶段。
这里强调
持续部署是自动的
持续部署是持续交付的最高阶段

持续交付(Continuous delivery)与持续部署的关系
有时候,持续交付也与持续部署混淆。持续部署意味着所有的变更都会被自动部署到生产环境中。持续交付意味着所有的变更都可以被部署到生产环境中,但是出于业务考虑,可以选择不部署。如果要实施持续部署,必须先实施持续交付。
持续交付表示的是一种能力
而持续部署则是一种方式
具体落地
整体而言,Jenkins 过去一直是大部分公司的选择,但这个现象正在发生改变,随着公有云服务、Docker,SaaS 的普及,越来越多的企业开始选择在线托管型持续集成系统。

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

我们可以列举下DevOps是干啥的。
DevOps是一组过程、方法与系统的统称。用于促进开发、运维和质量保障部门之间的沟通、协作与整合。
DevOps是一种文化转变,打破了以往开发和运维之间的隔阂,或者说是一个鼓励更好地交流和协作(即团队合作)以便于更快地构建 可靠性更高、质量更好的软件的运动。
DevOps 是一种工程模式,本质上是一种分工,通过对开发、运维、测试,配管等角色职责的分工,实现工程效率最大化,进而满足业务的需求。
DevOps是一种能力,具备此能力的团队可以高质量、快速的交付软件产品或服务。
具体落地
简单的说,DevOps=团队文化+流程+工具
团队文化的意思很简单就是你的团队要知道并认可DevOps理念
然后就要通过具体的流程和工具来实现这个理念。

DevOps工具
在这里插入图片描述
两者的区别(个人体会):
CI/CD是实现敏捷和Devops理念的一种方法。
所以:DevOps是一种理念,一个方向(层次较高,不要局限在是什么工具或者工具组或者怎样才是,永远是永远也不是。可以理解为一种程度,无论现在的管理有多落后和混乱,我认为也是DevOps,只是还有很多提升的空间而已)。CI/CD是一种方法(我粗浅的理解为工具+方案+流程,应该是有一定的样例,做到就是)。
在这里插入图片描述
在这里插入图片描述

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐