一种基于DevSecOps平台的软件处理方法与系统与流程

文档序号:30380575发布日期:2022-06-11 03:44阅读:146来源:国知局
一种基于DevSecOps平台的软件处理方法与系统与流程
一种基于devsecops平台的软件处理方法与系统
技术领域
1.本技术涉及软件处理技术领域,更为具体来说,本技术涉及一种基于devsecops平台的软件处理方法与系统。


背景技术:

2.随着信息技术的发展,软件规模越来越大,利用devsecops平台进行软件测试的应用开始流行。专利申请cn112000585a提出一种基于devsecops平台的安全测试方法,提出基于应用项目的特点通过编辑系统对开发环节进行测试流程的自定义编辑,以形成安全测试流水线,再解析所述安全测试流水线的配置要求,并基于所述自动化安装部署工具将解析出来的所述配置要求自动化部署到devsecops平台的安全测试服务程序中,当满足所述触发方式时,所述devsecops平台以所述安全测试流水线自动对所述应用项目进行测试。
3.尽管上述专利申请提升了测试效率,但在软件研发、软件编译、软件测试和软件发布之间形成了技术壁垒,不能形成强有力的调度合力,以对软件形成更高效简洁的综合处理。


技术实现要素:

4.基于上述技术问题,本发明旨在利用devsecops平台的持续集成工具和持续部署工具实现对软件的综合处理,基于持续集成工具对源代码依次进行编译与提测,将通过提测的软件版本提交发版,并基于持续部署工具对提交发版对应的软件版本进行部署。
5.本发明第一方面提供了一种基于devsecops平台的软件处理方法,所述devsecops平台配置有持续集成工具和持续部署工具,所述方法包括:
6.获取待处理软件对应的源代码;
7.基于所述持续集成工具对所述源代码依次进行编译与提测,并将通过提测的软件版本提交发版;
8.基于所述持续部署工具对提交发版对应的软件版本进行部署。
9.在本发明的一些实施例中,对所述源代码依次进行编译,包括:
10.将所述源代码下发到不同编译节点进行编译,其中,所述不同编译节点为不同的开发测试机;
11.在编译的同时对所述源代码进行静态扫描和安全漏洞扫描;
12.在所述源代码通过所述静态扫描和安全漏洞扫描且编译成功完成时,则将编译后生成的可执行文件传送到制品库。
13.在本发明的一些实施例中,对所述源代码依次进行提测,包括:
14.从制品库中下载所述可执行文件;
15.将所述可执行文件部署到测试服务器进行安全漏洞扫描;
16.若安全漏洞扫描结果低于高危,则确定为所述可执行文件通过提测。
17.在本发明的一些实施例中,将通过提测的软件版本提交发版,包括:
18.将通过提测的软件版本提交发版;
19.关联出与预发版软件对应的需要发版的内容;
20.自动触发钉钉审批流程进行线上审批。
21.在本发明的一些实施例中,基于所述持续部署工具对提交发版对应的软件版本进行部署,包括:
22.通过钉钉审批流程审批后触发部署命令;
23.基于devsecops平台生成部署列表,其中,部署列表中至少包括机房的各部署节点,所述各部署节点为不同的生产机器;
24.将通过钉钉审批流程审批的软件版本对应的安装包同步安装到机房的各部署节点;
25.实时获取各部署节点的部署进度和最终部署状态。
26.在本发明的一些实施例中,所述方法还包括:若所述最终部署状态为失败且短时间内无法定位失败原因时,回滚到部署前的上一个版本。
27.本发明第二方面提供了一种基于devsecops平台的软件处理系统,所述devsecops平台配置有持续集成工具和持续部署工具,所述系统包括:
28.获取模块,用于获取待处理软件对应的源代码;
29.编译与提测模块,用于基于所述持续集成工具对所述源代码依次进行编译与提测,并将通过提测的软件版本提交发版;
30.部署模块,用于基于所述持续部署工具对提交发版对应的软件版本进行部署。
31.在本发明的一些实施例中,所述系统还包括度量可视化模块,用于采集软件处理数据并将其生成度量报表,并依据所述度量报表形成度量数据展示仪表盘。
32.本发明第三方面提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以下步骤:
33.获取待处理软件对应的源代码;
34.基于所述持续集成工具对所述源代码依次进行编译与提测,并将通过提测的软件版本提交发版;
35.基于所述持续部署工具对提交发版对应的软件版本进行部署。
36.本发明第四方面提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现以下步骤:
37.获取待处理软件对应的源代码;
38.基于所述持续集成工具对所述源代码依次进行编译与提测,并将通过提测的软件版本提交发版;
39.基于所述持续部署工具对提交发版对应的软件版本进行部署。
40.本技术实施例中提供的技术方案,至少具有如下技术效果或优点:
41.本技术实施例中提供的基于devsecops平台的软件处理方法,述devsecops平台配置有持续集成工具和持续部署工具,获取待处理软件对应的源代码,基于所述持续集成工具对所述源代码依次进行编译与提测,并将通过提测的软件版本提交发版,基于所述持续部署工具对提交发版对应的软件版本进行部署,从而打通了研发、测试和运维的技术壁垒,使得代码构建、功能测试、安全测试、软件发布等处理实现了互相协调的调度,更加地简洁、
高效和可靠,提升了软件处理的效率。同时通过对事先设定好的度量指标进行分析,可识别出团队改进项,促进团队的持续改进。
42.应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本发明。
附图说明
43.通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本技术的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
44.图1示出了本技术一示例性实施例中基于devsecops平台的软件处理方法步骤示意图;
45.图2示出了本技术一示例性实施例中构建软件处理任务过程示意图;
46.图3示出了本技术一示例性实施例cicd架构图;
47.图4示出了本技术一示例性实施例中持续交付平台界面示意图;
48.图5示出了本技术一示例性实施例中基于devsecops平台的软件处理系统结构示意图;
49.图6示出了本技术一示例性实施例所提供的一种计算机设备的结构示意图;
50.图7示出了本技术一示例性实施例所提供的一种存储介质的示意图。
具体实施方式
51.以下,将参照附图来描述本技术的实施例。但是应该理解的是,这些描述只是示例性的,而并非要限制本技术的范围。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本技术的概念。对于本领域技术人员来说显而易见的是,本技术可以无需一个或多个这些细节而得以实施。在其他的例子中,为了避免与本技术发生混淆,对于本领域公知的一些技术特征未进行描述。
52.应予以注意的是,这里所使用的术语仅是为了描述具体实施例,而非意图限制根据本技术的示例性实施例。如在这里所使用的,除非上下文另外明确指出,否则单数形式也意图包括复数形式。此外,还应当理解的是,当在本说明书中使用术语“包含”和/或“包括”时,其指明存在所述特征、整体、步骤、操作、元件和/或组件,但不排除存在或附加一个或多个其他特征、整体、步骤、操作、元件、组件和/或它们的组合。
53.现在,将参照附图更详细地描述根据本技术的示例性实施例。然而,这些示例性实施例可以多种不同的形式来实施,并且不应当被解释为只限于这里所阐述的实施例。附图并非是按比例绘制的,其中为了清楚表达的目的,可能放大了某些细节,并且可能省略了某些细节。图中所示出的各种区域、层的形状以及它们之间的相对大小、位置关系仅是示例性的,实际中可能由于制造公差或技术限制而有所偏差,并且本领域技术人员根据实际所需可以另外设计具有不同形状、大小、相对位置的区域/层。
54.下面结合说明书附图1-7给出几个实施例来描述根据本技术的示例性实施方式。需要注意的是,下述应用场景仅是为了便于理解本技术的精神和原理而示出,本技术的实施方式在此方面不受任何限制。相反,本技术的实施方式可以应用于适用的任何场景。
55.目前随着信息技术的发展,软件规模越来越大,利用devsecops平台进行软件测试的应用开始流行,虽然某种程度上提升了测试效率,但在软件研发、软件编译、软件测试和软件发布之间形成了技术壁垒,不能形成强有力的调度合力,以对软件形成更高效简洁的综合处理。
56.因此,在本技术一些示例性实施例中,提供了一种基于devsecops平台的软件处理方法,如图1所示,所述方法包括:
57.s1、获取待处理软件对应的源代码;
58.s2、基于所述持续集成工具对所述源代码依次进行编译与提测,并将通过提测的软件版本提交发版;
59.s3、基于所述持续部署工具对提交发版对应的软件版本进行部署。
60.在本发明的一些实施例中,对源代码依次进行编译,包括:将源代码下发到不同编译节点进行编译,其中,不同编译节点为不同的开发测试机;在编译的同时对源代码进行静态扫描和安全漏洞扫描;在源代码通过静态扫描和安全漏洞扫描且编译成功完成时,则将编译后生成的可执行文件传送到制品库。参考图2,用户构建一个软件处理任务,这个软件处理任务通过流水线平台建立后,调度器会将欲进行编译的源代码打包下发到不同的开发测试机,即经历所谓的集群管理过程,在此过程中会进行静态扫描和安全漏洞扫描。静态扫描不通过,则看作是构建任务失败。代码静态扫描采用“增量扫描+全量扫描”相结合的方式,在不影响构建效率的前提下生成源码的扫描分析结果,保证新合入代码和全量代码符合代码质量规范。而这里的安全漏洞扫描,将同步触发安全漏洞扫描模块,当源代码安全漏洞为中级以上,则可通过jenkinsapi,设置本次构建状态为失败。如图2所示,在源代码通过静态扫描和安全漏洞扫描且编译成功完成时,则将编译后生成的可执行文件传送到制品库。这里,如图2所示,编译生成的docker镜像推送到镜像仓库,镜像yml文件及其元数据上传到制品库。
61.再参考图3和图4,图3为cicd架构图,ci表示持续集成工具,cd表示持续部署工具,cicd在配置部署时,在多个开发测试机上部署,部署包括对安装包的安装,也包括相关环境的搭建,相关参数的配置,等等。如图3所示,jenkins集群即为多个开发测试机。图4示出了一种持续交付平台界面示意图,通过提测的软件再进行验收和审批等。可以理解的是,如图4所示,欲构建一个软件处理任务后,可以触发构建操作,选择构建所依赖的软件包,选择所基于的平台,从而建立一个软件处理任务。
62.在本技术的一些实施例中,对源代码依次进行提测,包括:从制品库中下载可执行文件;将可执行文件部署到测试服务器进行安全漏洞扫描;若安全漏洞扫描结果低于高危,则确定为可执行文件通过提测。具体而言,开发人员在系统上基于构建任务进行提测,系统会自动将关联平台名称和服务名称并自动生成提测的版本号,基于提测的版本系统会根据关联的平台和服务自动生成需要部署服务器列表,触发部署后系统上能实时展示部署进度和部署过程日志。提测版本在服务器上部署成功后根据服务配置的域名和端口,自动轮询调用awvs api进行安全漏洞扫描,安全漏洞结果为高危则无法验收,高危以下可以放行发版上线。本技术可将代码包构建工具jenkins和sonar进行结合,在代码构建过程中通过全量检查和增量检查不同策略来保证上线代码的质量;将dev和master代码版本分别与测试环境和正式环境一一对应,控制dev版本在测试环境部署成功且通过了测试的master版本
才允许在正式环境上线部署。
63.在本技术的一些实施例中,将通过提测的软件版本提交发版,包括:将通过提测的软件版本提交发版;关联出与预发版软件对应的需要发版的内容;自动触发钉钉审批流程进行线上审批。提交发版的同时,依据发版服务安装包的元数据信息,同步服务安装包到对应机房的salt-master节点,能实时监控安装包的同步速率和同步进度,对于同步失败任务可以二次触发同步。钉钉审批流程通过后运维人员触发部署动作,基于平台和服务对应资产从而生成相应的部署列表,salt-master将部署任务下发到各个部署节点并获取到jid,后期根据jid异步实时获取部署进度和部署状态,各个部署节点在部署当前版本之前都会对上一个版本进行备份,然后才会部署新版本服务。另外,作为可变换的实施方式,本方法还提供了容器化部署,可以选择性调用kubernetes集群提供的api接口进行部署。kubernetes简称k8s,是用8代替名字中间的8个字符“ubernete”而成的缩写。是一个开源的用于管理云平台中多个主机上的容器化的应用,kubernetes的目标是让部署容器化的应用简单并且高效(powerful),kubernetes提供了应用部署、规划、更新和维护的一种机制通过,通过k8s api实时获取部署进度和最终部署状态。
64.在本技术的一些实施例中,基于持续部署工具对提交发版对应的软件版本进行部署,包括:通过钉钉审批流程审批后触发部署命令;基于devsecops平台生成部署列表,其中,部署列表中至少包括机房的各部署节点,各部署节点为不同的生产机器;将通过钉钉审批流程审批的软件版本对应的安装包同步安装到机房的各部署节点;实时获取各部署节点的部署进度和最终部署状态。再如图3所示,生产机器可以用salt,salt是一个配置管理系统,能够维护预定义状态的远程节点。测试时部署在多个开发测试机,而通过测试的生产阶段,就需要部署于多个生产机器。
65.在具体实施中,研发人员在devsecops平台上基于之前提测通过的版本进行提交上线发版,发版版本里会自动关联出需要发版的平台、发版的服务、发版的程序包、发版时间、发版内容等相关内容,发版提交后会自动触发钉钉审批流,再根据对应的平台研发、测试、运维负责人进行线上审批,审批通过后才允许进行线上部署。当然可以理解的是,所述方法还包括:若最终部署状态为失败且短时间内无法定位失败原因时,回滚到部署前的上一个版本。
66.devsecops平台集成了一套awvs集群,dev版本在测试环境部署后通过轮询算法对awvs节点进行api任务调度,实时获取到安全测试结果在平台前端进行实时展示;系统集成了钉钉oa线上审批流程,根据平台触发对应的研发、测试、运维负责人进行线上审批,审批通过后才允许进行线上部署,审批记录可审计可溯源;构建的程序包支持跨异地多数据中心进行分发,通过平台异步批量部署,能实时监控部署进度和结果。
67.应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本技术。
68.在本技术一些示例性实施例中,提供了一种基于devsecops平台的软件处理系统,所述devsecops平台配置有持续集成工具和持续部署工具,所述devsecops平台配置有持续集成工具和持续部署工具,所述系统包括:
69.获取模块,用于获取待处理软件对应的源代码;
70.编译与提测模块,用于基于所述持续集成工具对所述源代码依次进行编译与提
测,并将通过提测的软件版本提交发版;
71.部署模块,用于基于所述持续部署工具对提交发版对应的软件版本进行部署。
72.在本技术的一些实施例中,所述系统还包括度量可视化模块,用于采集软件处理数据并将其生成度量报表,并依据所述度量报表形成度量数据展示仪表盘。在具体实现过程中,可先定义过程指标,用于指导过程改进,定义结果指标用于评价结果,建立价值流交付模型,采集基于devsecops平台的软件处理系统中的各类数据形成度量报表,依据各个度量指标的明细报表形成全公司级别的度量数据展示仪表盘,支持不同层级(部门、团队、阶段)的下钻。系统还用于基于效能分析模型逐层下钻,帮助团队挖掘影响效率和质量的根因,进而量化改进效果。
73.应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本发明。
74.在本技术一些示例性实施例中,还提供了一种基于devsecops平台的软件处理系统,所述devsecops平台配置有持续集成工具和持续部署工具,所述devsecops平台配置有持续集成工具和持续部署工具,如图5所示,所述系统包括:jenkins模块、提测模块、验收模块、发版模块、审批模块、配置变更模块、归档模块;jenkins模块用于对源代码的编译,提测模块用于对通过编译的可执行文件的提测,对源代码依次进行提测包括:从制品库中下载可执行文件,将可执行文件部署到测试服务器进行安全漏洞扫描,若安全漏洞扫描结果低于高危,则确定为可执行文件通过提测。验收模块用于对通过提测的文件进行验收,如通过钉钉进行审批和验收。验收模块、发版模块、审批模块、配置变更模块、归档模块,顾名思义,分别用于验收、发版、审批、配置变更及归档。
75.在另外一种具体实现方式中,所述基于devsecops平台的软件处理系统还包括同步模块、部署模块、回滚模块,提测时会触发部署模块,将可执行文件部署到测试服务器进行安全漏洞扫描,同步模块用于实现系统的同步功能,回滚模块用于回滚,若最终部署状态为失败且短时间内无法定位失败原因时,回滚到部署前的上一个版本。
76.还需要强调的是,本技术实施例中提供的系统可以基于人工智能技术对相关的数据进行获取和处理。其中,人工智能(artificial intelligence,ai)是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。人工智能基础技术一般包括如传感器、专用人工智能芯片、云计算、分布式存储、大数据处理技术、操作/交互系统、机电一体化等技术。人工智能软件技术主要包括计算机视觉技术、机器人技术、生物识别技术、语音处理技术、自然语言处理技术以及机器学习/深度学习等几大方向。
77.下面请参考图6,其示出了本技术的一些实施方式所提供的一种计算机设备的示意图。如图6所示,所述计算机设备2包括:处理器200,存储器201,总线202和通信接口203,所述处理器200、通信接口203和存储器201通过总线202连接;所述存储器201中存储有可在所述处理器200上运行的计算机程序,所述处理器200运行所述计算机程序时执行本技术前述任一实施方式所提供的基于devsecops平台的软件处理方法。
78.其中,存储器201可能包含高速随机存取存储器(ram:random access memory),也可能还包括非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。通过至少一个通信接口203(可以是有线或者无线)实现该系统网元与至少一个其他网元之间的通
信连接,可以使用互联网、广域网、本地网、城域网等。
79.总线202可以是isa总线、pci总线或eisa总线等。所述总线可以分为地址总线、数据总线、控制总线等。其中,存储器201用于存储程序,所述处理器200在接收到执行指令后,执行所述程序,前述本技术实施例任一实施方式揭示的所述基于devsecops平台的软件处理方法可以应用于处理器200中,或者由处理器200实现。
80.处理器200可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器200中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器200可以是通用处理器,包括中央处理器(central processing unit,简称cpu)、网络处理器(network processor,简称np)等;还可以是数字信号处理器(dsp)、专用集成电路(asic)、现成可编程门阵列(fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本技术实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本技术实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器201,处理器200读取存储器201中的信息,结合其硬件完成上述方法的步骤。
81.本技术实施方式还提供一种与前述实施方式所提供的基于devsecops平台的软件处理方法对应的计算机可读存储介质,请参考图7,图7示出的计算机可读存储介质为光盘30,其上存储有计算机程序(即程序产品),所述计算机程序在被处理器运行时,会执行前述任意实施方式所提供的基于devsecops平台的软件处理方法。
82.另外,所述计算机可读存储介质的例子还可以包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他光学、磁性存储介质,在此不再一一赘述。
83.本技术的上述实施例提供的计算机可读存储介质与本技术实施例提供的空分复用光网络中量子密钥分发信道分配方法出于相同的发明构思,具有与其存储的应用程序所采用、运行或实现的方法相同的有益效果。
84.本技术实施方式还提供一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现前述任意实施方式所提供的基于devsecops平台的软件处理方法,包括:获取待处理软件对应的源代码;基于所述持续集成工具对所述源代码依次进行编译与提测,并将通过提测的软件版本提交发版;基于所述持续部署工具对提交发版对应的软件版本进行部署。
85.需要说明的是:在此提供的算法和显示不与任何特定计算机、虚拟装置或者其它设备有固有相关。各种通用装置也可以与基于在此的示教一起使用。根据上面的描述,构造这类装置所要求的结构是显而易见的。此外,本技术也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本技术的内容,并且上面对特定语言所做的描述是为了披露本技术的最佳实施方式。在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本技术的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并
未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
86.类似地,应当理解,为了精简本技术并帮助理解各个发明方面中的一个或多个,在上面对本技术的示例性实施例的描述中,本技术的各个特征有时被一起分组到单个实施例、图或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本技术要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本技术的单独实施例。
87.本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
88.本技术的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(dsp)来实现根据本技术实施例的虚拟机的创建装置中的一些或者全部部件的一些或者全部功能。本技术还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序。实现本技术的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
89.以上所述,仅为本技术较佳的具体实施方式,但本技术的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本技术揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本技术的保护范围之内。因此,本技术的保护范围应以所述权利要求的保护范围为准。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1