CN114968812A - 一种基于kubernetes的代码质量检测方法 - Google Patents

一种基于kubernetes的代码质量检测方法 Download PDF

Info

Publication number
CN114968812A
CN114968812A CN202210695599.XA CN202210695599A CN114968812A CN 114968812 A CN114968812 A CN 114968812A CN 202210695599 A CN202210695599 A CN 202210695599A CN 114968812 A CN114968812 A CN 114968812A
Authority
CN
China
Prior art keywords
code
server
quality detection
code quality
kubernets
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202210695599.XA
Other languages
English (en)
Inventor
华张辉
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Zhongjiao Yunzhi Digital Technology Co ltd
Original Assignee
Zhongjiao Yunzhi Digital Technology Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Zhongjiao Yunzhi Digital Technology Co ltd filed Critical Zhongjiao Yunzhi Digital Technology Co ltd
Priority to CN202210695599.XA priority Critical patent/CN114968812A/zh
Publication of CN114968812A publication Critical patent/CN114968812A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3604Software analysis for verifying properties of programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Stored Programmes (AREA)

Abstract

本发明公开了一种基于kubernetes的代码质量检测方法,包括开发人员编写应用程序源代码;将应用程序源代码提交至源代码管理工具SCM;源代码管理工具SCM触发CI/CD Server执行获取最新源代码,将自定义的CI/CD Server部署至kubernetes中管理;调用代码质量检测Server,对代码质量检测;获得代码质量检测结果和存储代码质量检测结果。本方案,将代码质量检测工具部署至kubernetes内部,采用统一平台管理,统一汇总检测结果,程序员获取缺陷信息的速度快,代码质量修复效率高,利于维护;将代码质量检测工具客户端集成至CI/CD节点工具中,将CI/CD做成Docker镜像,做到一次集成,随处运行;统一规划至kubernetes,无需另外维护代码质量检测平台,节约运行维护成本,方便管理。

Description

