汪淑平 黄萍 王贝贝
摘要:面对软件行业的竞争愈加激烈,传统研发模式难以满足核电信息化业务复杂多变的需求。为更高效、更透明交付高质量软件产品,面向核电信息化业务的软件开发正向开发运维一体化(DevOps)软件开发模式转型升级。本文构建了需求、开发、测试、运维“四位一体”的软件开发工具链,集成了问题跟踪系统、在线办公系统、代码管理系统、核源平台等工具,并在本单位进行推广使用,实现了软件全生命周期的透明化管控。
关键词:四位一体 问题跟踪系统 在线办公系统 代码管理系統 核源平台
Software Development Management for Nuclear Power Information Business Research on Tool Chain Integration
WANG Shuping1 HUANG ping2 WANG beibei2
(1. China nuclear power operation techenology corporation,LTD.,Wuhan, Hebei Province, 430070 China;2. Research institute of nuclear power operation,Wuhan, Hebei Province, 430070 China)
Abstract: Facing the increasingly fierce competition in the software industry, the traditional model is difficult to meet the complex and changeable needs of nuclear power information business. In order to deliver high-quality software products more efficiently and transparently, the software development for nuclear power information business is transforming and upgrading to the development, operation and maintenance integration. software development mode. This paper constructs a "four in one" software development tool chain of demand, development, testing and operation and maintenance, integrates tools such as problem tracking system, online office system, code management system and nuclear source platform, and promotes them in our unit, realizing transparent management and control of the whole software life cycle.
Key Words:Four in one;Problem tracking system;Online office system;Code management system;Nuclear source platform
我国正处在数字化、网络化、智能化为特征的科技变革的浪潮中,新一轮技术革命为“数字核电”建设带来了新机遇和挑战。将新一代信息技术与传统的核电行业深度融合,是提升核电信息化水平的关键。然而,在核电信息化建设过程中,软件产品的业务需求复杂多变、交付速度越来越快、软件质量要求越来越高,传统研发模式开发成本高、周期长、系统维护升级困难等,难以满足核电产业数字化转型的需求[1]。具体表现在以下几个方面:
(1)传统的瀑布软件开发模式,从需求到测试最后到产品交付,整个开发周期长,而软件技术发展速度之快,往往软件开发完成后,已经和当前的技术水平有了一定的差距[2];
(2)前期开发人员实力、团队项目经验会直接影响后续维护迭代,自主研发软件的团队常常是缺乏经验的,后期复杂的系统优化与维护、以及不断更新的需求带来的二次开发任务非常重;
(3)传统开发模式下,过程管理闭塞,不能实时动态的、透明的、全面的展现项目的进展情况、员工绩效信息等,无法尽早地发现开发过程中的质量问题、管理问题和风险问题,过程中形成的知识和经验没有沉淀,无法形成有效宝贵的组织过程;
(4)项目开发过程的工具繁多且杂乱,需求、开发、测试、发布等都各自使用不同的系统,系统缺乏互联互通、业务数据分散,没有一套完整统一的工具链,导致各环节容易出现黑盒状态,上下游协作效率低下,沟通成本较高,导致最终用户体验不佳[3]。
综上所述,传统开发模式的问题根源在于开发和运维的分离,而倡导开发和运维一体化的DevOps理念的出现能够很好解决该问题,特别是近年来随着微服务架构和容器技术的成熟,越来越多的软件研发企业向DevOps软件开发模式转型升级[4]。DevOps是Development和Operation两个英文的组合,即一组过程、方法和系统的统称,旨在通过自动化的流程,高效组织团队成员通过工具协作完成软件全生命周期的管理,打破开发、运维之间的壁垒,从而实现更快、更高质量的交付软件及软件开发和运维一体化[5-6]。然而,DevOps目前在苹果、沃尔玛等国外大型互联网公司使用较多,国内仅像腾讯等大型互联网企业有所涉及,但并未广泛推广。阻碍DevOps推广的主要原因是企业对DevOps认知不足。
本单位承担了集团板块核电领域信息化建设以及核电厂日常运营的信息化工具的开发,中心正在向DevOps开发模式转型。针对上述问题,本文基于目前比较成熟高效的DevOps前沿理论和业内成熟的软件工具,通过不断的研究实践,打造了贯通需求、开发、测试和运维“四位一体”的软件开发全过程管理工具链,支持云端开发、在线协同办公和问题跟踪,实现了软件从需求管理、测试管理、代码管理、持续集成、持续部署、智能运维的全生命周期一体化的智能化管理。
1 “四位一体”软件开发管理工具链设计
在核电信息化建設中,软件开发管理包括需求管理、配置管理、知识管理、代码管理、测试管理、质量管理等工作,涉及到开发、技术运维和质量保障等部门间的沟通、协作与整合。本文建立了需求-开发-测试-运维“四位一体”的软件开发管理模式(见图1),支持问题跟踪、协同办公、代码管理、持续集成、持续交付等功能,实现了软件开发全流程、全方位的跟踪与管理。
1.1“四位一体”工具链集成框架设计
“四位一体”软件开发管理工具链旨在打通软件研发中需求、开发、测试、运维的各个环节,完成从项目需求、测试、Bug、代码扫查、CI\CD(持续集成\持续发布)、配置管理于一体的全流程软件开发业务管理,实现软件开发过程中用户、产品经理、敏捷教练、开发人员、测试人员、运维人员等各环节不同角色无障碍的沟通交流。“四位一体”软件开发管理工具链的总体集成框架如图2所示。
1.2 四位一体”工具链集成功能设计
根据“四位一体”软件开发管理的设计理念,集成的工具链具有配置管理和知识管理、需求和任务管理、代码管理、测试管理、持续集成和持续部署等功能。
(1) 配置管理:配置管理是对开发生命周期内产生的数据和文档进行标识、存储和控制,以维护其完整性、可追溯性及正确性。配置管理是通过对项目各配置项进行持续追踪管理,控制配置项的变更,对比验证需求的一致性,检验配置项与成果的关系,提高软件集成的准确度,同时对后续的运维工作提供依据。
(2) 知识管理:集中管理企业经验教训、先进技术等组织过程资产,供全员进行在线学习、分享。通过对人员进行权限分级,按角色提供系统功能,变革传统的集中式的办公方式,实现异地协同办公,促进知识显性化、沉淀企业的知识资产,保护组织的核心竞争力。
(3) 需求管理:细化拆分每个需求,明确每个功能需求的使用角色、完成业务、流程走向、实现效果,组织对分解后的需求进行评审。开发人员认领面板所示通过评审的需求并进行开发。系统记录追踪每一项需求变更,确保软件产品一致性、可控性、可追溯性,使得产品与用户需求完全吻合。
(4) 任务管理:跟踪管理项目的日常事务性内容。可根据要求灵活定制系统界面、流程,记录工作日志,通过数据的积累,可以多维度地可视化项目各项指标,包括项目工作进度、绩效数据、质量指标等,每个应用都为用户提供量身定制的体验。
(5) 代码管理:集中管理、存储、版本控制代码,供团队成员进行访问。通过设置多分支对代码进行开发,提交、拉取、合并、推送等操作,完成项目内的代码共享和协助等内容。
(6) 测试管理:在相应的需求下面创建测试用例/测试用例集,按照测试步骤执行测试用例,记录测试结果。若有问题,编写测试故障,监控跟踪项目故障整改情况。
(7) 持续集成和持续部署:允许代码的频繁提交与合并,阶段性完成的代码即进入测试,从而让开发人员更早的发现问题、修复问题。通过不断获取反馈、响应反馈,降低集成的复杂度。同时,定时、自动地将稳定的版本部署到生产环境中,让软件迅速投入生产阶段,提高软件开发和上线效率。另外,提供第三方质量检测接口(如SonarQube等),通过统一的规范要求对输出物进行检查,保障源码和原始参数的可靠性。
2 “四位一体”软件开发管理工具链实现及应用
2.1 “四位一体”软件开发管理工具链实现
“四位一体”软件开发管理工具链包括了问题跟踪系统、在线办公系统、代码管理系统、核源平台等四大工具,实现了软件开发的全过程管理。本文基于虚拟化技术将“四位一体”工具链集成于云开发平台中,为各类工具提供统一的开发环境和入口。云开发平台运行于内网环境,数据统一存储于内网服务器上,可有效保护数据安全,防止代码扩散。用户可动态按需产生自定义的虚拟桌面,在云桌面中使用相关工具进行开发。
(1)问题跟踪系统:是强大的事务收集跟踪工具,应用于需求收集管理、测试管理、缺陷跟踪、流程审批、任务跟踪、项目跟踪和敏捷管理等。问题跟踪系统与代码管理系统联通,通过需求和代码管理系统关联,实时展示需求对应的代码编写、改动情况。问题跟踪系统与在线办公系统关联,完成需求与配置项相互映射,明确每一个配置项的变更。
(2)在线办公系统:用于企业知识管理与协同办公的工具,具有强大的编辑和站点管理功能,能够帮助团队成员之间共享信息、文档协作、集体讨论、信息推送等。系统实现了文档管理的自动化,使各类文档能够按照权限进行保存、共享、使用,提供一个有效的信息发布和交流的场所。同时,在线办公系统也实现了项目配置管理工作,在项目立项初即搭建配置管理库,由配置管理员统一进行管理,同时与问题跟踪系统联通,对软件开发过程中相关内容进行实施追踪,提取相关配置项信息。
(3)代码管理系统:一个基于Git实现的在线代码仓库托管软件,用于内部网络搭建Git私服。该系统集成代码静态扫查工具(SonarQube),进行统一代码质量和注释率检查,并通过图形化的界面公开检查统计结果,实现强制性检查机制。代码管理系统与问题跟踪系统集成,每个需求下面可以展示代码编写情况。代码管理系统与核源平台联通,代码一经提交即自动扫查,进一步确保软件代码的质量。
(4)核源平台:该平台为本单位自主研发的平台,提供了多租户权限管理、多集群管理、DevOps、微服务治理等基本功能,包括弹性伸缩、灰度发布、交付中心、快速接入原生资源(YAML、Helm)、多维度监控与运维中心等主要模块。平台支持微服务软件架构应用的开发(包含服务治理环境),提供统一的分布式技术栈,降低质量问题发生率以及运维难度;平台还可以实时监控整个系统环境的运行数据,提前预警和按照预先的策略进行自动化修正,保障整个容器云环境的有序高效运行,提供整个资源的高可用支持[1]。
2.2 “四位一体”软件开发管理工具链应用
“四位一体”软件开发管理工具链已在本单位核电大型管理系统研发项目中运用。该核电大型管理信息系统以核电厂设备信息管理为主,以工作管理流程为主线,将设备管理、工作管理、配置管理、运行管理、辐射防护管理及安全管理集成一体,功能需求复杂,涉及核电上下游产业链业务。
该项目模块任务多、开发周期长、人员组成复杂,传统的开发模式建成一个稳定流畅的系统需要付出大量的时间和成本,且过于依赖开发人员,导致开发的系统无法跟上快速变化的需求,后期的运维和升级维护异常复杂。项目开发过程中的工具繁多且杂乱,需求、开发、测试、发布等都各自使用不同的系统,系统缺乏互联互通、业务数据分散,缺乏一套完整统一的工具链。
项目启动后,配置管理员采用“四位一体”工具链创建项目空间、建立账号、分配角色权限,通过在线办公系统创建项目配置库,用于管理整个项目的配置项及变更相關内容,配置管理员和项目组在核源平台中联合完成流水线搭建,让开发人员可以持续集成和持续部署;项目负责人将项目相关过程资产、前期相关资料共享至在线办公系统供成员进行学习,同时在问题跟踪系统中将相关需求分解,并分发任务,明确责任人、完成时间,并在开发阶段实时跟踪每个需求对应的代码编写情况,确保所有任务都有跟踪;开发人员在问题跟踪系统中领取任务,进行开发工作,在开发过程中可实时地将代码提交到代码管理系统中,并通过集成的代码扫查工具自动完成扫查,通过质量门后即可在核源平台进行持续集成部署。
核电大型管理系统项目研发管理采用“四位一体”工具链后,实现了从需求、开发、测试到运维全流程的透明化、多样化、智能化、透明化的管控,提升了管理力度和效率。项目管理人员使用“四位一体”工具链后,可以实时查看软件开发任务执行情况,通过丰富的动态图表多维度、多视图、多区间的展示项目相关数据,全面监控软件项目质量。在项目实施过程中,“四位一体”工具链帮助快速识别产出物质量风险、安全风险、产品是否真正符合客户需求的风险,缩短了产品开发、修复问题的时间,节省了时间和成本,提升了软件产品的质量。
3 结语
本文分析了当前核电行业信息化开发面临的问题,提出了需求、开发、测试、运维“四位一体”的软件开发模式,集成并构建了问题跟踪系统、在线办公系统、代码管理系统、核源平台“四位一体”软件开发工具链,支持配置管理、知识管理、需求管理、任务管理、代码管理、测试管理、持续集成和持续部署等功能,实现了软件开发的全过程管理。该工具链目前已经在本单位全面推广使用,完成了从需求、开发、测试到发布的全流程、全方位的跟踪和综合管理,适应了大规模项目精细化管理,助力企业实现降本增效。我们后续将持续优化工具链各项功能,搭建集成系统并打造管理驾驶全景舱,为用户提供更友好的智能化管理平台。
参考文献
[1] 任宇阳.浅谈DevOps在核电大型管理系统中的应用[J].科技创新导报,2020(27):26-27.
[2] 高栋. DevOps平台建设分析[J].中国科技信息, 2019(24):39-40.
[3] 欧利松.基于J2EE架构敏捷开发的研究[J].电子科技,2017,30(5):162-164.
[4] 王敏,贾百强,李翔,等.基于JIRA的全生命周期软件开发管理平台[J].上海船舶运输科学研究所学报,2017,40(2):78-82.
[5] 刘博涵. DevOps中国调查研究[J].软件学报,2019,30(10):35-36.
[6] 高丽娟.基于DevOps的软件开发管理模式[J].计算机工程应用技术,2021(2):28-29.