基于DevSecOps平台的软件开发管理方法与流程

文档序号:32405491发布日期:2022-12-02 20:23阅读:121来源:国知局
基于DevSecOps平台的软件开发管理方法与流程
基于devsecops平台的软件开发管理方法
技术领域
1.本技术涉及软件开发领域,尤其是一种基于devsecops平台的软件开发管理方法。


背景技术:

2.传统的软件组织将开发、测试和运维设为各自独立的部门,交付的软件产品需要在一个部门中处理完成后才能流转到下一个部门,这一模式使得软件产品的问题无法尽早发现,拉长了软件产品的迭代周期。
3.devops是一组过程、方法与系统的统称,主要用于促进开发、技术运营和质量保障部分之间的沟通、协作与整治,通过devops平台进行软件开发管理可以使得构建、测试、发布软件能够更加地快速、频繁和可靠,从而实现持续集成、持续部署和持续交付,相比与传统的开发管理方法可以加快软件产品的迭代开发速度。
4.由于传统的devops不关注安全测试部分,而如今信息安全越来越受到人们重视,因此通过将安全测试集成到现有的devops流程中产生了devsecops平台,devsecops平台是在软件开发生命周期的每个阶段自动实施安全措施,支持以敏捷方法和devops的速度开发安全的平台,逐步在软件开发领域被大量实践且取得了很好的效果。但是devsecops平台只适用于基于x86芯片架构的通用软件栈的软件开发,这大大限制了devsecops平台在软件开发领域的应用。


技术实现要素:

