当前位置:网站首页>持续集成(一)基本概念简要介绍
持续集成(一)基本概念简要介绍
2022-07-26 14:59:00 【M1kasal】
前言
本章主要简单讲述【开发模型】及【持续集成和交付】基本概念
- 目前市面上的公司一般都是用Jenkins进行持续集成操作
一、开发模型简要介绍
首先简单提及一下【瀑布模型】和【敏捷开发】模型
瀑布模型: 简单来说,就和工厂流水线一样,一个环节完了后进入下一个环节(即从设计–>开发–>测试–>开发改bug–>预发布–>生产等),各环节人员管理自己的事就行,在开发过程中客户只能通过文档来了解产品
所以它有个最大的弊端就是:下游工作的开展严重依赖于上游的交付完成情况,造成了严重的人力资源浪费.
敏捷开发模型: 即以客户需求为导向,快速迭代功能型开发(和客户打交道型)
在软件项目构建初期会切分成很多独立小项目来进行开发,所有的人都要同时的工作(不再依赖于上游),最大的特色是客户会参与到软件开发的过程中,能够及时响应客户的需求
像这样的开发模式,在政府项目中比较多见,它是以客户的需求为导向来进行快速迭代开发,最主要的是多于客户沟通,多了解客户需要什么。每次发布的版本多以小版本为主。

为什么要首先提及开发模型呢?
- 按照我的个人理解简单说下
因为目前大部分公司其实实行的都是一个 【敏捷开发】模式,那针对敏捷开发这种模型,通常版本都是以小版本发布为主,需要我们短时间进行一个项目的快速迭代,那针对这种快速迭代的方式,持续集成和持续交付就不可避免成为其中重要的一环,可以加速项目的交付,加快开发和测试这边的一个效率
二、持续集成和持续交付简要介绍

持续集成(Continuous integration): 即频繁地(一天多次)将代码集成到主干。 就是让产品可以快速迭代,同时还能保持高质量。 它主要是在开发阶段执行,它的核心措施是,代码集成到主干之前,必须通过自动化测试。只要有一个测试用例失败,就不能集成。
- 举个例子:一般我们进行UI/API自动化用例部署后,只要开发那边Git提交了代码,就会自动触发我们的用例执行,然后发送测试报告,从某种意义上来说,其实就是进行冒烟测试,只是这一部直接自动集成了
那持续集成有什么优点呢?
(1)可以快速发现错误。每完成一点更新,就集成到主干,可以快速发现错误,定位错误也比较容易。
不像瀑布模型一样到最后产品都完成开发时,才提交测试,那到时候遗留的bug就会很多,会花费很多时间成本
(2)防止分支大幅偏离主干。如果不是经常集成,主干又在不断更新,会导致以后集成的难度变大,甚至难以集成。
一般在开发阶段,不同的开发不同的需求都会拉不同的分支,等这个分支的代码测试全部验证通过后才会合到master分支,持续集成
持续交付(Continuous delivery):频繁地将软件的新版本,交付给质量团队或者用户,以供评审。如果评审通过,代码就进入生产阶段。
持续交付可以看作持续集成的下一步。可以理解为在 【预发布阶段】,它强调的是,不管怎么更新,软件是随时随地可以交付的。
持续部署 (continuous deployment): 是持续交付的下一步,指的是代码通过评审以后,自动部署到生产环境。
持续部署的目标是,代码在任何时刻都是可部署的,可以进入生产阶段。
持续部署的前提是能自动化完成测试、构建、部署等步骤。
边栏推荐
- Usage of nn.conv2d and nn.convtranspose2d functions in pytorch
- Xiaobai, which securities firm is the best and safest to open an account
- 楚环科技深交所上市:市值27亿 民生证券是股东
- Lean product development: principles, methods and Implementation
- 兆骑科创高端人才项目引进落地,双创大赛承办,线上直播路演
- Winscp transfer file and VNC connection problem
- Crystal special decoration submitted for registration: the first quarter revenue fell by 80%, and Chen Bo controlled 68.5% of the equity
- Summary of target tracking related knowledge
- DICOM学习资料收集
- 固态硬盘对游戏运行的帮助有多少
猜你喜欢
![[file upload vulnerability-06] distributed configuration file attack experiment - take upload-labs-4 as an example](/img/47/0e2a159bbbc7af8ef6263ca4ccc724.png)
[file upload vulnerability-06] distributed configuration file attack experiment - take upload-labs-4 as an example

VBA upload pictures

CVE-2022-33891 Apache spark shell 命令注入漏洞复现
MySQL builds master-slave replication

What are the skills and methods of searching foreign literature

Data permissions should be designed like this, yyyds!

Usage of nn.conv2d and nn.convtranspose2d functions in pytorch
![[2022 national game simulation] Bai Loujian - Sam, rollback Mo team, second offline](/img/e1/0574dd4eb311e79afdb1d071f59c4d.png)
[2022 national game simulation] Bai Loujian - Sam, rollback Mo team, second offline

最详细的专利申请教程,教你如何申请专利
Database expansion can also be so smooth, MySQL 100 billion level data production environment expansion practice
随机推荐
7. In JS [] = =! [] Why is it true?
什么是传输层协议TCP/UDP???
Summary of target tracking related knowledge
外文文献查找技巧方法有哪些
双屏协作效率翻倍 灵耀X双屏Pro引领双屏科技新潮流
DevSecOps,让速度和安全兼顾
Solve the problem that typora pictures cannot be displayed
次轮Okaleido Tiger即将登录Binance NFT,引发社区热议
R语言ggplot2可视化:使用ggplot2可视化散点图、使用ggpubr包的theme_pubclean函数设置可视化图像不包含坐标轴线的主题(theme without axis lines)
哪里有写毕业论文需要的外文文献?
华为应用已经调用了checkAppUpdate接口,为什么应用内不提示版本更新
Database expansion can also be so smooth, MySQL 100 billion level data production environment expansion practice
Character function and string function and memory function
如何查找国内各大学本科学位论文?
JS analog clock with text label
笔记(5)
Parallel d-pipeline: a cuckoo hashing implementation for increased throughput
OSPF and mGRE experiments
How to translate academic documents?
如何查询外文文献?