基于DevOps的软件开发管理模式

2021-03-22 02:53高丽娟
电脑知识与技术 2021年4期
关键词:软件开发管理模式

高丽娟

摘要:DevOps是继敏捷研发后的又一个先进的研发理念,通过整合开发和运维,有效解决了敏捷研发中软件开发与运维之间的鸿沟,提升了软件开发效率和交付质量。文章首先分析了DevOps概念、优势和应用现状,接着研究了基于DevOps的软件开发流程,最后以某公司安全软件开发为例,对基于DevOps的软件开发管理模式进行深入探讨,以供参考和借鉴。

关键词:DevOps;软件开发;管理模式

中图分类号: TP311        文献标识码:A

文章编号:1009-3044(2021)04-0258-03

随着信息化网络时代的到来,海量的数据信息出现在人们的视野中,这给企业业务工作创新提出了更高的要求。企业要想在这样的背景下获得稳定发展,必须借助高质量的软件开发,实现业务方面的创新应用。对于现代化企业,特别是互联网企业而言,需要将有价值的信息快速准确地传递给用户,以便于用户做出及时的反馈,进而对产品进行修改和优化。而对于这一过程的实现,必须要求开发团队与测试、运维团队相互配合,改变以往相互割裂的情况,这正是DevOps理念的核心所在,可见运用DevOps理念进行企业软件开发管理已经成为当前的一大趋势,这对于提升软件交付质量有着积极作用。

1 DevOps相关概述研究

1.1 DevOps的概念

DevOps是集自动化、持续监控以及共享等元素于一身,将软件开发、运维以及测试紧密联系到一起,是三个部门进行沟通协作的重要方法和依据。DevOps最早出现在欧洲,主要以解决传统IT在运维方面的问题而出现的,相关专家总结出一个能力环结构,以此更好的解释DevOps内涵,详细如图1所示。

DevOps的出现,让软件开发团队可以用同样的方式对开发、生产以及测试等环境进行有效操控,同时可以在任意情况下将数据包部署到相应环境中。DevOps从软件交付的整体出发,加强各个角色之间的协调合作,而且由于其具有自动化的功能特点,可以有效降低人工劳动力和人机交互,提升开发设计效率,所以在实际开展工作中需要尽可能选择一些支持脚步化、无须人机交互界面的工具,而这些工具在使用中会涉及环境当中的相关函数,函数具有复杂性、抽象性等特征,因此可以构建一个具有形象化特征的框架结构,达到简化处理目的。除此之外,在实际运用DevOps时,可以将全局系统的视角运用到高层次的模型中,使其在应用、操作系统服务、网络服务以及数据库等层面发生变化,更好地发挥应用效果。

1.2 DevOps的优势

以往的软件开发模型是温斯顿·罗伊斯在1970年提出的瀑布开发模型,其后续一直被应用到软件开发管理中。该模型的主要核心在于将功能的实现与设计相分离,并且将软件开发管理周期划分为以下六个环节,即计划制定、需求分析、软件设计、程序编写、测试以及运行维护等,同时该模型还规定了各个环节之间的依次性,即遵循自上而下、相互衔接的基本原则,就好比瀑布流水的原理,因此被称为瀑布模型。该模型优势在于提供了软件开发设计按阶段划分的检查点,但是也不可避免地存在一些不足,即只有在软件开发项目周期到达后期时,才能看到开发设计的结果,所以当出现需求变化时,很难得到有效的满足。后续在瀑布模型基础上进行了优化,产生了一种新的理念,即敏捷开发理论,其有效弥补了瀑布模型的各类缺陷,有效提升了软件开发效率和响应能力。在应用该理论进行软件开发设计时,主要将其划分为多个子项目,并且可以确保每一个子项目成果都经过测试,具备了可视化、可运行的特征优势,但是该理论却没有解决软件开发与运维之间的问题,所以难以提升软件开发效果。而DevOps则是在敏捷模型基础上再次优化产生的理论,其在敏捷理论的基础上,将运维理念应用其中,实现了软件开发、测试与运维的统一集成,使得软件开发管理模式更加的规范,图2是各类软件开发模型进化的过程。

对于传统行业的数据中心来说,数据安全性和稳定性是至关重要的,所以IT管理人员对于数据中心的管理必须侧重于两个方面,即通过对数据中心各环节的维护确保数据的稳定性、通过定位分析,及时发现问题并给予处理,确保数据的安全性。但是传统数據中心的软件开发管理模式中的开发模型,都没有很好地满足数据安全性和稳定性的要求。而DevOps由于集开发、测试和运维于一体,可以实现各个团队和部门之间的协调配合,所以软件开发效率大大提升,相应的稳定性和安全性也有了保障。

1.3 DevOps的应用现状

就目前而言,很多国外的大型互联网企业,包括苹果、星巴克以及沃尔玛等,他们在软件开发管理当中都是采用DevOps实现业务方面的创新应用。DevOps虽然在国外应用比较广泛,但是从目前来说,该理论在国内还没有得到广泛的推广和使用,仅仅对于一些大型企业成功应用了DevOps,而在一些中小企业中却没有得到较为广泛地应用,原因是他们没有认识到软件开发、测试与运维协作所产生的效果。

2 基于DevOps的软件开发管理流程

