没有合适的资源?快使用搜索试试~ 我知道了~
在使用持续集成之前,很多开发团队都是用每日构建(nightlybuild)。当时,微软使用这个实践很多年了。谁破坏了构建,就要负责监视后续的构建构成,直至发现下一个破坏了构建的人。对于大多数项目来说,采纳持续集成实践是向高效率和高质量迈进的一大步。它保证那些创建大型复杂系统的团队具有高度的自信心和控制力。一旦代码提交引入了问题,持续集成就能为我们提供快速的反馈,从而确保我们作为一个团队所开发的软件是可以工作的。持续集成的主要关注对象是开发团队。持续集成系统的输出通常作为手工测试流程和后续发布流程的输入。在软件的发布过程中,很多浪费来自于测试和运维环节。例如:我们常常看到:1.构建和运维团队的人
资源推荐
资源详情
资源评论























持续集成方案持续集成方案
持续集成的前身:
在使用持续集成之前,很多开发团队都是用每日构建(nightly build)。当时,微软使用这个实践很多年了。谁破坏了构建,就要
负责监视后续的构建构成,直至发现下一个破坏了构建的人。
为什么要使用持续集成?
对于大多数项目来说,采纳持续集成实践是向高效率和高质量迈进的一大步。它保证那些创建大型复杂系统的团队具有高度的
自信心和控制力。一旦代码提交引入了问题,持续集成就能为我们提供快速的反馈,从而确保我们作为一个团队所开发的软件
是可以工作的。
持续集成的主要关注对象是开发团队。持续集成系统的输出通常作为手工测试流程和后续发布流程的输入。在软件的发布过程
中,很多浪费来自于测试和运维环节。
例如:我们常常看到:
1.构建和运维团队的人员一直在等待说明文档或缺陷修复
2.测试人员等待"好的"版本构建出来
3.在新功能开发完成一段时间后,才收到缺陷报告
4.开发完成时,才发现当前的软件架构无法满足该系统的一些非功能需求
持续集成的一些实践:
采取一种更完整的端到端的方法来交付软件。我们通过一键式方式把软件的某个版本部署好,甚至可以将其一键式部署到生成
环境中,这样就可以建立了一个非常有效的反馈环--由于很容易将应用程序部署到测试环境中,所以团队可以同时得到软件功
能和部署流程两个方面的快速反馈。因为部署流程(无论是测试,集成)都是自动化的,所以可以频繁且有规律的运行并被测
试,从而降低发布风险,也降低了向开发团队传递有关部署流程的知识时的风险。
从精益的角度来看,我们实现了一个"拉式系统",测试团队只要自己单击按钮,就能轻松部署。管理人员也能容易得到一些关
键的度量指标,比如周期时间,吞吐量以及代码质量。
持续集成主要内容包括:
1.将软件构建、集成、测试和部署全面实现自动化
2.在团队和组织级别实现部署流水线
3.改进开发人元、测试人员和运维人员间的协作
4.在大型分布式团队中增量并发开发软件功能
5.实施高效的配置管理策略
6.分析并实现自动化验收测试
7.容量测试和其他非功能需求的测试
8.实现持续部署和零停机发布
9.管理基础设施、数据、组件和依赖
风险管理、符合度和审计
一.构建
什么是构建:
在现代软件学中,可能经常听到CMMI,ISO(大型团队)、中小型团队(敏捷开发、XP编程)

构建工具:MSBuild、Maven、Ant、NAnt、Gradle
Unit是整个金字塔的基石(在建筑行业,基石是做建筑物基础的石头),如果基石不稳,Service和UI何谈有构建意义呢?只
有基石稳如磐石,上层建筑才够坚固。
本来想拿瑞士做钟表的例子来说明下,但同事说的汽车例子更好。一辆汽车由许多配件组成,如果有以下两种选择,你会选择
哪个呢?
1. 所有单元配件没有测试过,在4S店,销售人员告诉你:刚组装好,已经开了一天,能跑起来,你可以试试;
2. 所有单元配件在生产过程已经经过严格测试,在4S点,销售人员告诉你,已经通过国家认证,出厂合格,有质量保证,你
可以试试;
MSBuild 是 Microsoft 和 Visual Studio的生成系统。它不仅仅是一个构造工具,应该称之为拥有相当强大扩展能力的自动化平
台。MSBuild平台的主要涉及到三部分:执行引擎、构造工程、任务。其中最核心的就是执行引擎,它包括定义构造工程的规
范,解释构造工程,执行“构造动作”;构造工程是用来描述构造任务的,大多数情况下我们使用MSBuild就是遵循规范,编写
一个构造工程;MSBuild引擎执行的每一个“构造动作”就是通过任务实现的,任务就是MSBuild的扩展机制,通过编写新的任
务就能够不断扩充MSBuild的执行能力。所以这三部分分别代表了引擎、脚本和扩展能力。
二.版本控制
配置管理:使用版本控制
版本控制系统(源代码控制管理系统)是保存文件多个版本的一种机制。一般来说,包括Subversion、Git在内的开源工具就
可以满足绝大多数团队的需求。所有的版本控制系统都需要解决这样一个基础问题: 怎样让系统允许用户共享信息,而不会让
他们因意外而互相干扰?
如果没有版本控制工具的协助,在开发中我们经常会遇到下面的一些问题:
一、 代码管理混乱。
二、 解决代码冲突困难。
三、 在代码整合期间引入深层BUG。
四、 无法对代码的拥有者进行权限控制。
五、 项目不同版本发布困难。
对所有内容都进行版本控制
版本控制不仅仅针对源代码,每个与所开发的软件相关的产物都应该被置于版本控制下,应当包括:源代码、测试代码、数据
库脚本、构建和部署脚本、文档、web容器(tomcat的配置)所用的配置文件等。

保证频繁提交可靠代码到主干
频繁提交可靠、有质量保证的代码(编译通过是最基本要求),能够轻松回滚到最近可靠的版本,代码提交之后能够触发持续
集成构建,及时得到反馈。
提交有意义的注释
强制要求团队成员使用有意义注释,甚至可以关联相关开发任务的原因是。当构建失败后,你知道是谁破坏了构建,找到可能
的原因及定位缺陷位置。这些附加信息,可以缩短我们修复缺陷的时间。示例:团队使用了svn和redmine。
有可以加强的部分
1.Git要求每次提交都必须写提交说明,可以借鉴
2.测试代码、数据库脚本单独分支
3.构建脚本化
三.部署
3.1 最基本的部署流水线
这个流程的起点是开发人员向版本控制库提交代码。此时,持续集成系统对这次提交做出响应,触发该流水线的一个实例。
第一个阶段会编译代码,运行单元测试,执行代码分析,创建软件二进制包。如果所有的单元测试都通过了,并且代码符合编
码标准,就将可执行代码打包成可执行文件,并放到一个制品库里中。有些在提交而极端,还会执行另外一些任务,比如为验
收测试准备数据库。
第二个阶段由运行时间较长的自动化验收测试组成。所以持续集成服务器最好支持将测试分成多组的做法,以便在构建网络中
并行执行任务,提高执行效率。这个阶段在第一个阶段完成后自动触发的。
部署流水线可能有分支出现,这样就可以将该构建版本独立部署到多个不同的环境中,比如部署到用户验收环境、容量测试环
剩余15页未读,继续阅读
资源评论


weixin_38617602
- 粉丝: 7
上传资源 快速赚钱
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- 如何通过AI+数智应用确保科技平台的可持续发展?.docx
- 如何通过AI+数智应用手段解决科技平台资源匮乏与服务低效难题?.docx
- 如何通过AI+数智应用手段提升科技服务的有效性和覆盖面?.docx
- 如何通过AI+数智应用显著提升技术转移的成功率?.docx
- 如何通过AI+数智应用助力技术转移服务突破传统模式瓶颈?.docx
- 如何在企业创新中借助AI+数智应用打造高效的数智空间?.docx
- 什么是需求导向的AI+数智应用技转服务平台,能帮助政府解决哪些问题?.docx
- 什么样的AI+数智应用科技管理服务能满足政府对科技发展的要求?.docx
- 数字化技术转移机构如何利用AI+数智应用破局?.docx
- 为什么政府需要通过AI+数智应用赋能管理?.docx
- 需求导向的AI+数智应用技转服务如何确保科技平台资源的丰富性与有效性?.docx
- 在科技活动里,政府如何借助AI+数智应用服务提升区域科技创新效率?.docx
- 在可持续发展视角下,科技平台如何利用AI+数智应用规划未来路径?.docx
- 怎样的AI+数智应用科技管理模式适合现代政府对科技工作的要求?.docx
- 政府举办科技活动时,如何借助AI+数智应用活动服务商提升活动效率?.docx
- 政府科技活动如何借助AI+数智应用实现智能化管理?.docx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈



安全验证
文档复制为VIP权益,开通VIP直接复制
