持续集成分享课件.ppt

  1. 1、本文档共30页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
持续集成分享课件.ppt

持续集成分享 佳都数据/运维部/何建来 前 言 随着软件开发复杂度的不断提高,团队开发成员间如何更好地协同工作以确保软件开发的质量已经慢慢成为开发过程中不可回避的问题。尤其是近些年来,敏捷(Agile) 在软件工程领域越来越红火,如何能再不断变化的需求中快速适应和保证软件的质量也显得尤其的重要。 目录 DevOps Essentials CI/CD 持续集成工具介绍 2 如何持续集成 3 阶段计划 4 1 持续集成介绍 软件交付流程 需求 部署 开发 传统开发人员工作回顾 每天的工作:编写代码、编译、运行单元测试、生成文档、打包和部署。工作内容多,而且琐碎。我们怎么才能把精力放在主要业务的实现和代码优化上呢? 如果我们编写的模块对外部系统的有依赖,那么软件集成也是一个问题,而且随着团队的人员的变动,就会对团队协作、软件质量、项目进度的把控提出了更多的要求。 项目过程的后期,系统集成测试发现BUG的返工较多,而且返工的工作量比前期发现BUG的返工工作量还大。 项目上线时,心中总是忐忑不安,拜托千万不要出错。 日常工作中遇到哪些问题? 琐碎的事情,占用了大量的时间? 传统站点部署流程 不通过 需求分析 原型设计 开发代码 提交测试 内网部署 内网测试是否通过 外网部署 备份数据 外网测试 代码回滚 确认上线 发布成功 通过 不通过 通过 传统站点部署问题 上哪个版本,版本没错吧? XX请假了,怎么上线?手抖了…… 怕出线上问题啊… 哪些库文件要改… 每月都有那么几次!!版本上线已经成为项目组的心魔 我们的Dev&Ops 别人家Dev&Ops DEV BUSINESS OPS 1 持续集成介绍 定义 持续集成是一种软件开发实践,即团队开发成员经常集成它们的工作,通常每个成员每天至少集成一次,也就意味着每天可能会发生多次集成。每次集成都通过自动化的构建(包括编译,发布,自动化测试)来验证,从而尽早地发现集成错误。 持续集成要求开发人员频繁地提交他们的所完成的工作产品,这个频率通常是至少每天一次,有时候可以多次。每次集成会通过自动化构建(automated build)的方式进行尽量快速地验证,以确保新提交的变化不会造成新的问题。如果在集成的过程中出现异常,则应当快速的反馈给相关的人员。 构建是将源代码放在一起,并验证软件可以作为一个一致的单元运行的过程;验证活动一般包括编译、测试、审查和部署。 意义 持续集成中的任何一个环节都是自动完成的,无需太多的人工干预,有利于减少重复过程以节省时间、费用和工作量; 持续集成保障了每个时间点上团队成员提交的代码是能成功集成的。换言之,任何时间点都能第一时间发现软件的集成问题,使任意时间发布可部署的软件成为了可能; 持续集成还能利于软件本身的发展趋势,这点在需求不明确或是频繁性变更的情景中尤其重要,持续集成的质量能帮助团队进行有效决策,同时建立团队对开发产品的信心。 要素 1. 统一的代码库  2. 自动构建     3. 自动测试     4. 每个人每天要向代码库主干提交代码     5. 每次代码递交后都会在持续集成服务器上触发一次构建     6. 保证快速构建     7. 模拟生产环境的自动测试     8. 每个人都可以很容易的获取最新可执行的应用程序     9. 每个人都清楚正在发生的状况     10. 自动化的部署 持续集成工具介绍 2 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开发项目管理工具,它提供了构

文档评论(0)

liuxiaoyu98 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档