软件工程硕士论文

您当前的位置:学术堂 > 毕业论文 > 在职硕士论文 > 工程硕士论文 > 软件工程硕士论文 >

软件项目测试与运维中DevOps的应用探究

来源:电子科技大学 作者:郭健
发布于:2020-04-29 共5394字
  摘 要
  
  对于以软件产品及相关服务作为主营业务的企业来说,快速交付高质量的软件应用是在市场上发展的前 。随着互联网时代的到来,与传统基于 PC 环境的桌面应用软件相比,市场对基于 Web 的互联网应用软件 出了更高的要求:既需要像传统软件一样快速高效地完成开发,还需要即时快速的部署上线,面对客户持续的反馈进行改进,同时还应保障线上服务的稳定性。

软件项目测试与运维中DevOps的应用探究
 
  
  国内外对软件企业的项目管理有了很多的研究,通过能力成熟度模型 CMM 对软件企业的开发过程进行改进,通过敏捷方法实践如 Scrum、XP 和极限编程等框架 高软件开发的效率等。目前这些针对软件项目管理的各类研究,都主要集中在软件的开发过程改进,而对与开发密切相关的测试与运维过程研究较少。本论文的研究主题是通过 DevOps 理论与实践对基于 Web 的互联网软件项目测试与运维过程进行改进,进而达到 高软件项目整体交付效率, 升软件企业市场竞争力的目的。
  
  本文首先对软件项目管理的历史和发展进行了回顾,介绍了软件项目管理的特点和各类软件过程管理模型;然后简述了与 DevOps 密切相关的丰田精益生产、敏捷宣言及体现敏捷原则的开发方法;接下来从软件项目整体价值流的角度说明了敏捷开发的不足以及 DevOps 在互联网软件项目测试与运维过程中的价值,总结了 DevOps 在国内外的发展历史和现状,简述了 DevOps 的三个核心原则;再以作者所在企业 D 公司的互联网应用软件项目为背景,梳理总结了项目当前所存在的突出问题,采用项目管理工具与技术对其进行了分析;最后,采用 DevOps 理念和工具对项目存在的诸多问题进行改进实践并对效果进行了评估,肯定了 DevOps 在软件项目管理方面起到的积极作用,希望研究成果能对企业其他同类型项目以及国内其他企业的类似软件项目 供帮助。
  
  关键词:  软件项目管理,敏捷开发,DevOps。
  
  ABSTRACT
  
  For enterprises with software products and related services as their main business,rapid delivery of high-quality software applications is a prerequisite for the development of the market. With the advent of the Internet age, the market has placed higher demands on Web-based Internet applications than traditional PC-based desktop applications: both the need to complete development as quickly and efficiently as traditional software, and to deploy quickly and immediately, improving in the face of continuous customer feedback.At the same time, the stability of online services should be guaranteed.
  
  There has been a lot of research on the project management of software enterprises at home and abroad, and the development process of software enterprises is improved by the capability maturity model CMM, and the efficiency of software development is improved through agile method practices such as Scrum, XP and extreme programming.At present, these researches on software project management are mainly focused on the improvement of software development process, while the research on the test and operation process closely related to development is less. The research theme of this paper is to improve the testing and operation process of Web-based Internet software project through DevOps theory and practice, so as to improve the overall delivery efficiency of software projects and enhance the competitiveness of software enterprises in the market.
  
  This paper first reviews the history and development of software project management, introduces the characteristics of software project management and various software process management models, and then brieflydescribesToyota Lean Production,The Agile Manifesto and development methods that embody agile principles closely related to DevOps. Next, from the perspective of the overall value stream of software projects, the shortcomings of agile development and the value of DevOps in the process of testing and operation of Internet software projects are explained, and the development history and current situation of DevOps at home and abroad are summarized, and the three core principles of Dev O psare de scribed in detail.Again, with theauthor's enterprise D company's Internet application software project as the background, combed and summarized the outstanding problems existing in the project, using the project management tools and technology to analyze it, and finally, using DevOps concept and tools to improve the project's problems and evaluate the effectiveness, It affirmed the positive role of DevOps in software project management, and hoped that the researchresults would help other similar projects of the same type as well as similar software projects in other enterprises in China.
  
  Key words:   software project management, agile software development, DevOps.
  
  第一章 绪 论
 
  
  1.1 研究背景与意义。

  
  软件项目是采用计算机编写软件程序以及撰写技术文档将设计实现的过程。
  
  软件项目与实体类型的项目存在着很大的差异,在软件的开发过程中程序设计占了很大的比例。软件开发对实体资源几乎没有要求,唯一关键的资源就是软件开发人员。软件项目的产出物一般都是应用程序和文档,并没有类似于建筑或桥梁等实体的物质结果。由于这两种情况的存在,针对软件项目所需的项目管理方式与其他类型的项目相比,具有很大的特殊性。与其他类型的项目不同,软件项目管理更多的是对过程进行管理。同时,不同类型和规模的软件开发组织、不同类型的软件产品开发需求,导致了软件项目的管理差异性很大。因此,软件项目管理与其他项目管理相比,有很大的独特性,主要反映在软件项目管理是对过程的管理,很难有一种通用的软件项目管理的模型或流程能够适用于各种软件组织和各种类型软件的开发。
  
  通过对国内外长期以来软件项目管理的理论研究的结果分析,发现可以概述为以下几种类型:综合多种类型的软件项目所得出的研究结论;项目管理技术和工具的运用;将其他领域知识运用于软件项目管理过程,像将数学公式运用于风险分析。以上所述的几种类型,大部分仅在理论层面开展了部分探讨,在软件项目的应用实践上较少。
  
  软件行业的标准、指导框架在不断的丰富,比如 ISO/IEC 的标准、SEI 的 CMM模型[1]、微软的 MSF[2]、IBM 的 RUP[3]等,这些模型与理论都有各自的局限性。在国内现阶段较为普遍应用的是 ISO 质量管理体系以及 CMM/CMMI 软件能力成熟度认证体系。ISO 较为侧重于质量管理,在制造行业的应用较为广泛,而CMM/CMMI 更多倾向于软件开发中的过程管理,都没有涵盖项目管理所包含的整体。这两大理论对于国内绝大部分软件企业来说,系统实施所需成本较高。实施软件项目应该在过程管理的基础上,合理、适度采用项目管理方法所 供的各类技术,让项目遵循计划内的各类指标完成。
  
  近年来在大型软件企业和创业型软件公司风靡的敏捷开发,倡导使用多个冲刺周期以应对市场需求的不断变化,同时鼓励开发团队的松散型组织与管理方式。敏捷方法从海外传至国内,逐渐成为了 IT 行业主流的开发方式。
  
  进入二十一世纪,互联网行业获得了飞速发展,运行在互联网上的 Web 应用软件呈爆发式增长。与基于 PC 的桌面应用软件相比,基于 Web 的互联网应用软件需要部署在服务器上,其软件架构、配置环境和测试方式更复杂,实时性和稳定性的要求也更高。在当今的市场上,客户要求每周甚至每天都能发布一个版本,即使软件主体开发迅速完成,在软件发布和部署的过程中频繁失败,或者上线之后出现各类质量问题,都会严重影响客户满意度和软件企业的声誉。
  
  在基于 Web 的互联网软件项目开展过程中,仅仅做到快速开发还是不够的,如何在缩短软件开发周期的同时,保证产品的质量, 高软件部署的频率,持续获取客户的反馈,是互联网应用软件项目要解决的核心问题。传统的项目管理流程和软件开发模型是很难完成这一任务的,这就需要采用新兴的软件技术与工具来改进软件项目中的运维和测试过程。
  
  然而无论是何种软件技术与工具,都依赖于一个沟通默契、协作顺畅的团队,而项目管理才是这一切的基础。先进的软件开发技术与工具只是 高软件开发水平和获得高质量软件产品的重要保证,如何灵活合理应用先进的开发技术,将之融合到项目管理的知识领域中发挥它们最大的功能作用才是关键。唯有较好地融合软件开发方法,将之利用于项目管理领域中,才能够着眼于快速开展软件项目,交付高质量的软件,做到令客户满意。
  
  因此,需要通过软件项目管理,建立起项目所需的运行环境,各类先进的软件开发方法和技术框架,才能最大限度地发挥它们的功效,在 高软件开发效率、升软件产品质量等方面起到积极作用。
  
  DevOps 一词来自于 Development 和 Operations 的组合,是指在软件及相关服务的研发及交付过程中,将软件的需求、开发、测试、部署和运营统一起来,基于整个组织的协作和应用架构的优化,实现敏捷开发、持续交付和应用运营的无缝集成。帮助企业 升 IT 效能,在保证稳定的同时,快速交付高质量的软件及服务,灵活应对快速变化的业务需求和市场环境。DevOps 强调开发和运维人员之间的交流与协作,通过各类自运维方式将软件从前期构建到最终发布的过程变得高效与稳定。DevOps 是一个关于团队价值、自动化、持续改进等方面的综合理论体系,是软件项目开发、运维和质量保证三个部门之间进行合作、联系的框架。DevOps可以让整个组织用一致的手段对软硬件运行环境进行管理,在任意时刻都能顺利地进行部署工作,从企业价值流的整体角度出发,增强了项目开展过程中成员之间的交流与协作。
  
  目前在国外,互联网巨头如 Google、Facebook、Amazon、LinkedIn、Netflix、Airbnb,传统软件公司如 Adobe、IBM、Microsoft、SAP 等,亦或是网络业务非核心企业如苹果、索尼、星巴克均运用了 DevOps 或对其 供了相关支持[4]。在云计算、大数据和移动互联这三大浪潮面前,更有效地管理和整合现有资源,进行更快速的应用交付对于任何一个企业来说都是一个挑战。目前,其在国内的发展方兴未艾,尽管如 BAT 和华为等一些知名企业开始逐渐大量引入 DevOps[5],但大部分企业并没从业务整体的角度意识到 DevOps 所能带来的收益。DevOps 的初衷就是消除开发与运维两个传统上孤立的团队之间的壁垒,而有些组织甚至没有独立的开发团队和运营团队,工程师可能身兼两职。
  
  通过对比来看,目前 DevOps 在中国的发展还处于起步阶段。
  
  根据 DevOps 研究与评估协会组织发布的报告显示:
  
  80%的受访者将其主要应用程序或服务托管在云平台上,认为大型企业组织重量级的流程和控制措施是导致较低速度,以及相关不稳定性的部分原因。
  
  根据中国信息通信研究院、华为和南京大学联合发布的报告显示:
  
  超过半数的企业认为需求的频繁变更、部署集成中出现的问题过多阻碍软件按时交付,同时认为产品质量、按时交付、客户满意度和研发效率的 升是判断DevOps 是否成功实践最重要的标准。
  
  可以看出国内外大部分企业期望 DevOps 能够带来更高效的交付效率, 升客户满意度,创造更多的商业价值,但成功实践 DevOps 依然是一个难题。
  
  【由于本篇文章为硕士论文,如需全文请点击底部下载全文链接】
  
  1.2 国内外研究历史与现状
  1.3 研究内容与方法
  1.3.1 研究内容
  1.3.2 研究方法
  1.4 本论文的结构安排
  1.5 本章小结
  
  第二章 理论综述
  
  2.1 软件项目管理
  2.1.1 软件项目管理的目的
  2.1.2 软件项目管理的内容
  2.1.3 软件项目管理的特点
  2.2 软件过程模型
  2.2.1 瀑布开发模型
  2.2.2 快速原型模型
  2.2.3 螺旋模型
  2.2.4 增量模型
  2.2.5 迭代模型
  2.3 DevOps.
  2.3.1 DevOps 相关理念
  2.3.2 DevOps 理论发展历史
  2.3.3 DevOps 核心原则
  2.4 本章小结
  
  第三章 D 公司酒店电视二期项目现状
  
  3.1 项目背景
  3.1.1 公司简介
  3.1.2 项目简介
  3.2 组织结构与流程
  3.2.1 项目组织结构
  3.2.2 项目管理流程
  3.3 项目管理的现状
  3.3.1 运维过程耗时多
  3.3.2 测试过程效率低
  3.3.3 部署与交付频率低
  3.3.4 项目内外沟通少
  3.4 原因分析
  3.4.1 归纳原因
  3.4.2 梳理关系
  3.4.3 确定改进重点
  3.4.4 改进方案评估标准与度量指标
  3.5 本章小结
  
  第四章 酒店电视三期项目改进
  
  4.1 组织结构改进
  4.2 流程改进
  4.2.1 审批流程简化
  4.2.2 部署过程改进
  4.2.3 测试过程改进
  4.2.4 运维过程改进
  4.3 沟通与能力改进
  4.3.1 重塑项目组文化
  4.3.2 开展运维技能培训
  4.3.3 使用 ChatOps 技术快速共享信息
  4.3.4 建立项目知识共享平台
  4.4 改进结果
  4.5 本章小结

  第五章 总结。

  DevOps 是软件开发领域一个较为年轻的概念,正处于快速发展之中。本文通过 DevOps 结合项目管理领域进行了如下研究:

  1、介绍了软件项目管理的发展以及 DevOps 的产生背景,对 DevOps 的原则、目标和核心进行了阐述。

  2、对 CH 集团 D 公司基于 Web 环境的互联网项目现状和根因进行了深入分析,确定了使用项目管理工具和技术与 DevOps 理论实践相结合的方式来实现对酒店电视云端软件项目的改进。

  参考文献

作者单位:电子科技大学
原文出处:郭健. 基于DevOps的D公司软件项目管理改进研究[D].电子科技大学,2019.
点击下载全文
相关内容推荐
相关标签:
返回:软件工程硕士论文