软件工程补充概念

什么是DevOps?

DevOps可以理解为一种开发(Development)和运维(Operations)一起紧密协作的工作方式,从而可以 更快更可靠的构建、测试和发布软件。

 

出现的原因如下:1.服务器规模快速增长和虚拟化技术的高速发展。2.高频的部署发布。

 

DevOps并不意味着开发一定要懂运维技术,运维要懂开发技术,而是说两个工种要更紧密的协作,有共同 的目标:更快更可靠的构建、测试和发布软件。

这就意味着,对于运维来说,不再抵触开发的频繁更新部署,会帮助搭建自动化部署平台,提供自动化部署工具;对于开发来说,不再认为运维的工作和开发没关系,开发人员会邀请运维人员参与架构设计,帮助运维实现自动化脚本开发。

 

软件版本来说,包含两部分含义,一部分代表特定功能集合,一部分代表某一次特定的代码构建结果。为了明确标识软件版本,需要对版本进行编号。目前业界在软件版本的命名上,通常会采用以下方式: 主版本号 . 子版本号.[.修正版本号.[构建版本号]]

 

比如说:1.2.1、2.0、3.0.1 build-123

 

其中主版本号和子版本号用来标识功能变化,小的功能变化增加子版本号,大的功能变化增加主版本号。修 正版本号则表示功能不变化的情况下修复Bug,而构建版本号表示一次新的构建,这个通常由编译程序自动 生成。

 

Bug跟踪工具,采用结构化的数据来定义Bug,每一个Bug都有一些关键的信息可以对Bug进行分类和检索。可以非常直观的了解bug的情况。 

 

源代码管理工具也叫版本控制系统,是保存文件多个版本的一种机制。每一次有人提交了修改,这个修改历史都会被版本控制系统记录下来。

 

github中的pull request是合并请求,github flow强调的是一定要有一个稳定的master分支,所有的新建功能和修复bug都要创建一个新的分支,不能直接在master上做修改。 

 

集成:在多人软件项目开发的时候,每个人都会负责一部分功能模块的开发,集成指的就是每个人把自己开发的分支代码,合并到主干上,以便测试打包。

 

交付:软件产品在测试验收通过后,具备发布到生产环境交付给客户使用的条件。

 

部署:将代码发布到各种环境,比如部署测试环境以供测试。

 

持续集成:就是持续频繁地将代码从分支集成到主干,并且要保证在合并到主干之前,必须要通过所有的 自动化测试。

 

持续交付:则是基于持续集成,在自动化测试完成后,同时构建生成各个环境的发布包,部署到测试环 境,但生产环境的部署需要手动确认。

 

持续部署:是在持续交付的基础上,对生产环境的部署也采用自动化。

原文地址:https://www.cnblogs.com/cmpunk/p/11279170.html