一种基于DevOps的研发管理系统和方法与流程

文档序号:17329556发布日期:2019-04-05 21:59阅读:1238来源:国知局
一种基于DevOps的研发管理系统和方法与流程

本发明涉及软件开发系统领域,尤其涉及一种基于devops的研发管理系统和方法。



背景技术:

随着移动互联网的普及和迅速发展,衍生产品和场景应用更趋于多样化和复杂化,产品应用的用户规模、调用关系和变更频率也在逐渐增大。在这种复杂又多变的多套环境中,如何加强不同技术栈人员之间的协作,缩短产品开发、测试到运维的生命周期,提升研发效率并保障质量,是目前市场竞争的技术痛点。devops(development和operations的组合简称)旨在促进软件集成交付和基础设施变更的开发和运维之间的合作和沟通,并利用开源工具固化流程,实现应用研发持续集成交付和变更管理的自动化。现有技术中,虽然已有对devops工具链进行整合,并进一步自动化开发管理流程,但无法进行应用资源管理、链路监控告警和日志审计的有效整合。



技术实现要素:

本发明的目的在于针对背景技术中的缺陷,提出一种基于devops的研发管理系统和方法,进行应用资源管理、链路监控告警和日志审计的有效整合,实现应用资源的一键式创建、自动化持续部署、监控、测试和反馈。

为达此目的,本发明采用以下技术方案:

一种基于devops的研发管理系统,包括web控制平台,所述web控制平台包括用户模块、项目模块、群组模块、应用资源模块、配置管理模块、告警监控模块、日志审计模块和任务调度模块;

所述用户模块用于对gitlab用户进行权限管理,并对ldap协议进行接入,并对项目管理用户权限做映射关联;

所述项目模块用于利用gitlab代码项目和开源项目管理工具禅道,对项目需求进行任务拆分和落实到项目成员权限;

所述群组模块包括在gitlab上创建群组,在群组中创建项目和为项目创建分支,将项目成员添加至群组中并将项目成员分配至不同分支,项目成员完成自己分支中的任务;

所述应用资源模块用于操作云平台上实例;

所述配置管理模块用于微服务的配置管理推送;

所述告警监控模块包括对流水线作业日志记录和对应用资源模块的实例进行告警;

日志审计模块用于接入大数据日志仓库;

任务调度模块用于监控任务调度。

优选的,所述web控制平台通过对接gitlabapi和禅道api对用户模块、项目模块和群组模块进行整合;

所述web控制平台通过对接aliyunapi对应用资源模块、配置管理模块和告警监控模块进行整合;

所述web控制平台通过对接大数据日志平台对日志审计模块和任务调度模块进行整合。

一种基于devops的研发管理方法,包括使用web控制平台进行代码版本管理及托管,步骤如下:

步骤a:web控制平台建立对应群组和成员,并在群组内创建需求项目及对需求项目进行初始化;

步骤b:web控制平台调用gitlabapi创建代码托管地址,并创建gitflow工作流分支,以及对接代码审计的平台,生成审计项目。

优选的,包括使用web控制平台进行项目创建,步骤如下:

步骤一:确立需求,在群组内根据需求创建项目,根据群组和项目成员落实权限;

步骤二:web控制平台对接项目管理工具restapi,对项目进行任务拆分,并将拆分的任务落实到群组中的项目成员中。

优选的,包括所述web控制平台使用gitlab、gitlab-ci和gitlabrunner进行pipeline流水线作业交付;

包括围绕“需求->开发->测试->发布->运维->运营”的研发周期进行迭代,具体包括如下步骤:

步骤a:使用gitlab进行代码仓库管理;

步骤b:使用gitlab-ci进行pipeline流水线作业,根据不同的gitflow工作流分支的合并动作,触发自动化发布到开发环境和测试环境中;

步骤c:基于gitlabrunner运行pipeline流水线作业,包括但不限于应用部署作业;

步骤d:进行代码版本变更,延伸出可体验的产品,并进行测试,根据测试结果反馈产品缺陷;

步骤e:代码版本变更结束后产出最终结果。

附图说明

图1是本发明的web控制平台模块示意图;

图2是本发明的研发管理系统框架图;

图3是本发明的持续集成交付流水线示意图。

具体实施方式

下面结合附图并通过具体实施方式来进一步说明本发明的技术方案。

本实施例的一种基于devops的研发管理系统,包括web控制平台,所述web控制平台包括用户模块、项目模块、群组模块、应用资源模块、配置管理模块、告警监控模块、日志审计模块和任务调度模块;

优选的,如图1所示,所述web控制平台通过对接gitlabapi和禅道api对用户模块、项目模块和群组模块进行整合;

所述web控制平台通过对接aliyunapi对应用资源模块、配置管理模块和告警监控模块进行整合;

所述web控制平台通过对接大数据日志平台对日志审计模块和任务调度模块进行整合。

