《持续集成分享》PPT课件.pptx_第1页
《持续集成分享》PPT课件.pptx_第2页
《持续集成分享》PPT课件.pptx_第3页
《持续集成分享》PPT课件.pptx_第4页
《持续集成分享》PPT课件.pptx_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

,持续集成分享,佳都数据/运维部/何建来,前 言,随着软件开发复杂度的不断提高,团队开发成员间如何更好地协同工作以确保软件开发的质量已经慢慢成为开发过程中不可回避的问题。尤其是近些年来,敏捷(Agile) 在软件工程领域越来越红火,如何能再不断变化的需求中快速适应和保证软件的质量也显得尤其的重要。,目录,DevOps Essentials,CI/CD,持续集成工具介绍,2,如何持续集成,3,阶段计划,4,1,持续集成介绍,软件交付流程,传统开发人员工作回顾,每天的工作:编写代码、编译、运行单元测试、生成文档、打包和部署。工作内容多,而且琐碎。我们怎么才能把精力放在主要业务的实现和代码优化上呢? 如果我们编写的模块对外部系统的有依赖,那么软件集成也是一个问题,而且随着团队的人员的变动,就会对团队协作、软件质量、项目进度的把控提出了更多的要求。 项目过程的后期,系统集成测试发现BUG的返工较多,而且返工的工作量比前期发现BUG的返工工作量还大。 项目上线时,心中总是忐忑不安,拜托千万不要出错。,日常工作中遇到哪些问题? 琐碎的事情,占用了大量的时间?,传统站点部署流程,传统站点部署问题,上哪个版本,版本没错吧? XX请假了,怎么上线?手抖了 怕出线上问题啊 哪些库文件要改,DEV,BUSINESS,OPS,定义,持续集成是一种软件开发实践,即团队开发成员经常集成它们的工作,通常每个成员每天至少集成一次,也就意味着每天可能会发生多次集成。每次集成都通过自动化的构建(包括编译,发布,自动化测试)来验证,从而尽早地发现集成错误。 持续集成要求开发人员频繁地提交他们的所完成的工作产品,这个频率通常是至少每天一次,有时候可以多次。每次集成会通过自动化构建(automated build)的方式进行尽量快速地验证,以确保新提交的变化不会造成新的问题。如果在集成的过程中出现异常,则应当快速的反馈给相关的人员。 构建是将源代码放在一起,并验证软件可以作为一个一致的单元运行的过程;验证活动一般包括编译、测试、审查和部署。,意义,持续集成中的任何一个环节都是自动完成的,无需太多的人工干预,有利于减少重复过程以节省时间、费用和工作量; 持续集成保障了每个时间点上团队成员提交的代码是能成功集成的。换言之,任何时间点都能第一时间发现软件的集成问题,使任意时间发布可部署的软件成为了可能; 持续集成还能利于软件本身的发展趋势,这点在需求不明确或是频繁性变更的情景中尤其重要,持续集成的质量能帮助团队进行有效决策,同时建立团队对开发产品的信心。,要素,1. 统一的代码库 2. 自动构建 3. 自动测试 4. 每个人每天要向代码库主干提交代码 5. 每次代码递交后都会在持续集成服务器上触发一次构建 6. 保证快速构建 7. 模拟生产环境的自动测试 8. 每个人都可以很容易的获取最新可执行的应用程序 9. 每个人都清楚正在发生的状况 10. 自动化的部署,Jenkins,之前叫做Hudson,是基于Java开发的一种持续集成工具,用于监控秩序重复的工作,包括: 1、持续的软件版本发布/测试项目。 2、监控外部调用执行的工作。 Jenkins本身并没有自动构建的功能,Jenkins只是将JDK、Maven等工具集成起来,将持续集成的整个过程可视化。,什么是Jenkins,编译工具,Make工具 Linux或者Windows最原始的编译工具,在linux下编译程序常用make(Windows下对应的工具为nmake)。它负责组织构建的过程,负责指挥编译器如何编译,连接器如何连接,最后生成一个可用的文件。 2. Ant工具 Make编译一些比较复杂的工具使用起来不灵活,语法很难理解,延伸出ant工具。 3. Maven工具,Maven,Maven是一个项目管理工具,它包含了一个项目对象模型(Project Object Model),一组标准集合,一个项目生命周期(Project Lifecycle),一个依赖管理系统(Dependency Manangement System),和用来运行定义在生命周期阶段中插件目标的逻辑。 Maven是面向技术层面,针对Java开发项目管理工具,它提供了构建工具所提供功能的超集,除了构建功能之外,Maven还可以管理项目结构、管理依赖关系、生成报告、生成Web站点、有助于团队成员之间的交流与协作。可以理解为项目构建工具。,对象模型POM,Maven项目对象模型POM (Project Object Model),可以通过一小段描述信息来管理项目的构建,报告和文档的软件项目管理软件。Maven 除了以程序构建能力为特色之外,还提供高级项目管理工具。 POM是Maven项目中的文件,使用XML表示,名称叫做pom.xml。在Maven中,当谈到Project的时候,不仅仅是一堆包含代码的文件。一个Project往往包含一个配置文件,包括了与开发者有关的,缺陷跟踪系统,组织与许可,项目的URL,项目依赖,以及其他。它包含了所有与这个项目相关的东西。事实上,在Maven世界中,project可以什么都没有,甚至没有代码,但是必须包含pom.xml文件。,Pom.xml文件,groupId : 组织标识,通常是独一无二的。例如,一家银行银行集团拥有所有银行相关项目 artifactId : 项目名称, version : 版本号,例如:1.0, packaging : 打包的格式,可以为:pom , jar , war , ear , rar , par,Maven的价值,指导开发:提供了Java项目的最佳开发实践,自由开发项目骨架而可自动生成项目结构 自动编译:不仅仅只像Ant自动编译,还包括测试,打包,发布,文档生成,项目站点生成 依赖管理:Maven可以方便地管理应用程序依赖,例如第三方依赖、模型依赖 无限扩展:插件模式可以无限增强Maven功能,例如通过Tomcat、Jetty插件可以自由控制其服务器 持续集成:鼓励开发者积极提交代码,更早地发现程序错误,在并行开发中稳妥推进 开发协作:更简单和谐的团队协作,持续集成系统的组成,一个完整的构建系统必须包括: 一个自动构建过程,包括自动编译、分发、部署和测试等。 一个代码存储库,即需要版本控制软件来保障代码的可维护性,同时作为构建过程的素材库。 一个持续集成服务器。本文中介绍的 J

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论