一种基于kubernetes的代码质量检测方法
技术领域
本发明涉及代码质量检测技术领域,具体而言,涉及一种基于kubernetes的代码质量检测方法。
背景技术
信息安全是一个随时都在发展和变化的动态事物,攻击的领域已经由传统的网络和系统层面上升到了应用层面,近期越来越多的应用系统面临攻击威胁。应用系统的安全性能,一方面立足于系统安全方案的分析与设计,而另一方面同样也取决于系统实现过程中是否存在安全性缺陷。为降低应用系统的安全风险,减少软件代码编写中可能出现的安全漏洞,提高应用系统自身安全防护能力,软件的应用方越来越依赖于采用源代码安全扫描工具,在软件开发的过程中去帮助软件开发团队快速查找、定位、修复和管理软件代码安全问题。
应用静态源代码质量检测的主要价值在于能够快速、准确地查找,定位和修复软代码中存在的安全风险,增加工具投资所带来的最大效益,节约代码安全分析的成本,最终开发安全的,可靠的软件。
而现有的代码质量检测,一般是在各环节独立检测,缺少统一平台的管理,无法统一汇总检测结果,程序员获取缺陷信息的速度慢,代码质量修复效率过低,不利于维护。
发明内容
本发明的主要目的在于提供一种基于kubernetes的代码质量检测方法,以改善相关技术中,现有的代码质量检测,一般是在各环节独立检测,缺少统一平台的管理,无法统一汇总检测结果,程序员获取缺陷信息的速度慢,代码质量修复效率过低,不利于维护的问题。
为了实现上述目的,本发明提供了一种基于kubernetes的代码质量检测方法,具体包括以下步骤:
S1、编码:开发人员编写应用程序源代码;
S2、将应用程序源代码提交至源代码管理工具SCM;
S3、源代码管理工具SCM触发CI/CD Server执行获取最新源代码,将自定义的CI/CD Server部署至kubernetes中管理;
S4、调用代码质量检测Server,对代码质量检测,获得代码质量检测结果;
S5、存储代码质量检测结果。
在本发明的一种实施例中,所述S2中,应用程序源代码提交至源代码管理工具的具体步骤为:
S21、创建源代码管理工具SCM的yaml文件:deployment-GitLab.yaml;
S22、在kubernetes中创建SCM的deployment;
S23、提交源代码至源代码管理工具SCM中。
在本发明的一种实施例中,所述源代码管理工具SCM采用GitLab。
在本发明的一种实施例中,所述S3中,SCM触发CI/CD Server执行获取最新源代码,将自定义的CI/CD Server部署至kubernetes中管理的具体步骤为:
S31、创建CI/CD Server的yaml文件:deployment-cicd.yaml;
S32、制作CI/CD Server的基础镜像;
S33、将代码质量检测的client集成至CI/CD Server的基础镜像中,以便于在同一POD中调用;
S34、将自定义的CI/CD Server部署至kubernetes中管理;
S35、SCM正常触发CI/CD Server构建job。
在本发明的一种实施例中,所述S32和S33中,基础镜像采用Docker镜像。
在本发明的一种实施例中,所述S4中,调用代码质量检测Server的具体步骤为:
S41、创建代码质量检测Server的yaml文件:deployment-checkServer.yaml;
S42、由CI/CD中集成的代码质量检测的client,将扫描到的结果给代码质量检测Server进行分析。
在本发明的一种实施例中,各所述yaml文件的数据类型包括原码、定义和用户定义。
在本发明的一种实施例中,所述S5中,存储代码质量检测结果数据以数据库为介质存储,并提供web页面供开发人员查看。
与现有技术相比,本发明的有益效果是:
1、该基于kubernetes的代码质量检测方法,将代码质量检测工具部署至kubernetes内部,实现集群化统一管理,统一汇总检测结果,程序员获取缺陷信息的速度快,代码质量修复效率高,利于维护;
2、该基于kubernetes的代码质量检测方法,将代码质量检测工具客户端集成至CI/CD节点工具中,将CI/CD做成Docker镜像,做到一次集成,随处运行;
3、该基于kubernetes的代码质量检测方法,统一规划至kubernetes,无需另外维护代码质量检测平台,节约运行维护成本,方便管理。
附图说明
图1为根据本发明实施例提供的基于kubernetes的代码质量检测方法的流程示意框图;
图2为根据本发明实施例提供的应用程序源代码提交至源代码管理工具的示意框图;
图3为根据本发明实施例提供的SCM触发CI/CD Server执行获取最新源代码的示意框图;
图4为根据本发明实施例提供的调用代码质量检测Server的示意框图;
图5为根据本发明实施例提供的基于kubernetes的代码质量检测方法的流程示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
在本发明中,术语“上”、“下”、“左”、“右”、“前”、“后”、“顶”、“底”、“内”、“外”、“中”、“竖直”、“水平”、“横向”、“纵向”等指示的方位或位置关系为基于附图所示的方位或位置关系。这些术语主要是为了更好地描述本发明及其实施例,并非用于限定所指示的装置、元件或组成部分必须具有特定方位,或以特定方位进行构造和操作。
并且,上述部分术语除了可以用于表示方位或位置关系以外,还可能用于表示其他含义,例如术语“上”在某些情况下也可能用于表示某种依附关系或连接关系。对于本领域普通技术人员而言,可以根据具体情况理解这些术语在本发明中的具体含义。
另外,术语“多个”的含义应为两个以及两个以上。
需要说明的是,在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本发明。
在进行具体描述前,对行业中现有的名词、技术内容等进行必要的介绍,以方便对本方案进行充分的理解。
代码扫描:静态源代码扫描是近年被人提及较多的软件应用安全解决方案之一。它是指在软件工程中,程序员在写好源代码后,无需经过编译器编译,而直接使用一些扫描工具对其进行扫描,找出代码当中存在的一些语义缺陷、安全漏洞的解决方案。静态扫描技术已经从90年代时候的,编码规则匹配这种由编译技术拓展过来的分析技术,向程序模拟全路径执行的方向发展,由此,这种模拟执行相对的执行路径比动态执行更多,能够发现很多动态测试难以发现的缺陷。
CI/CD是一种通过在应用开发阶段引入自动化来频繁向客户交付应用的方法。CI/CD的核心概念是持续集成、持续交付和持续部署。作为一个面向开发和运营团队的解决方案,CI/CD主要针对在集成新代码时所引发的问题(亦称:“集成地狱”)。
Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器或Windows机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。
实施例1
请参阅图1-图5,本发明提供了一种基于kubernetes的代码质量检测方法,具体包括以下步骤:
S1、编码:开发人员编写应用程序源代码;
S2、将应用程序源代码提交至源代码管理工具SCM;
S3、源代码管理工具SCM触发CI/CD Server执行获取最新源代码,将自定义的CI/CD Server部署至kubernetes中管理;
S4、调用代码质量检测Server,对代码质量检测,获得代码质量检测结果;
S5、存储代码质量检测结果,需要说明的是,存储代码质量检测结果数据以数据库为介质存储,并提供web页面供开发人员查看。
请参阅图2,S2中,应用程序源代码提交至源代码管理工具的具体步骤为:
S21、创建源代码管理工具SCM的yaml文件:deployment-GitLab.yaml;
S22、在kubernetes中创建SCM的deployment;
S23、提交源代码至源代码管理工具SCM中。
需要说明的是:在本实施例中,源代码管理工具SCM采用GitLab;GitLab是一个用于管理系统的开源项目,使用Git作为代码管理工具,并在此基础上搭建起来的Web服务;Git内核已经成熟到可以独立地用作版本控制,在本申请中,源代码管理工具SCM采用GitLab,能够达到良好的管理效果。
请参阅图3,S3中,SCM触发CI/CD Server执行获取最新源代码,将自定义的CI/CDServer部署至kubernetes中管理的具体步骤为:
S31、创建CI/CD Server的yaml文件:deployment-cicd.yaml;
S32、制作CI/CD Server的基础镜像;
S33、将代码质量检测的client集成至CI/CD Server的基础镜像中,以便于在同一POD中调用;
S34、将自定义的CI/CD Server部署至kubernetes中管理;
S35、SCM正常触发CI/CD Server构建job,在本申请中,CI/CD可让持续自动化和持续监控贯穿于应用的整个生命周期(从集成和测试阶段,到交付和部署)。基于Kubernetes更加稳定的为软件开发提供服务。
需要说明的是:S32和S33中,基础镜像采用Docker镜像,本申请中,采用Docker特性,将持续集成持续部署的应用程序打包到可移植的容器中,使用Kubernetes容器编排引擎管理。
请参阅图4,调用代码质量检测Server的具体步骤为:S41、创建代码质量检测Server的yaml文件:deployment-checkServer.yaml;
S42、由CI/CD中集成的代码质量检测的client,将扫描到的结果给代码质量检测Server进行分析。
需要说明的是:源代码管理工具SCM的yaml文件、CI/CD Server的yaml文件和代码质量检测Server的yaml文件中,各yaml文件的数据类型包括原码、定义和用户定义,这样可以根据各自的需求,进行选择数据类型;
YAML的语法和其他高级语言类似,并且可以简单表达清单、散列表,标量等数据形态。它使用空白符号缩进和大量依赖外观的特色,特别适合用来表达或编辑数据结构、各种配置文件、倾印调试内容、文件大纲(例如:许多电子邮件标题格式和YAML非常接近)。尽管它比较适合用来表达层次结构式(hierarchical model)的数据结构,不过也有精致的语法可以表示关系性(relational model)的数据。由于YAML使用空白字符和分行来分隔数据,使得它特别适合用grep/Python/Perl/Ruby操作。其让人最容易上手的特色是巧妙避开各种封闭符号,如:引号、各种括号等,比较方便使用。
实施例2
下面,以开发数字课程教材云平台为例进行说明。
一种基于kubernetes的代码质量检测方法,具体包括以下步骤:
S1、编码:开发人员编写数字课程教材云平台程序源代码;
S2、将数字课程教材云平台程序源代码提交至源代码管理工具SCM;
S3、源代码管理工具SCM触发CI/CD Server执行获取最新源代码,将自定义的CI/CD Server部署至kubernetes中管理;
S4、调用代码质量检测Server,对数字课程教材云平台代码质量检测,获得数字课程教材云平台代码质量检测结果;
S5、存储数字课程教材云平台代码质量检测结果,需要说明的是,存储数字课程教材云平台代码质量检测结果数据以数据库为介质存储,并提供web页面供开发人员查看。
在本实施例中,S2中,数字课程教材云平台程序源代码提交至源代码管理工具的具体步骤为:
S21、创建源代码管理工具SCM的yaml文件:deployment-GitLab.yaml;
S22、在kubernetes中创建SCM的deployment;
S23、提交源代码至源代码管理工具SCM中,源代码管理工具SCM采用GitLab。
在本实施例中,S3中,SCM触发CI/CD Server执行获取最新源代码,将自定义的CI/CD Server部署至kubernetes中管理的具体步骤为:
S31、创建CI/CD Server的yaml文件:deployment-cicd.yaml;
S32、制作CI/CD Server的基础镜像;
S33、将代码质量检测的client集成至CI/CD Server的基础镜像中,基础镜像采用Docker镜像,以便于在同一POD中调用;
S34、将自定义的CI/CD Server部署至kubernetes中管理;
S35、SCM正常触发CI/CD Server构建job,在本申请中,CI/CD可让持续自动化和持续监控贯穿于应用的整个生命周期(从集成和测试阶段,到交付和部署)。基于Kubernetes更加稳定的为软件开发提供服务。
在本实施例中,调用代码质量检测Server的具体步骤为:S41、创建代码质量检测Server的yaml文件:deployment-checkServer.yaml;
S42、由CI/CD中集成的代码质量检测的client,将扫描到的结果给代码质量检测Server进行分析。
源代码管理工具SCM的yaml文件、CI/CD Server的yaml文件和代码质量检测Server的yaml文件中,各yaml文件的数据类型包括原码,原码可以自动被解析器分析,方便自动操作。
综上所述:该基于kubernetes的代码质量检测方法,将代码质量检测工具部署至kubernetes内部,实现集群化统一管理,统一汇总检测结果,程序员获取缺陷信息的速度快,代码质量修复效率高,利于维护;将代码质量检测工具客户端集成至CI/CD节点工具中,将CI/CD做成Docker镜像,做到一次集成,随处运行;统一规划至kubernetes,无需另外维护代码质量检测平台,节约运行维护成本,方便管理。因此,基于kubernetes进行代码质量检测,有良好的可扩展性,可移植性和可维护性,提高代码质量检测效率以及降低运行维护成本。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (8)

