本发明专利技术公开的开发运维一体化系统,包括开发服务模块、流水线调度模块、工作节点模块、运行监控模块,开发服务模块用于代码编辑、代码存储、代码依赖管理;流水线调度模块用于开发流水线及运维流水线的修改、编辑、发布,将整个开发流程及运维流程有机连接到一起,管理所有资源并根据负载情况,动态地将运行服务分配至负载较低的服务器;工作节点模块用于为流水线调度模块提供底层运行资源;运行监控模块用于实时采集各个环境的运行情况,并将各个环境的运行情况反馈给开发运维人员及流水线调度模块,提高了资源使用率、产品发布效率、系统的稳定性,为开发者提供了友好的开发环境及良好的体验。体验。
【技术实现步骤摘要】
一种开发运维一体化系统
[0001]本专利技术涉及软件工程领域,具体涉及一种开发运维一体化系统。
技术介绍
[0002]随着互联网技术的不断发展,各种软件服务在生活和工作方面成为不可或缺的工具。一个完整的网络服务往往由多个微服务系统组成,而多个微服务系统互相依赖,每次系统的发布和迭代涉及到多个微服务系统之间的互相协调和协作,传统的软件开发及部署系统在面对多个系统同时部署、升级服务时存在以下缺陷:
[0003](1)流程复杂,需要多次人工干预,人工的介入导致系统容易出错;
[0004](2)开发运维系统资源利用率低,无法提高系统资源利用率;
[0005](3)可视化较差,往往需要通过日志来查看当前系统发布状态;
[0006](4)无法支持多环境,比如开发环境和生产环境,要搭建多个开发运维系统,导致系统重复搭建,浪费运维资源;
[0007](5)容错性较差,如果开发运维系统中有一个环境出错,将导致整个开发运维流程失败。
技术实现思路
[0008]为解决现有技术的不足,本专利技术实施例提供了一种开发运维一体化系统,该系统包括开发服务模块、流水线调度模块、工作节点模块、运行监控模块,其中:
[0009]所述开发服务模块用于代码编辑、代码存储、代码依赖管理;
[0010]所述流水线调度模块用于开发流水线及运维流水线的修改、编辑、发布,将整个开发流程及运维流程有机连接到一起,同时管理所有资源并根据负载情况,动态地将运行服务分配至负载较低的服务器;
[0011]所述工作节点模块,用于为所述流水线调度模块提供底层运行资源,其中,所述底层运行资源根据流水线调度情况动态分配,分配完成后由流水线调度模块统一回收,为下一次的调度做准备;
[0012]所述运行监控模块,用于实时采集各个环境的运行情况,并将各个环境的运行情况反馈给开发运维人员及流水线调度模块,为开发流水线及运维流水线调度提供运行数据支持。
[0013]优选地,所述流水线调度模块还用于,接收用户发送的代码构建请求,判断各个节点当前剩余资源是否满足当前流水线资源配额,若满足,则新建运行服务调度任务。
[0014]优选地,所述工作节点模块还用于接收构建好的代码并据用户配置,生成一个或多个代码示例副本。
[0015]优选地,所述底层运行资源包括计算资源池、存储资源池、网络资源池。
[0016]优选地,所述工作节点模块为资源池集群。
[0017]本专利技术实施例提供的开发运维一体化系统,具有以下有益效果:
[0018](1)开发者无需安装开发调试环境,完全在开发运维服务端提供代码编辑及调试环境且程序运行状态及结果都在服务端存储,为开发者提供了友好的开发环境及良好的体验;
[0019](2)灵活的流水线操作,用户既可以通过界面简单地编辑流水线,又可以通过编码实现复杂的流水线操作,实现开发到运维阶段到全流程流水线编辑操作;
[0020](3)高效的资源使用效率,传统的开发运维一体化系统需要专门的工作节点负责流水线发布,该专利中流水线工作节点和应用工作节点合并到一起,流水线发布后,资源回收,提高了资源使用率。
[0021](4)可以支持多种开发语言,目前支持java,golang,javascript等多种语言;
[0022](5)支持多环境配置,可以单独或同时发布到多个开发测试环境,根据用户的选择,可以将产品发布到开发环境、集成环境,测试环境、生产环境,提高产品发布效率;
[0023](6)为防止网络攻击,提高系统稳定性,该开发运维一体化系统可以全部离线安装部署,在离线网络环境完成代码开发到发布到全流程支持,无需联网即可实现软件的升级及部署;
[0024](7)集群支持,该开发运维一体化系统中的开发服务集群、流水线调度模块、工作节点模块、运行监控模块都是集群部署,单节点故障不影响整体运行,同时系统可以随着负载的增长,可以动态增加节点,提高系统稳定性。
[0025]说明书附图
[0026]图1为本专利技术实施例提供的开发运维一体化系统结构示意图。
具体实施方式
[0027]以下附图和结合具体实施例对本专利技术作具体的介绍。
[0028]如图1所示,本专利技术提供的实施例提供的开发运维一体化系统包括开发服务模块、流水线调度模块、工作节点模块、运行监控模块,其中:
[0029]所述开发服务模块用于代码编辑、代码存储、代码依赖管理。
[0030]所述流水线调度模块用于开发流水线及运维流水线的修改、编辑、发布,将整个开发流程及运维流程有机连接到一起,同时管理所有资源并根据负载情况,动态地将运行服务分配至负载较低的服务器。
[0031]所述工作节点模块,用于为所述流水线调度模块提供底层运行资源,其中,所述底层运行资源根据流水线调度情况动态分配,分配完成后由流水线调度模块统一回收,为下一次的调度做准备。
[0032]其中,一般来说,公司会有很多项目,每个项目每时每刻都有可能使用开发运维流水线去编译项目,如果同时编译的项目过多,可能导致项目编译堵塞,影响项目开发效率。
[0033]流水线调度模块可以根据项目性质,根据以往的流水线历史记录及用户的设置,分配不同的流水线资源去编译项目模块。使得多个流水线可以并行开发,提高编译效率,同时将编译节点限制在有限的节点上,防止因为流水线过度使用资源,导致正常运行的服务受到影响。
[0034]比如项目A使用P1流水线去编译部署项目,那么首次运行流水线时,根据用户设置去集群初始化流水线信息,执行流水线任务。执行成功后,相关执行信息会保存,下次执行
时会优先使用这次流水线使用的资源,提高编译效率。
[0035]同时项目B可以使用P2流水线去编译部署项目,如果流水线资源足够,可以使得P1流水线、P2流水线同时并行执行,如果流水线资源不足,则将流水线按照时间顺序放进排队等待队列,直到有资源释放出来,满足排队的流水线操作。
[0036]所述运行监控模块用于实时采集各个环境的运行情况,并将各个环境的运行情况反馈给开发运维人员及流水线调度模块,为开发流水线及运维流水线调度提供运行数据支持。
[0037]其中,各个环境包括开发环境,集成测试环境、准生产环境和生产环境。
[0038]可选地,所述流水线调度模块还用于,接收用户发送的代码构建请求,判断各个节点当前剩余资源是否满足当前流水线资源配额,若满足,则新建运行服务调度任务。
[0039]其中,运行监控模块会定时从当前集群收集各个节点资源信息,比如CPU、内存、磁盘、网络占用情况,每个流水线都有资源配额配置,用户触发流水线开始后,集群先检测当前各个节点,如果有节点的资源满足该流水线配额,则在该节点执行改流水线操作,如果集群中没有节点的资源满足该流水线资源配额,则该流水线进入排队等待状态,直到有节点满足条件,再执行该流水线。
[0040]可选地,所述工作节点模块还用于接收构本文档来自技高网...
【技术保护点】
【技术特征摘要】
1.一种开发运维一体化系统,其特征在于,包括:开发服务模块、流水线调度模块、工作节点模块、运行监控模块,其中:所述开发服务模块用于代码编辑、代码存储、代码依赖管理;所述流水线调度模块用于开发流水线及运维流水线的修改、编辑、发布,将整个开发流程及运维流程有机连接到一起,同时管理所有资源并根据负载情况,动态地将运行服务分配至负载较低的服务器;所述工作节点模块,用于为所述流水线调度模块提供底层运行资源,其中,所述底层运行资源根据流水线调度情况动态分配,分配完成后由流水线调度模块统一回收,为下一次的调度做准备;所述运行监控模块,用于实时采集各个环境的运行情况,并将各个环境的运行情况反馈给开发运维人员及流水线调度模块,为开发流水线及运维流水线调度提供运行数据支持。2.根据权利要求1所述的开发运维一体化系统,其特征在于,所述流水线调度模块还用于,接收用户发送的代码构建请求,判断各个节点当前剩...
【专利技术属性】
技术研发人员:孔祥文,
申请(专利权)人:北京神州数字科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。