【开发流程】持续集成、持续交付、持续部署

一、开发工作流程

假设把开发流程分为以下几个阶段:
编码 -> 构建 -> 集成 -> 测试 -> 交付 -> 部署
在这里插入图片描述
如上图所示,持续集成、持续交付、持续部署有着不同的软件自动交付周期。

二、持续集成、持续交付、持续部署

1、持续集成

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

2、持续交付

持续交付在持续集成的基础上,将集成后的代码部署到更贴近真实运行环境的「类生产环境」(production-like environments)中。比如,我们完成单元测试后,可以把代码部署到连接数据库的 Staging 环境中更多的测试。如果代码没有问题,可以继续手动部署到生产环境中。

3、持续部署

持续部署则是在持续交付的基础上,把部署到生产环境的过程自动化。

4、三者关系

将持续集成扩充到部署到生产环境就是持续交付和持续部署的概念,二者的区别即手动与自动的区别。
在这里插入图片描述

三、持续集成(CI)的价值

1、减少风险

缺陷的检测和修复变得更快,让寻找和修改bug的工作变简单(只修改系统一小部分,无需看太多代码。由于提交后就可以得到反馈,记忆很新鲜,可以进行差异调试)。同时过早的引入集成,使我们能更好的审视各个模块的接口是否满足要求,减少项目中的假定。

2、减少重复过程

由于CI将大量的工作给自动化了,那么可以让人们有时间做更多的需要动脑筋的、更高价值的工作。而且通过对重要过程自动化,克服了项目中某些成员对实现改进的抵制,有利于持续集成的推进。这样就形成了一个良性循环。
在任何时间、任何地点生成可部署的软件
对于客户来说,可以部署的软件是最实际的资产。而CI则可以轻松做到这一点。

3、增强项目的可见性

通过对CI服务器的监控,可以随时了解项目的趋势。CI上的红色或绿色表示了当前项目的健康程度。每一个功能的交付都经历了单元测试或集成测试的考验。
对开发团队的软件产品建立起更强大的产品信心
CI可以防止破窗综合症,让开发团队一点点积累起对产品的信息。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/148713.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

服务器数据恢复—热备盘同步中断导致Raid5数据丢失的数据恢复案例

服务器数据恢复环境: 某单位一台服务器上有一组raid5阵列,该raid5阵列有15块成员盘。上层是一个xfs裸分区,起始位置是0扇区。 服务器故障&检测: 服务器raid5阵列中有硬盘性能表现不稳定,但是由于管理员长时间没有关…

nodejs+vue实验室上机管理系统的设计与实现-微信小程序-安卓-python-PHP-计算机毕业设计

用户:管理员、教师、学生 基础功能:管理课表、管理机房情况、预约机房预约;权限不同,预约类型不同,教师可选课堂预约和个人;课堂预约。 在实验室上机前,实验室管理员需要对教务处发来的上机课表…

浅析AcrelEMS-CIA机场智慧能源管平台解决方案-安科瑞 蒋静

1 概述 机场智慧能源管平台解决方案对机场范围内变电站内的高低压配电设备 、 发电机、变压器 、UPS、EPS 、广场照明 、 室内照明 、通风及排水等机电设备进行实时分布式监控和集中管理 , 实现无人值守 , 确保高速公路安全畅通 , 提高 自动化管理水平 , 降低机电设备的运行维…

SpringBoot常见注解

✅作者简介:大家好,我是Leo,热爱Java后端开发者,一个想要与大家共同进步的男人😉😉 🍎个人主页:Leo的博客 💞当前专栏:每天一个知识点 ✨特色专栏&#xff1a…

程序员告诉你:人工智能是什么?

随着科技的快速发展,人工智能这个词汇已经逐渐融入了我们的日常生活。然而,对于大多数人来说,人工智能仍然是一个相对模糊的概念。 首先,让我们从人工智能的定义开始。人工智能是一种模拟人类智能的技术,它涵盖了多个领…

flink入门

1.安装flink,启动flink 文档地址:Apache Flink 1.3-SNAPSHOT 中文文档: Apache Flink 中文文档 代码:GitHub - apache/flink: Apache Flink 2. 打开端口 端口号, 启动jar ### 切换到flink 目录bin下 [rootlocalhost ~]# cd /…

参考文献格式

目录 期刊会议预印本(如arxiv) 期刊 找不到页码可以在文献中查看bibtex格式,其中有 外文期刊可在web of science中查找卷号、期号和所在页数: [1] ZHANG F, HU Z Q, FU Y K, et al. A New Identification Method for Surface …

【0到1学习Unity脚本编程】第一人称视角的角色控制器