1.一种基于kubernetes的代码质量检测方法,其特征在于,具体包括以下步骤:
S1、编码:开发人员编写应用程序源代码;
S2、将应用程序源代码提交至源代码管理工具SCM;
S3、源代码管理工具SCM触发CI/CD Server执行获取最新源代码,将自定义的CI/CDServer部署至kubernetes中管理;
S4、调用代码质量检测Server,对代码质量检测,获得代码质量检测结果;
S5、存储代码质量检测结果。
2.如权利要求1所述的一种基于kubernetes的代码质量检测方法,其特征在于,所述S2中,应用程序源代码提交至源代码管理工具的具体步骤为:
S21、创建源代码管理工具SCM的yaml文件:deployment-GitLab.yaml;
S22、在kubernetes中创建SCM的deployment;
S23、提交源代码至源代码管理工具SCM中。
3.如权利要求1或2所述的一种基于kubernetes的代码质量检测方法,其特征在于,所述源代码管理工具SCM采用GitLab。
4.如权利要求1所述的一种基于kubernetes的代码质量检测方法,其特征在于,所述S3中,SCM触发CI/CD Server执行获取最新源代码,将自定义的CI/CD Server部署至kubernetes中管理的具体步骤为:
S31、创建CI/CD Server的yaml文件:deployment-cicd.yaml;
S32、制作CI/CD Server的基础镜像;
S33、将代码质量检测的client集成至CI/CD Server的基础镜像中,以便于在同一POD中调用;
S34、将自定义的CI/CD Server部署至kubernetes中管理;
S35、SCM正常触发CI/CD Server构建job。
5.如权利要求4所述的一种基于kubernetes的代码质量检测方法,其特征在于,所述S32和S33中,基础镜像采用Docker镜像。
6.如权利要求4所述的一种基于kubernetes的代码质量检测方法,其特征在于,所述S4中,调用代码质量检测Server的具体步骤为:
S41、创建代码质量检测Server的yaml文件:deployment-checkServer.yaml;
S42、由CI/CD中集成的代码质量检测的client,将扫描到的结果给代码质量检测Server进行分析。
7.如权利要求1、2、4或6所述的一种基于kubernetes的代码质量检测方法,其特征在于,各所述yaml文件的数据类型包括原码、定义和用户定义。
8.如权利要求1所述的一种基于kubernetes的代码质量检测方法,其特征在于,所述S5中,存储代码质量检测结果数据以数据库为介质存储,并提供web页面供开发人员查看。
CN202210695599.XA 2022-06-20 2022-06-20 一种基于kubernetes的代码质量检测方法 Pending CN114968812A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210695599.XA CN114968812A (zh) 2022-06-20 2022-06-20 一种基于kubernetes的代码质量检测方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210695599.XA CN114968812A (zh) 2022-06-20 2022-06-20 一种基于kubernetes的代码质量检测方法