5.本技术人针对上述问题及技术需求,提出了一种基于devsecops平台的软件开发管理方法,本技术的技术方案如下:
6.一种基于devsecops平台的软件开发管理方法,该方法包括:
7.利用devsecops平台的持续部署工具获取模拟docker镜像,启动模拟docker镜像并触发启动qemu镜像部署得到与待开发软件针对的芯片架构相匹配的模拟运行环境,待开发软件针对的芯片架构是devsecops平台支持的通用芯片架构之外的其他芯片架构;
8.利用devsecops平台的持续集成工具对待开发芯片的软件开发代码、基于部署得到的模拟运行环境执行开发管理任务得到制品并上传制品库;
9.利用devsecops平台的持续部署工具从制品库获取制品并基于部署得到的模拟运行环境完成部署。
10.其进一步的技术方案为,该方法还包括:
11.利用devsecops平台的持续部署工具获取通用docker镜像,启动通用docker镜像部署得到通用运行环境;
12.则制作得到制品的方法包括:在部署得到的模拟运行环境中对软件开发代码执行开发管理任务中的部分任务,在部署得到的通用运行环境中对软件开发代码执行开发管理任务中的其他任务;
13.其中,通用运行环境支持针对通用芯片架构的待开发软件的开发、而不支持通用
芯片架构之外的其他芯片架构的待开发软件的开发。
14.其进一步的技术方案为,制作得到制品的方法包括:
15.在部署得到的模拟运行环境中对软件开发代码执行开发管理任务中需要编译运行的部分任务,在部署得到的通用运行环境中对软件开发代码执行开发管理任务中不需要编译运行的其他任务。
16.其进一步的技术方案为,需要编译运行的部分任务包括静态安全扫描任务、白盒测试任务和单元测试任务,不需要编译运行的其他任务包括代码规范扫描任务。
17.其进一步的技术方案为,通用芯片架构为x86芯片架构,通用芯片架构之外的其他芯片架构为非x86芯片架构。
18.其进一步的技术方案为,模拟docker镜像中打包有qemu镜像和启动运行脚本,启动运行脚本包含启动qemu镜像的执行指令。
19.其进一步的技术方案为,启动模拟docker镜像并触发启动qemu镜像部署得到模拟运行环境的方法包括:
20.启动模拟docker镜像、运行启动运行脚本触发启动模拟docker镜像内的qemu镜像,创建得到模拟运行环境。
21.其进一步的技术方案为,模拟docker镜像中打包有下载运行脚本,下载运行脚本中包含qemu镜像的下载地址以及从下载地址下载qemu镜像并启动的执行指令。
22.其进一步的技术方案为,启动模拟docker镜像并触发启动qemu镜像部署得到模拟运行环境的方法包括:
23.启动模拟docker镜像、运行下载运行脚本触发从qemu镜像的下载地址下载qemu镜像并启动,创建得到模拟运行环境。
24.其进一步的技术方案为,该方法还包括:
25.当待开发软件针对的芯片架构相匹配的模拟运行环境发生变化时,利用devsecops平台的持续部署工具重新部署得到与待开发软件针对的芯片架构相匹配的模拟运行环境。
26.本技术的有益技术效果是:
27.本技术公开了一种基于devsecops平台的软件开发管理方法,该方法利用利用devsecops平台的持续部署工具通过基于qemu的docker镜像部署与待开发软件针对的芯片架构相匹配的模拟运行环境,使得非基于通用芯片架构的通用软件栈的软件也可以利用devsecops平台进行开发,扩展了devsecops平台的应用范围,使得非基于通用芯片架构的通用软件栈的待开发软件也可以利用devsecops平台实现快速迭代开发。
28.另外该方法对模拟运行环境和通用运行环境进行结合应用,不仅利用模拟运行环境匹配芯片架构,还结合利用了通用运行环境的高性能,使得在开发管理方法得以实现的基础上,可以进一步加快持续集成速度、从而加快迭代开发速度。
附图说明
29.图1是本技术一个实施例中利用devsecops平台基于模拟运行环境进行软件开发管理的流程示意图。
30.图2是另一个实施例中利用devsecops平台基于模拟运行环境和通用运行环境结
合的方法进行软件开发管理的流程示意图。
具体实施方式
31.下面结合附图对本技术的具体实施方式做进一步说明。
32.本技术公开了一种基于devsecops平台的软件开发管理方法,该方法针对的待开发软件是适用于devsecops平台支持的通用芯片架构之外的其他芯片架构的软件,devsecops平台中软件的检测及运行环境往往是基于docker的云化环境,适用于基于通用芯片架构的通用软件栈的软件开发,而对于针对其他芯片架构的待开发软件,由于指令集的问题,不能直接使用devsecops平台中的这种云化环境,从而导致目前是无法利用devsecops平台来开发管理这类待开发软件的。
33.本技术提供了一种方法使得利用devsecops平台可以实现对这类待开发软件的开发管理,扩展了devsecops平台的可用范围。而对于devsecops平台所支持的通用芯片架构的软件,直接按照现有常规方法进行开发管理即可,本技术后续对针对通用芯片架构的软件的开发管理过程不再介绍。在实际应用时,通用芯片架构为x86芯片架构,通用芯片架构之外的其他芯片架构为非x86芯片架构,比如arm芯片架构或其他各类自研芯片架构。
34.本技术提供的方法包括如下步骤:
35.步骤s1,利用devsecops平台的持续部署工具获取模拟docker镜像,启动模拟docker镜像并触发启动qemu镜像部署得到与待开发软件针对的芯片架构相匹配的模拟运行环境。
36.这里的待开发软件针对的芯片架构是devsecops平台支持的通用芯片架构之外的其他芯片架构,可以是上述提到的arm芯片架构或其他各类自研芯片架构,本技术对此不作限定。
37.在一个实施例中,模拟docker镜像中打包有qemu镜像和启动运行脚本,启动运行脚本包含启动qemu镜像的执行指令。则在该实施例中,启动模拟docker镜像时会自动运行启动运行脚本,从而触发启动模拟docker镜像内的qemu镜像,即可创建得到模拟运行环境。另外,模拟docker镜像与其内部打包的qemu镜像预先进行了端口映射和目录映射,模拟docker镜像内的qemu镜像在启动时直接使用模拟docker镜像启动映射的内部端口即可。
38.在另一个实施例中,由于qemu镜像往往比较大,若直接将qemu镜像打包至模拟docker镜像内,会显得模拟docker镜像很臃肿。因此为了简化模拟docker镜像,在该实施例中,模拟docker镜像中并不直接包含qemu镜像,而是打包有下载运行脚本,下载运行脚本中包含qemu镜像的下载地址以及从下载地址下载qemu镜像并启动的执行指令。则在该实施例中,启动模拟docker镜像时会自动运行下载运行脚本,从而触发从qemu镜像的下载地址处下载qemu镜像并启动,从而创建得到模拟运行环境。在该实施例中,下载运行脚本中一般预先指定了模拟docker镜像与qemu镜像之间的端口映射和目录映射,在下载完启动qemu镜像时直接使用模拟docker镜像启动映射的内部端口即可。步骤s2,利用devsecops平台的持续集成工具对待开发芯片的软件开发代码、基于部署得到的模拟运行环境执行开发管理任务得到制品并上传制品库。
39.对待开发芯片的软件开发代码所执行的开发管理任务的操作流程与devsecops平台的常规应用类似,包括:研发人员在本地开发完成后提交软件开发代码至git系统,然后
git系统通过webhooks触发jenkins检测,jenkins通过pipeline调用云资源平台上的jenkins节点进行相应的构建与扫描,然后对软件开发代码通过编译、扫描、单测运行以及相应的门禁指标之后制作得到制品并上传制品库。
40.步骤s3,利用devsecops平台的持续部署工具从制品库获取制品并基于部署得到的模拟运行环境完成部署。也即在部署得到的模拟运行环境中创建制品对应的实例。
41.基于本技术提供的上述方法,考虑到qemu本身是设备模拟环境,其性能相比于docker会差很多,因此在另一个实施例中,采用模拟运行环境与通用运行环境结合的方法,也即除了利用devsecops平台的持续部署工具获取模拟docker镜像部署模拟运行环境之外,该方法还利用devsecops平台的持续部署工具获取通用docker镜像,启动通用docker镜像部署得到通用运行环境,通用运行环境支持针对通用芯片架构的待开发软件的开发、而不支持通用芯片架构之外的其他芯片架构的待开发软件的开发,是现有的devsecops平台实现对x86软件的检测及运行时基于docker的云化环境。
42.则在利用devsecops平台的持续集成工具对待开发芯片的软件开发代码执行开发管理任务得到制品时,在部署得到的模拟运行环境中对软件开发代码执行开发管理任务中的部分任务,在部署得到的通用运行环境中对软件开发代码执行开发管理任务中的其他任务。进一步在该实施例中,在部署得到的模拟运行环境中对软件开发代码执行开发管理任务中需要编译运行的部分任务,在部署得到的通用运行环境中对软件开发代码执行开发管理任务中不需要编译运行的其他任务。结合实际执行的各项开发管理任务,需要编译运行的部分任务包括静态安全扫描任务(sast)、白盒测试任务(fuzzing)和单元测试任务,不需要编译运行的其他任务包括代码规范扫描任务。
43.也即在该实施例中,对需要编译运行的部分任务在模拟运行环境中运行以匹配待开发软件所针对的芯片架构,对不需要编译运行的部分任务在通用运行环境中运行以提高性能。相比于所有开发管理任务都在模拟运行环境中运行的方法来说,可以更进一步加快持续集成速度,从而加快迭代开发速度。
44.在部署得到模拟运行环境后,可以利用devsecops平台对待开发软件进行持续集成、持续部署和持续交付。而当待开发软件针对的芯片架构相匹配的模拟运行环境发生变化时,利用devsecops平台的持续部署工具重新部署得到与待开发软件针对的芯片架构相匹配的模拟运行环境,也即对模拟运行环境进行更新,以实时匹配待开发软件针对的芯片架构。
45.以上所述的仅是本技术的优选实施方式,本技术不限于以上实施例。可以理解,本领域技术人员在不脱离本技术的精神和构思的前提下直接导出或联想到的其他改进和变化,均应认为包含在本技术的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1