👨‍💻个人主页:元宇宙-秩沅 👨‍💻 hallo 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅! 👨‍💻 本文由 秩沅 原创 👨‍💻 收录于专栏:【0…

自动驾驶学习笔记(九)——车辆控制

#Apollo开发者# 学习课程的传送门如下,当您也准备学习自动驾驶时,可以和我一同前往: 《自动驾驶新人之旅》免费课程—> 传送门 《Apollo Beta宣讲和线下沙龙》免费报名—>传送门 文章目录 前言 控制器设计 比例积分微分控制 线性…

Kotlin 知识体系

Kotlin 知识体系 1、Kotlin 文档2、Kotlin 基础3、桌面应用程序4、Android 与 iOS 应用程序 1、Kotlin 文档 Kotlin 是一门现代但已成熟的编程语言,旨在让开发人员更幸福快乐。 它简洁、安全、可与 Java 及其他语言互操作,并提供了多种方式在多个平台间复…

『亚马逊云科技产品测评』活动征文|借助AWS EC2搭建服务器群组运维系统Zabbix+spug

授权声明:本篇文章授权活动官方亚马逊云科技文章转发、改写权,包括不限于在 Developer Centre, 知乎,自媒体平台,第三方开发者媒体等亚马逊云科技官方渠道。 本文基于以下软硬件工具: aws ec2 frp-0.52.3 zabbix 6…

LRU最近最少使用算法

LRU(LeastRecentlyUsed)“最近最少使用”算法: 1.当缓存空间已满耗用时,淘汰最近最少使用数据的缓存对象以释放更多的缓存空间(用于历史缓存对象的维护)。 2. 哈希表:快速查找缓存对象;双向链表:维护 历史数据所在的节点顺序。 步骤&#xff…

掌握深度学习利器——TensorFlow 2.x实战应用与进阶

掌握深度学习利器——TensorFlow 2.x实战应用与进阶 摘要:随着人工智能技术的飞速发展,深度学习已成为当下最热门的领域之一。作为深度学习领域的重要工具,TensorFlow 2.x 备受关注。本文将通过介绍TensorFlow 2.x的基本概念和特性&#xff…

在 Linux 上搭建 Java Web 项目环境(最简单的进行搭建)

要在 Linux 上安装的程序有 1.JDK (要想运行 java 程序 JDK 是必不可少的) 2.Tomcat (HTTP 服务器,是管理 Web 项目的常用工具) 3. mysql (数据库) 一.安装 JDK 博主使用的 Linux 发行版是 centos ,cen…

母婴服务预约小程序的效果如何

二胎家庭增速明显,占比较大,成为市场各母婴品牌的目标,而随着行业发展及市场变化,线上互联网深入人们生活,各家母婴品牌开始向“数字化”靠拢。 目前母婴门店商家主要面临服务/产品线上曝光不足、宣传度不够或扩圈无门…

git rebase 和 git merge的区别?以及你对它们的理解?

文章目录 前言是什么分析区别后言 前言 hello world欢迎来到前端的新世界 😜当前文章系列专栏:git操作相关 🐱‍👓博主在前端领域还有很多知识和技术需要掌握,正在不断努力填补技术短板。(如果出现错误,感谢…

【论文解读】FFHQ-UV:用于3D面部重建的归一化面部UV纹理数据集

【论文解读】FFHQ-UV 论文地址:https://arxiv.org/pdf/2211.13874.pdf 0. 摘要 我们提出了一个大规模的面部UV纹理数据集,其中包含超过50,000张高质量的纹理UV贴图,这些贴图具有均匀的照明、中性的表情和清洁的面部区域,这些都是…

基于深度学习的恶意软件检测

恶意软件是指恶意软件犯罪者用来感染个人计算机或整个组织的网络的软件。 它利用目标系统漏洞,例如可以被劫持的合法软件(例如浏览器或 Web 应用程序插件)中的错误。 恶意软件渗透可能会造成灾难性的后果,包括数据被盗、勒索或网…

sqli-labs关卡18(基于http头部报错盲注)通关思路

文章目录 前言一、靶场通关需要了解的知识点1、什么是http请求头2、为什么http头部可以进行注入 二、靶场第十八关通关思路1、判断注入点2、爆数据库名3、爆数据库表4、爆数据库列5、爆数据库关键信息 总结 前言 此文章只用于学习和反思巩固sql注入知识,禁止用于做…

LV.12 D18 中断处理 学习笔记

一、ARM的异常处理机制及工程代码结构 1.1异常概念 处理器在正常执行程序的过程中可能会遇到一些不正常的事件发生 这时处理器就要将当前的程序暂停下来转而去处理这个异常的事件 异常事件处理完成之后再返回到被异常打断的点继续执行程序。 1.2异常处理机制 不同的处…