面向于DevOps理念的软件开发管理模式,其主要的流程如下:第一,持续的管理与计划。由研发人员、测试人员以及运维人员共同制定软件的交付计划方案,其中的每一个角色需要结合自身的工作内容对方案计划的制定作出建议。此外,项目管理人员作用主要是对项目方案流程实施跟踪监督,包括软件开发管理全生命周期的各个节点,整体项目计划方案需要在管理平台中对所有人可见,并实时更新;第二,持续集成与测试。软件开发工作者在对软件功能进行研发时,需要编写相应功能的测试代码,然后由运维人员进行代码的翻译,并实施单元测试模块的运行管理,同时对于测试结果做出准确判断,分析是否需要进行修改;第三,持续交付与部署。对于软件代码开发实施和每日集成情况,借助集成工具(jenkins)将构建产物部署至仿真状态,交由测试工作人员进行验证处理;第四,持续的分析与计划。对于软件开发管理项目状态进行分析,及时发现存在的问题,并给予整改和优化,全面提升软件开发设计质量和效率。

3基于DevOps的软件开发管理模式研究

3.1标准化和自动化流程的构建

本次研究中基于DevOps的软件开发设计,主要核心在于提升软件设计质量和效率,以此为目的建立标准化和自动化的研发流程,具体涉及以下几点,即自动化测试执行、自动化测试回归以及自动化发布和部署等,通过构建自动化、标准化的开发流程,不仅提升了开发设计效率和质量,而且大幅度降低了人工劳动力。

3.2 统一工具链建设

在完成研发流程构建后,需要统一工具链建设,即重新定义项目所关联的唯一标识,将配置管理作为流程驱动的关键和前提,以数据中心作为载体,实现软件开发的规范化和标准化。

3.3规范自动化功能

构建全生命周期持续化平台,包括编译构建、静态分析、测试追踪以及数据分析等分布式自动化节点,目的在于确保软件开发的自动化执行、发布以及部署等。从目前来看,项目开发中已经实现了单点环境的资源部署,并且已经初步形成了与研发流程相匹配的自动化链路,详细如图3所示。

3.4可视化反馈机制

在软件开发管理中提升交付质量十分重要,但同时也需要尽可能地缩短软件迭代周期。为了达到这一目的,提升可视化反馈机制就显得十分必要,具体是结合软件的工作场景开展相应工作。通常情况下,可视化反馈机制实现的基础是工具间数据是否打通,关键技术在于突破各个通信交互间的接口,反馈的形式主要包括以下两种,即邮箱反馈、通信和監控看板反馈。

3.5方案的实施

本次研究中主要通过并行开展实施方案的计划,详细方案包括以下几种:第一,Hubot方案。在异步处理和TCP通信的基础上,使用目前应用比较广泛的nodejs框架,通过调用即时通信系统的接口单点接入,最终达到用户差异性反馈目的。此外,该方案还通过利用单点接入技术与研发流程二者的有效融合,向软件开发工作人员定期实时推送定制化消息,从而实现人机交互的管理模式;第二,TBox方案。该方案中主要利用OSGI模块化设计理念,并且融入C/S部署架构,在软件开发管理工具的自主研发环节建立一个规范下载管理和监控平台,同时构造线程池管理消息队列,收集在线情况并且存储为组织级的度量数据,详细原理如图4。

第三,报表展示方案。利用数据库读取的报表工具,在大量的数据信息中提取、处理得到软件开发管理所评估的数据信息,并且以实时看板的反馈方式为用户提供快捷的服务,同时也全面提升项目的运行效率,详细如图5。

基于DevOps的软件开发管理还实现了多个自主研发的软件工具和商用软件工具,这给用户提供了统一规范的工具/设备下载使用和监控平台。

本次研究中在方案制定和流程研发中克服了多个关键问题及难点,对项目管理、软件工程等经典方法论进行了有效整合,技术创新总结如下:第一,基于DevOps的安全软件开发设计不仅实现了规范的软件生命周期数据管理,而且打通了九类工具间的数据联系,这使得传统开发管理中数据孤岛问题得以解决;第二,本次开发管理模式通过分布式的部署环境支持多样化自动化服务,一方面为开发流程自动化、标准化的构建提供了帮助,另一方面也降低了人工操作压力。

4 结束语

综上所述,基于DevOps的安全软件开发管理模式,在满足原有需求、配置等优势基础上,实施了优化改良,即根据自身的研发组织和技术特点进行大量的集成、定制和自动化开发,不仅解决了传统敏捷交付当中的缺陷和不足,有效实现了开发、测试与运维于一体的稳定安全的开发管理模式,并且以自动化的全生命周期配置维护管理,有效满足了网络信息环境的复杂性需求。

参考文献:

[1]王庆.基于容器的DevOps云平台设计与实现[D].电子科技大学,2020.

[2] 童向杰,郑武,谢凤玲,等.企业数字化转型中的硬件DevOps实践[J].价值工程,2020,39(1):1-5.

[3] 高栋王殿胜张思琪张晓明.DevOps平台建设分析[J].中国科技信息,2019(24):39-40.

[4] 荣国平,白晓颖,岳涛.面向DevOps的软件工程新技术专题前言[J].软件学报,2019,30(10):3054-3055.

[5]郭健.基于DevOps的D公司软件项目管理改进研究[D].电子科技大学,2019.

【通联编辑:唐一东】

猜你喜欢
软件开发管理模式
浅谈高校图书馆随书光盘的编目与管理作用
基于承包商管理的系统化基建安全管理模式的分析
工程应用型本科机械专业学生考研管理模式探索