版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、前 言随着软件开发复杂度的不断提高,团队开发成员间如何更好地协同工作以确保软件开发的质量已经慢慢成为开发过程中不可回避的问题。尤其是近些年来,敏捷(Agile) 在软件工程领域越来越红火,如何能再不断变化的需求中快速(kui s)适应和保证软件的质量也显得尤其的重要。第1页/共30页第一页,共31页。目录(ml)DevOps EssentialsCI/CD 持续(chx)集成工具介绍2如何(rh)持续集成3阶段计划41持续集成介绍第2页/共30页第二页,共31页。软件交付(jiof)流程 需求部署开发第3页/共30页第三页,共31页。传统开发人员工作(gngzu)回顾 每天的工作:编写代码、编
2、译、运行单元测试、生成文档、打包和部署。工作内容多,而且琐碎。我们怎么才能把精力放在主要业务的实现和代码优化上呢?如果我们编写的模块对外部系统的有依赖,那么软件集成也是一个问题,而且随着团队的人员的变动,就会对团队协作、软件质量、项目进度的把控提出了更多的要求。项目过程的后期,系统集成测试发现BUG的返工(fn gng)较多,而且返工(fn gng)的工作量比前期发现BUG的返工(fn gng)工作量还大。项目上线时,心中总是忐忑不安,拜托千万不要出错。日常工作中遇到哪些问题?琐碎的事情,占用(zhn yn)了大量的时间?第4页/共30页第四页,共31页。传统(chuntng)站点部署流程 不
3、通过需求分析原型设计开发代码提交测试内网部署内网测试是否通过外网部署备份数据外网测试代码回滚确认上线发布成功通过不通过通过第5页/共30页第五页,共31页。传统(chuntng)站点部署问题 上哪个版本,版本没错吧?XX请假了,怎么上线?手抖了怕出线上问题(wnt)啊哪些库文件要改每月都有那么几次!版本上线已经成为项目组的心魔第6页/共30页第六页,共31页。 我们的Dev&Ops第7页/共30页第七页,共31页。 别人家Dev&OpsDEVBUSINESSOPS第8页/共30页第八页,共31页。1持续集成介绍第9页/共30页第九页,共31页。定义(dngy) 持续集成是一种软
4、件开发实践,即团队开发成员经常集成它们的工作,通常每个成员每天至少集成一次,也就意味着每天可能会发生多次集成。每次集成都通过自动化的构建(包括编译,发布,自动化测试)来验证,从而尽早地发现集成错误。持续集成要求开发人员频繁地提交他们的所完成(wn chng)的工作产品,这个频率通常是至少每天一次,有时候可以多次。每次集成会通过自动化构建(automated build)的方式进行尽量快速地验证,以确保新提交的变化不会造成新的问题。如果在集成的过程中出现异常,则应当快速的反馈给相关的人员。构建是将源代码放在一起,并验证软件可以作为一个一致的单元运行的过程;验证活动一般包括编译、测试、审查和部署。
5、 第10页/共30页第十页,共31页。意义(yy)1. 持续集成中的任何一个环节都是自动完成的,无需太多的人工干预,有利于减少重复过程以节省时间、费用和工作量;2. 持续集成保障了每个时间点上团队成员提交的代码是能成功集成的。换言之,任何时间点都能第一时间发现软件的集成问题,使任意时间发布可部署的软件成为了可能(knng);3. 持续集成还能利于软件本身的发展趋势,这点在需求不明确或是频繁性变更的情景中尤其重要,持续集成的质量能帮助团队进行有效决策,同时建立团队对开发产品的信心。第11页/共30页第十一页,共31页。要素(yo s) 1. 统一的代码库2. 自动构建 3. 自动测试 4. 每个
6、人每天要向代码库主干提交代码 5. 每次代码递交后都会在持续集成服务器上触发一次构建 6. 保证(bozhng)快速构建 7. 模拟生产环境的自动测试 8. 每个人都可以很容易的获取最新可执行的应用程序 9. 每个人都清楚正在发生的状况 10. 自动化的部署 第12页/共30页第十二页,共31页。持续集成工具介绍2第13页/共30页第十三页,共31页。 Jenkins,之前叫做Hudson,是基于Java开发的一种持续集成工具,用于监控秩序重复(chngf)的工作,包括:1、持续的软件版本发布/测试项目。2、监控外部调用执行的工作。Jenkins本身并没有自动构建的功能,Jenkins只是将J
7、DK、Maven等工具集成起来,将持续集成的整个过程可视化。什么(shn me)是Jenkins 第14页/共30页第十四页,共31页。编译(biny)工具 1. Make工具2. Linux或者Windows最原始的编译工具,在linux下编译程序常用make(Windows下对应的工具为nmake)。它负责组织构建的过程,负责指挥编译器如何编译,连接器如何连接,最后生成一个可用的文件。3. 2. Ant工具4. Make编译一些比较复杂的工具使用起来(q li)不灵活,语法很难理解,延伸出ant工具。5. 3. Maven工具第15页/共30页第十五页,共31页。Maven Maven是一
8、个项目管理工具,它包含了一个项目对象模型(Project Object Model),一组标准集合,一个项目生命周期(Project Lifecycle),一个依赖管理系统(Dependency Manangement System),和用来运行定义在生命周期阶段中插件目标的逻辑。Maven是面向技术层面,针对Java开发项目管理工具,它提供(tgng)了构建工具所提供(tgng)功能的超集,除了构建功能之外,Maven还可以管理项目结构、管理依赖关系、生成报告、生成Web站点、有助于团队成员之间的交流与协作。可以理解为项目构建工具。第16页/共30页第十六页,共31页。对象(duxing)模
9、型POMMaven项目对象模型POM (Project Object Model),可以通过一小段描述信息来管理项目的构建,报告和文档的软件项目管理软件。Maven 除了以程序构建能力为特色之外,还提供高级项目管理工具。POM是Maven项目中的文件,使用XML表示,名称叫做pom.xml。在Maven中,当谈到Project的时候,不仅仅是一堆包含代码(di m)的文件。一个Project往往包含一个配置文件,包括了与开发者有关的,缺陷跟踪系统,组织与许可,项目的URL,项目依赖,以及其他。它包含了所有与这个项目相关的东西。事实上,在Maven世界中,project可以什么都没有,甚至没有代
10、码(di m),但是必须包含pom.xml文件。第17页/共30页第十七页,共31页。Pom.xml文件(wnjin)groupId : 组织标识,通常是独一无二的。例如(lr),一家银行银行集团拥有所有银行相关项目artifactId : 项目名称,version : 版本号,例如(lr):1.0,packaging : 打包的格式,可以为:pom , jar , war , ear , rar , par第18页/共30页第十八页,共31页。Maven的价值(jizh) 指导开发:提供了Java项目的最佳开发实践,自由开发项目骨架而可自动生成项目结构自动编译:不仅仅只像Ant自动编译,还包
11、括测试,打包,发布,文档生成,项目站点生成依赖管理:Maven可以方便地管理应用程序依赖,例如第三方依赖、模型依赖无限扩展:插件模式可以无限增强Maven功能,例如通过Tomcat、Jetty插件可以自由控制其服务器持续集成:鼓励开发者积极提交代码,更早地发现(fxin)程序错误,在并行开发中稳妥推进开发协作:更简单和谐的团队协作第19页/共30页第十九页,共31页。如何持续集成3第20页/共30页第二十页,共31页。持续(chx)集成系统的组成 一个完整的构建系统必须包括:一个自动构建过程,包括自动编译、分发、部署(b sh)和测试等。一个代码存储库,即需要版本控制软件来保障代码的可维护性,
12、同时作为构建过程的素材库。一个持续集成服务器。本文中介绍的 Jenkins 就是一个配置简单和使用方便的持续集成服务器。第21页/共30页第二十一页,共31页。持续集成(j chn)流程 第22页/共30页第二十二页,共31页。持续集成(j chn)详细流程 第23页/共30页第二十三页,共31页。成果(chnggu)展示 第24页/共30页第二十四页,共31页。阶段计划4第25页/共30页第二十五页,共31页。级别环境和部署流程管理配置管理构建和持续集成开发测试质量运维监控和度量原始阶段纯手工过程部署软件系统、配置环境,不能频繁部署、过程不可靠流程流转靠人的经验管理来完成部分文件使用版本控制
13、,签入代码不频繁纯手工方式构建,缺少管理和报告手工测试人工监控为主,自动监控为辅基础阶段自动化部署到某些环境,创建一套新环境比较简单快捷,过程相对可靠需求、开发、运维之间交换有规范、不存在信息遗漏所有构建软件系统所需的东西都纳入版本控制,包括源代码、配置、构建脚本、部署构建、数据脚本等定时或人工触发自动化构建部分自动化测试监控作为常态化运维保障工作,故障发生时通过邮件、短信等方式及时通知可持续阶段全自动化、提供自助服务式的部署方式,每个环境的部署都共用同一个过程各个环境流程管理是闭环,并在平台中管理,环节之间流转具备自动化能力库和依赖也被管理起来每次变更提交都会触发自动化构建和测试自动化单元、
14、接口、UAT测试有统一的监控平台,并能对监控数据进行分析和异常定位成熟阶段完全自动化,实现端到端的交付从平台上可以看到整个过程的信息频繁签入代码,开发人员每天至少签入一次代码到主分支收集构建度量及测试结果数据,并进行可视化分析和展示质量度量和趋势跟踪,自动化测试可以覆盖的都采用自动化测试所有系统都纳入统一监控平台,开发运维可通过监控平台提升系统可靠性管理优化阶段所有资源和环境都会高效的管理起来,自动化地配置管理,提供统一的PaaS服务平台提供虚拟化、容器化的资源团队从需求、开发、测试、部署、运维,所有工具和管理都在一个平台,可管理、可流转、可追溯支持高效的协作、快速开发、可审计的变更管理流程持
15、续改进流程,优化反馈机制,提高透明度几乎没有生产回退、缺陷能及时发现和修复系统监控和业务反馈及时,快速进行优化提升成熟度模型(mxng)第26页/共30页第二十六页,共31页。第一阶段:核心实践和试点第二阶段:持续集成和测试第三阶段:持续部署和交付第四阶段:持续运维第五阶段:持续评估(pn )改进阶段(jidun)实施第27页/共30页第二十七页,共31页。DevOps指标金字塔运维效率服务质量服务速度组织效能客户价值经营业绩收益资金流市场份额新的业务服务支持交付时间用户满意度响应时间净推荐值/口碑分享合作响应变化意志和情绪生产支持部署成功率故障恢复时间生命周期时间部署频率每次交付成本变更和发布的成本支持的用户数支持的服务器数指标(zhbio)金字塔第28页/共30页第二十八页,共31页。Thank You第29页/共30页第二十九页,共31页。感谢您的观看(gunkn)!第30页/共30页第三十页,共31页。No
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 唐山学院《现代基础化学》2024-2025学年第二学期期末试卷
- 中山大学《学校乐队编排与指挥I》2024-2025学年第二学期期末试卷
- 机关单位内部督办制度
- 机场内部人员挂牌制度
- 上海海洋大学《绘本与插画创作》2024-2025学年第二学期期末试卷
- 营口职业技术学院《微生物资源保护与利用》2024-2025学年第二学期期末试卷
- 检察院采购内部控制制度
- 每日优鲜内部管理制度
- 民德班级内部管理制度
- 沐足内部安全管理制度
- 水库工程蓄水安全鉴定报告
- 学堂在线2024秋《英文学术论文写作与发表技巧》课后试题及答案
- 无神论宣讲少先队活动
- 四年级下册科学全册知识点归纳
- 整厂物品设备回收合同
- 大一美术学解刨透视知识点
- 盘扣式脚手架专项施工方案
- 北斗手持机操作教案
- 侧面碰撞保护-动态性能要求(FMVSS 214)
- 互联网+大赛路演PPT制作
- 2023年安徽省检察机关招聘聘用制书记员623人笔试备考题库及答案解析
评论
0/150
提交评论