DevOps开发运维管理探析_第1页
DevOps开发运维管理探析_第2页
DevOps开发运维管理探析_第3页
DevOps开发运维管理探析_第4页
DevOps开发运维管理探析_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

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

文档简介

1、 DevOps开发运维管理探析摘 要:由于传统IT部门的开发人员和运维人员之间存在目的差异,两个团队之间容易产生矛盾,这将导致内部合作产生摩擦、降低协作效率,甚至可能产生质量问题,延迟部署,进而影响了整个应用的交付运维。本文针对DevOps的应用开发运维,介绍其流程架构、不同过程的具体活动以及相关工具链工具,进而探讨了 DevOps的特点及其相对于传统应用程序生命周期管理的优势,阐述了基于DevOps方法论进行应用开发运维管理的意义。关键词:DevOps;应用生命周期管理;持续集成;持续部署目 录 TOC o 1-3 h z u HYPERLINK l _Toc14616642 一、DevOp

2、s简介 PAGEREF _Toc14616642 h 3 HYPERLINK l _Toc14616643 二、基于DevOps的开发运维管理流程 PAGEREF _Toc14616643 h 3 HYPERLINK l _Toc14616644 (一)DevOps流程活动 PAGEREF _Toc14616644 h 4 HYPERLINK l _Toc14616645 (二)DevOps持续集成的主要特点 PAGEREF _Toc14616645 h 5 HYPERLINK l _Toc14616646 (三)DevOps持续部署主要特点 PAGEREF _Toc14616646 h 7

3、HYPERLINK l _Toc14616647 三、DevOps工具链工具介绍 PAGEREF _Toc14616647 h 8 HYPERLINK l _Toc14616648 (一)开发任务管理 PAGEREF _Toc14616648 h 8 HYPERLINK l _Toc14616649 (二)版本管理 PAGEREF _Toc14616649 h 8 HYPERLINK l _Toc14616650 (三)单元测试 PAGEREF _Toc14616650 h 9 HYPERLINK l _Toc14616651 (四)静态代码检查 PAGEREF _Toc14616651 h

4、9 HYPERLINK l _Toc14616652 (五)质量反馈 PAGEREF _Toc14616652 h 9 HYPERLINK l _Toc14616653 (六)功能测试 PAGEREF _Toc14616653 h 9 HYPERLINK l _Toc14616654 四、结语 PAGEREF _Toc14616654 h 10当前,大数据、云计算、移动互联网发展正兴,软件需要以更快的速度和频率交付部署。在传统的应用程序生命周期管理(ALM)过程中,开发团队是根据其交付给最终用户的业务价值来衡量的,而运维管理是根据生产环境的健康和稳定性来衡量的。当两个团队 的目标不一致时,将会

5、产生矛盾,导致协作效率低下、产品交付延迟、产生质量问题等。引入DevOps不仅能解决上述矛盾,而且能提高应用本身的各项指标、质量,极大地提升用户体验,同时降低交付成本。一、DevOps简介DevOps是Development和Operations的结合,是传统的应用程序生命周期管理(ALM)过程的一种新方法,其本质是一种方法论。DevOps的焦点在于通过发展创造一个稳定快速的开发工作流程和IT运维,从而很好地融合开发和运维两个团队,消除两个团队之间的壁垒,改善和提升这两个业务单位之间的沟通和协作关系。其能将敏捷应用扩展到生产端,完成跨部门的设计、开发、运维支持工作,通过有效的自动化工具帮助团队

6、快速可靠地部署并进行创新,从而提高交付应用程序和服务的能力。DevOps一方面缩短系统的上市部署时间,另一方面又能减少系统缺陷,极大地提升系统的质量。DevOps由一系列基本原则和实践构成。其指导原则包括文化、测量、自动化和共享。DevOps通过开发、质量保证(QA)和运维团队的努力将应用开发和部署变成一个更精简的过程,按需发布并能及时发现和纠正现有的问题,而不影响其他服务。整个过程具有小批量、短迭代、快速反馈、自动化,其管理总体框架如图1所示。二、基于DevOps的开发运维管理流程DevOps开发运维管理包含以持续集成/部署为核心的一系列活动,高效的自动化贯穿整个生命周期。完善的流程、科学的

7、方法让每个团队紧密联合,应用交付连续稳定。其中,计划、编码、构建、测试属于持续集成阶段,计划、编码、构建、测试、发布、部署属于持续部署阶段,如图2所示。(一)DevOps流程活动计划:根据需求规划应用开发的功能,在项目管理中采用甘特图的形式对功能进行功能分解、任务分配。编码:开发人员根据功能分解、任务分配选取合适的语言进行编码。构建:编写脚本或者采用自动化工具将计算机源代码编译成二进制可运行代码的过程。在这一过程需要对代码进行质量检查以及单元测试。图1 DevOps管理总体框架测试:进行功能型和非功能性测试并形成测试报告,主要包括API互相调用测试、集成测试、UI测试、性能测试、压力测试、安全

8、测试等。发布:将测试通过的软件打包上传至软件仓库, 供各团队根据需要调用部署。部署:先部署到测试环境测试,再部署到准生产环境进行用户接受度测试,测试全部通过后再正式发布至生产环境。运维:运维人员对应用的运行进行各种监控、测量、分析、评估。在这个阶段会发现一些软件的问题或收到最终用户的新增、变更需求,运维人员需要将这些问题及需求反馈至计划阶段,重新迭代整个持续集成/部署流程。(二)DevOps持续集成的主要特点一是版本管理标准化。较成熟常用的是以GIT为内核的版本控制,首先在版本服务器上创建源码分支,先将代码提交至源码分支,再合并分支至主干。一方面可以按需灵活地增加程序功能,缩短应用迭代流程的时

9、间;另一方面可以准确地定位问题,简化调试。同时,版本自动化工具的使用使开发人员更加专注于编码,减少编码阶段出现bug的几率,从而提升代码质量。图2 基于DevOps的应用生命周期管理二是构建过程自动触发。版本管理服务器检测到有代码合并后会自动触发构建服务器,代码检测工具自动进行代码静态检查,减少了等待时间。自动化工具让代码的回滚、更新、配置、构造变得更加迅速,保证了软件的一致性,优化了流程效率。按需决定是否进行代码人工审查,可以根据用户或者运维人员对应用运行的安全性、稳定性、质量需求的要求,由上级主管或者系统工程师人工对代码进行更加严格的审查筛选,更好地满足代码质量要求。三是持续自动化测试。在

10、短迭代周期持续进行自动化回归测试,能完备地覆盖新旧功能,更快更全 地发 现软件bug,缩短问题的反馈周期,改善团队关系,提高协作效率。四是资源共享。将发布包存储至软件仓库, 可以进行反复调用并灵活地部署到测试环境,让发布和部署流程在某种程度上达到并行的效果,减少软件修复时间和产品上线时间。DevOps持续集成流程如图3所示。图3 DevOps持续集成流程(三)DevOps持续部署主要特点一是从软件版本控制到发布至用户手中为自动化流水线形式。顺序的自动化流程保证了软件的连续性,同时能提升持续部署的效率。二是对软件的每次变更都会经历标准的流程,这一流程包含构建软件以及后续一系列不同阶段的测试和部署

11、工作。迭代完备的流程使软件功能更便捷,同时也保证了软件质量的一致性。三是部署流水线支持查看并控制整个流程,包括每次变更被提交到版本控制库开始,直到各类测试和部署,再发布给用户的过程。开发人员和运维人员可以更高效地沟通软件功能需求、软件质量变化。DevOps持续部署流程如图4所示。图4 DevOps持续部署流程三、DevOps工具链工具介绍(一)开发任务管理Redmine是一个灵活的、跨平台、跨数据库的项目管理Web应用程序。其采用Ruby on Rails框架编写。主要有以下特征:多项目支持、灵活的基于角色的访问控制、柔性问题跟踪系统、甘特图和日历、新闻、文献、档案管理、进货和电子邮件通知、时

12、间跟踪、问题跟踪、时间条目、项目和用户的自定义字段、供应链管理集成、通过电子邮件创建问题、多LDAP身份验证支持、用户自注册支持、多语言支持、多数据库支持。(二)版本管理Git是一个开源分布式版本控制系统,可以高效管理项目版本,优于SCM工具,如SubVIEW,CVS,PrimCE和CaseCask,具有简单的本地分支、方便的分级区域和多个工作流的特性。(三)单元测试Junit是一个编写可重复测试的简单框架。它是单元测试框架中XUnice体系结构的一个实例,可以为问题、时间条目、项目和用户自定义字段,字段可以采用不同的格式:文本、日期、布尔、整数、下拉列表和复选框。(四)静态代码检查Check

13、style是一个自动检查源代码的工具,可以发现类设计问题、方法设计问题等,同时还可以检查代码布局和格式化的问题。(五)质量反馈Sonar是一个开源代码质量检查平台,其调用Junit,Checkstyle等代码质量检查工具进行代码质量测试和代码检查,然后以Web页面形式展示。同时,Sonar提供Eclipse插件,可以方便地在本地进行源代码的质量管理。(六)功能测试Selenium是一套完备的Web应用程序测试系统,能够测 试应用与浏览器的兼容性,创建衰退测试以检测软件功能及用户需求。Selen ium直接在浏览器中运行,支持当前各种主流浏览器如I E, Chrome,Firefox等。四、结语DevOps是原则和文化的统一,实施好DevOps需要摒弃传统应用开发中团队以自己为核心的观念,要以敏捷生产的思维、标准的流程管理链接各个团队, 使团队之间目标一致、协作高效。同时,自动化工具在整个DevOps应用生命周期中起着非常重要的作用,高度的自动化贯穿整个流程,提高了团队反应速度以及持续交付高质量应用的能力和速度。FTT 参考文献:Len Bass. DevO

温馨提示

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

评论

0/150

提交评论