所述用户模块用于对gitlab用户进行权限管理,并对ldap协议进行接入,并对项目管理用户权限做映射关联;

所述项目模块用于利用gitlab代码项目和开源项目管理工具禅道,对项目需求进行任务拆分和落实到项目成员权限;

所述群组模块包括在gitlab上创建群组,在群组中创建项目和为项目创建分支,将项目成员添加至群组中并将项目成员分配至不同分支,项目成员完成自己分支中的任务;

所述应用资源模块用于操作云平台上实例;

所述配置管理模块用于微服务的配置管理推送;

所述告警监控模块包括对流水线作业日志记录和对应用资源模块的实例进行告警;

日志审计模块用于接入大数据日志仓库;

任务调度模块用于监控任务调度。

web控制平台依托于devops开源工具链(借助微服务、大数据技术和第三方restapi,进行应用资源管理、链路监控告警和日志审计的有效整合,实现应用资源的一键式创建、自动化持续部署、监控、测试和反馈,在web控制台实现可视化流程,实时呈现研发的生命周期,有效提升开发、测试和运维各成员的“全局观”和owner意识,减少沟通成本,增强协作效率,全方位可控,满足当前新兴互联网企业的产品研发迭代效率和质量上的要求。

一种基于devops的研发管理方法,包括使用web控制平台进行代码版本管理及托管,步骤如下:

步骤a:web控制平台建立对应群组和成员,并在群组内创建需求项目及对需求项目进行初始化;

步骤b:web控制平台调用gitlabapi创建代码托管地址,并创建gitflow工作流分支,以及对接代码审计的平台,生成审计项目。

优选的,包括使用web控制平台进行项目创建,步骤如下:

步骤一:确立需求,在群组内根据需求创建项目,根据群组和项目成员落实权限;

步骤二:web控制平台对接项目管理工具restapi,对项目进行任务拆分,并将拆分的任务落实到群组中的项目成员中。

优选的,包括所述web控制平台使用gitlab、gitlab-ci和gitlabrunner进行pipeline流水线作业交付;

包括围绕“需求->开发->测试->发布->运维->运营”的研发周期进行迭代,具体包括如下步骤:

步骤a:使用gitlab进行代码仓库管理,规范团队gitflow工作流的写作开发,提高开发效率;

步骤b:使用gitlab-ci进行pipeline流水线作业,根据不同的gitflow工作流分支的合并动作,触发自动化发布到开发环境和测试环境中;

步骤c:使用gitlabrunner运行pipeline流水线作业,包括但不限于应用部署作业;

步骤d:进行代码版本变更,延伸出可体验的产品,并进行测试,根据测试结果反馈产品缺陷;

步骤e:代码版本变更结束后产出最终结果。

如图2和图3所示,gitlab是用于仓库管理系统的开源项目,使用git作为代码管理工具并在此基础上搭建起来的web服务,ide集成开发环境应用程序通过gitlab调用gitlabapi创建代码托管地址,当gitlab的一个工程的软件集成脚本里的代码进行更新并产生新的软件集成脚本时,gitlab发送代码更新通知至gitlab-ci,gitlab-ci是一套配合gitlab使用的持续集成系统,gitlab-ci根据代码更新通知寻找到与该工程相联的gitlabrunner,gitlabrunner是配合gitlab-ci使用的,gitlabrunner将代码进行更新到本地,并执行的软件集成脚本,并通过sonarqube检查代码,生成审计反馈到ide集成开发环境应用程序;使用gitlab-ci进行pipeline流水线作业,根据不同的gitflow工作流分支的合并动作,触发自动化发布到生产环境和开发测试环境中,在开发测试环境中,通过selenium测试与浏览器的兼容性,并将测试结果反馈到开源管理工具禅道上。

web控制平台依托于当前流行的项目管理、持续集成交付(ci/cd)等开源工具,通过restapi对接云平台资源,纳入自研的web管理平台,基于gitflow工作流创建对应的流水线作业,成员通过web可视化流程查看研发周期的迭代进展,加强了开发、测试、运维和运营的协作关系和全局观,自动化、一体化持续部署,减少人工投入和降低人为出错的概率,同时集资源管理、监控和告警于一端的,提升效率同时把控风险。实践表明,从开发到提测,由原先的4周工作时长缩减到1周,大幅度地降低了研发周期,提升企业竞争力。该平台的进一步规划,将借助大数据人工智能技术,对运维沉淀的日志数据进行离线分析,以期提供流程的进一步优化,也将实践从devops自动化到aiops智能化的进阶。

以上结合具体实施例描述了本发明的技术原理。这些描述只是为了解释本发明的原理,而不能以任何方式解释为对本发明保护范围的限制。基于此处的解释,本领域的技术人员不需要付出创造性的劳动即可联想到本发明的其它具体实施方式,这些方式都将落入本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1