Publications (1)

Publication Number Publication Date
CN114968812A true CN114968812A (zh) 2022-08-30

Family

ID=82963127

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210695599.XA Pending CN114968812A (zh) 2022-06-20 2022-06-20 一种基于kubernetes的代码质量检测方法

Country Status (1)

Country Link
CN (1) CN114968812A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116522350A (zh) * 2023-07-05 2023-08-01 中电科新型智慧城市研究院有限公司 应用程序检测方法、装置、终端设备及可读存储介质

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116522350A (zh) * 2023-07-05 2023-08-01 中电科新型智慧城市研究院有限公司 应用程序检测方法、装置、终端设备及可读存储介质

Similar Documents

Publication Publication Date Title
US11281708B2 (en) Utilizing a machine learning model to predict metrics for an application development process
US10628152B2 (en) Automatic generation of microservices based on technical description of legacy code
US11789715B2 (en) Systems and methods for transformation of reporting schema
US11392485B2 (en) Auto test generator
US11429365B2 (en) Systems and methods for automated retrofitting of customized code objects
US20180060415A1 (en) Language tag management on international data storage
CN101162428A (zh) 软件动态演化中构件运行时状态的获取和转换方法
CN114968812A (zh) 一种基于kubernetes的代码质量检测方法
CN106951593B (zh) 一种生成保护测控装置的配置文件的方法和装置
ITMI951510A1 (it) Emulatore per un database relazionale in linguaggio sql
KR20150133902A (ko) 소프트웨어 제품 라인에 기반한 서비스 개발 시스템 및 방법
CN110851365B (zh) 一种基于大数据的软件开发云平台
JPH0749776A (ja) ソフトウェア再利用方法
US20110023010A1 (en) Reserved component container-based software development method and apparatus
Kutzias et al. Comparative Analysis of Process Models for Data Science Projects.
CN106843822A (zh) 一种执行代码生成方法及设备
CN104881455B (zh) 一种基于mysql的结构差异处理方法及系统
CN114116471A (zh) 一种自动化代码扫描方法、系统、电子设备与存储介质
CN111611173A (zh) 一种应用于微服务工程接口文档检测的系统和方法
CN111881056A (zh) 一种自动化测试框架及测试方法
CN114780175B (zh) 配置信息生成方法及装置
KR102170722B1 (ko) 무기체계 소프트웨어 제품 라인 공학 지원 장치 및 방법 및 이를 위한 기록매체
US20230342114A1 (en) Decision logic translation system and method
US20240193032A1 (en) Performing ci/cd error analysis involving software products that are dependent upon each other
CN115185500A (zh) 跨平台程序开发方法、装置、设备及其存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination