CN110347395B - 基于云计算平台的软件发布方法及装置 - Google Patents

基于云计算平台的软件发布方法及装置 Download PDF

Info

Publication number
CN110347395B
CN110347395B CN201810289471.7A CN201810289471A CN110347395B CN 110347395 B CN110347395 B CN 110347395B CN 201810289471 A CN201810289471 A CN 201810289471A CN 110347395 B CN110347395 B CN 110347395B
Authority
CN
China
Prior art keywords
test
code
image file
cloud computing
computing platform
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.)
Active
Application number
CN201810289471.7A
Other languages
English (en)
Other versions
CN110347395A (zh
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.)
China Mobile Communications Group Co Ltd
China Mobile Information Technology Co Ltd
Original Assignee
China Mobile Communications Group Co Ltd
China Mobile Information 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 China Mobile Communications Group Co Ltd, China Mobile Information Technology Co Ltd filed Critical China Mobile Communications Group Co Ltd
Priority to CN201810289471.7A priority Critical patent/CN110347395B/zh
Publication of CN110347395A publication Critical patent/CN110347395A/zh
Application granted granted Critical
Publication of CN110347395B publication Critical patent/CN110347395B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3688Test management for test execution, e.g. scheduling of test suites
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明公开了一种基于云计算平台的软件发布方法及装置,涉及通信及云计算领域,云计算平台在获取到软件包含的用于提供不同服务的代码后,根据接收到的配置信息,对检查通过的至少一个代码执行编译处理得到各个代码对应的镜像文件;根据所述配置信息在确定出需要执行集成测试时,则利用集成测试脚本对检查通过的至少一个代码对应的镜像文件进行集成测试,将测试通过的镜像文件发布到测试环境;将测试环境中测试通过的镜像文件进行发布上线。通过在云计算平台上设置开发、测试到运维功能,使得云计算平台在获取到代码后自动对代码进行检查、编译和测试和发布,不仅提高了开发到运维的发布上线效率,同时降低了运维工作量和人为误操作风险。

Description

基于云计算平台的软件发布方法及装置
技术领域
本发明涉及通信及云计算领域,尤其涉及一种基于云计算平台的软件发布方法及装置。
背景技术
在传统的软件开发流程中,开发人员经常不考虑自己写的代码会对运营造成什么影响,在交付代码之前也不会邀请运维人员参与架构设计和代码评审。开发、运维的效率低,运维人员在得到开发人员提交的代码后,需要修改配置和搭建环境后才能部署,导致开发与运维脱节,系统建设和运维效率低,且彼此之间存在壁垒。
另外,从开发提交代码、编译部署、测试到发布环境整套流程中,需要相关人员手动进行操作,不仅自动化水平不高、效率低,而且易出错;对于一些分布式系统集群中多节点多实例情况,运维难度高、运维工作量大和人为误操作风险高。
因此,如何自动化实现开发到运维流程,提高开发到运维的发布上线效率,降低运维工作量和人为误操作风险是首先要考虑的一个问题。
发明内容
本发明实施例提供一种基于云计算平台的软件发布方法及装置,用以提高开发到运维的发布上线效率,降低运维工作量和人为误操作风险。
第一方面,本发明实施例提供一种基于云计算平台的软件发布方法,云计算平台在获取到软件包含的用于提供不同服务的代码后,根据接收到的配置信息,对检查通过的至少一个代码执行编译处理,得到各个代码对应的镜像文件;然后根据所述配置信息判断是否需要对所述镜像文件执行集成测试,若需要,则利用集成测试脚本对所述检查通过的至少一个代码对应的镜像文件进行集成测试,并将测试通过的镜像文件发布到测试环境;并将测试环境中测试通过的镜像文件进行发布上线。通过设置云计算平台,在云计算平台上设置开发、测试到运维功能,使得云计算平台在获取到代码后,根据接收到的配置信息自动对代码进行检查、编译和测试和发布,不仅可以实现从开发、测试到运维的自动化,还提高了开发到运维的发布上线效率,同时降低了运维工作量和人为误操作风险。
较佳地,针对软件包含的每一代码,按照下述方法确定对该代码检查通过:
利用代码审查工具sonar对该代码进行审查,获得代码扫描报告;
若确定出所述代码扫描报告中的问题数不大于第一阈值,和/或所述代码扫描报告中的漏洞数不大于第二阈值,则确定对该代码检查通过。
在对代码进行编译之前先对代码执行代码审查操作,这样可以及时检查出代码本身存在编写错误的代码,节省了编写错误的代码执行后续流程所使用的资源。
优选地,在对检查通过的至少一个代码执行编译处理之后,以及在利用集成测试脚本对所述至少一个代码对应的镜像文件进行集成测试之前,还包括:
基于对所述软件的历史统计和本次对所述至少一个代码执行编译的编译结果,确定所述至少一个代码的编译成功率;并
确定所述至少一个代码的编译成功率不小于第三阈值。
通过确定执行编译处理的代码的编译成功率,可以将编译成功率较低的代码不执行后续流程,这样可以节省云计算平台的处理资源。
优选地,针对检查通过的每一代码对应的镜像文件,按照下述方法确定对该镜像文件测试通过:
确定对该镜像文件进行集成测试所使用的用例数量;并
确定对该镜像文件进行集成测试后发现的缺陷数量;
若确定出所述缺陷数量与所述用例数量之间的比值不大于第四阈值,则确定对该镜像文件测试通过。
这样,可以避免集成测试不通过的镜像文件执行后续流程造成处理资源的浪费。
较佳地,将测试环境中测试通过的镜像文件进行发布上线,具体包括:
基于预先配置的测试信息,利用测试用例对发布到测试环境中的镜像文件进行自动化测试;并
对自动化测试通过的至少一个镜像文件进行集成测试,并将集成测试通过的镜像文件进行发布上线。
通过在测试环境中对集成化测试通过的镜像文件进行自动化测试和集成测试,将测试通过的镜像文件进行发布上线,这样可以保证发布上线的镜像文件的安全性。
较佳地,可以按照下述方法确定对镜像文件自动化测试通过:
确定进行自动化测试的镜像文件的自动化测试报告中的缺陷数与用例数的比值;
若确定出所述比值小于第五阈值,则确定对所述镜像文件自动化测试通过。
这样,可以避免自动化测试不通过的镜像文件执行后续流程所造成的处理资源浪费情况的发生。
优选地,若确定出对代码检查不通过,或者确定出对镜像文件测试不通过,则通过电子看板向用户展示详细执行记录。通过向用户展示详细执行记录可以帮助用户对代码进行及时改进。
第二方面,本发明实施例提供一种基于云计算平台的软件发布装置,包括:
获取单元,用于获取软件包含的用于提供不同服务的代码;
编译处理单元,用于根据接收到的配置信息,对检查通过的至少一个代码执行编译处理,得到各个代码对应的镜像文件;
集成测试单元,用于若根据所述配置信息确定需要对所述镜像文件执行集成测试,则利用集成测试脚本对所述检查通过的至少一个代码对应的镜像文件进行集成测试,并将测试通过的镜像文件发布到测试环境;
发布上线单元,用于将测试环境中测试通过的镜像文件进行发布上线。
第三方面,本发明实施例提供一种通信设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序;所述处理器执行所述程序时实现如本申请提供的任一项所述的基于云计算平台的软件发布方法。
第四方面,本发明实施例提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本申请提供的任一项所述的基于云计算平台的软件发布方法中的步骤。
本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本发明的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1为本发明实施例提供的实施基于云计算平台的软件发布方法的计算装置的结构示意图;
图2为本发明实施例提供的云计算平台的示意图;
图3a为本发明实施例提供的基于云计算平台的软件发布方法的流程示意图;
图3b为本发明实施例提供的新建流水的界面图;
图3c为本发明实施例提供的开发流水的执行过程示意图;
图4a为本发明实施例提供的对该代码进行检查的流程示意图;
图4b为本发明实施例提供的代码审查页面示意图;
图4c为本发明实施例提供的编译构建页面示意图;
图5为本发明实施例提供的对代码执行编译构建之后实施的流程示意图;
图6为本发明实施例提供的安全扫描配置页面示意图;
图7为本发明实施例提供的自动化测试配置页面示意图;
图8a为本发明实施例提供的集成测试配置页面示意图;
图8b为本发明实施例提供的确定是否对该镜像文件测试通过的流程示意图;
图8c为本发明实施例提供的一点集成测试的展示示意图;
图9为本发明实施例提供的性能测试配置页面示意图;
图10为本发明实施例提供的发布测试配置页面示意图;
图11a为本发明实施例提供的在测试环境中对镜像文件进行测试的流程示意图;
图11b为本发明实施例提供的测试流水的执行过程的示意图;
图11c为本发明实施例提供的确定对镜像文件是否自动化测试通过的流程示意图;
图12为本发明实施例提供的发布上线的执行示意图;
图13为本发明实施例提供的电子看板的示意图;
图14为本发明实施例提供的云计算平台中执行开发测试到运维的流程示意图;
图15为本发明实施例提供的基于云计算平台的软件发布装置的结构示意图。
具体实施方式
本发明实施例提供的基于云计算平台的软件发布方法及装置,用以提高开发到运维的发布上线效率,降低运维工作量和人为误操作风险。
为了便于理解本发明,本发明涉及的技术术语中:
1、镜像文件:是指将特定的一系列文件按照一定的格式制作成单一的文件,以方便用户下载和使用,本发明中的镜像文件为对汇编语言编写的代码执行编译处理后得到的可执行文件,所述可执行文件为二进制文件,可以被计算机所识别和使用。
2、云计算平台:为基于自动化流水实现从开发、测试到运维的整个生命周期,保障各个环节的环境一致性,同时包括代码审查、编译构建、自动化测试、自动部署和发布等持续集成/持续部署(Continuous Integrated/Continuous Deployment,CI/CD)功能的敏捷平台,所述敏捷平台部分通过底层封装,以10个组件为基础实现了核心的PaaS(Platform-as-a-Service,平台即服务)平台。PaaS平台为开源的应用容器引擎,其采用了基于容器技术doker,通过在PaaS平台底层使用doker技术进行容器部署,保证了从开发、测试到运维的环境一致性。PaaS平台主要由三部分组成:控制中心、资源管理中心和容器节点组成,其中:
控制中心:命令枢纽中心,负责版本控制、镜像管理和运行控制等功能;
资源管理中心:负责资源的生命周期管理、应用副本管理、应用的负载均衡和failover等功能;
容器节点:以资源隔离的方式部署在容器中的每个应用为一个节点,负责实现具体应用的业务功能。
PaaS平台提供了灰度发布、普通发布、副本维持、弹性伸缩的功能。在此基础上,进一步持续的CI/CD,实现了3个核心的流水。
以下结合说明书附图对本发明的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本发明,并不用于限定本发明,并且在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。
本发明实施例提供的云计算平台的软件发布方法可以应用于计算装置中,该计算装置可以以通用计算设备的形式表现。下面参照图1来描述根据本发明的计算装置10。图1显示的计算装置10仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图1所示,计算装置10的组件可以包括但不限于:至少一个处理器11、至少一个存储器12、连接不同系统组件(包括存储器12和处理器11)的总线13。
总线13表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器、外围总线、处理器或者使用多种总线结构中的任意总线结构的局域总线。
存储器12可以包括易失性存储器形式的可读介质,例如随机存取存储器(RAM)121和/或高速缓存存储器122,还可以进一步包括只读存储器(ROM)123。
存储器12还可以包括具有一组(至少一个)程序模块124的程序/实用工具125,这样的程序模块124包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
计算装置10也可以与一个或多个外部设备14(例如键盘、指向设备等)通信,还可与一个或者多个使得用户能与计算装置10交互的设备通信,和/或与使得该计算装置10能与一个或多个其它计算设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口15进行。并且,计算装置10还可以通过网络适配器16与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器16通过总线13与用于计算装置10的其它模块通信。应当理解,尽管图中未示出,可以结合计算装置10使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理器、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
为了自动实现开发到运维的流程,提高开发到运维的发布上线效率,本发明提供一种云计算平台,其整体结构如图2所示,整个平台架构由云计算平台(敏捷平台)部分及右边6个辅助功能协作组成,上层业务采用微服务架构,整体架构呈现高内聚、低耦合特性,将业务、研发、测试、运维进行串联,形成了全流程的敏捷平台。云计算平台在获取到软件包含的用于提供不同服务的代码后,根据接收到的配置信息,对检查通过的至少一个代码执行编译处理,得到各个代码对应的镜像文件;然后根据所述配置信息判断是否需要对所述镜像文件执行集成测试,若需要,则利用集成测试脚本对所述检查通过的至少一个代码对应的镜像文件进行集成测试,并将测试通过的镜像文件发布到测试环境;并将测试环境中测试通过的镜像文件进行发布上线。通过在云计算平台(敏捷平台)上进行软件的开发、测试和运维,有效提升了开发、测试和运维之间的协同工作效率。
图2中的6个辅助功能包括:需求管理、电子看板、缺陷管理、项目管理、工单管理和监控运维,其中:
(1)需求管理:对用户需求进行可视化的管理,并可以分配具体的负责人。
(2)电子看板:看板纵向为列表,横向为泳道,团队工作体现为列表和泳道中的卡片,拖拽卡片到不同的列表以体现工作进展。
(3)缺陷管理:对全流程中产生的缺陷进行管理。
(4)项目管理:对整体项目情况进行管理。
(5)工单管理:开发、测试、运维人员的沟通渠道,通过工单的流转完成协作。
(6)监控运维:对全流程中的各项相关指标进行监控,帮助用户更好的了解应用运行状况。
此外,图2中的云计算平台由贯穿始终的任务(Job)组成,共10个Job实现CI/CD总流程,根据流程编排的不同,整合为核心的开发流水、测试流水、部署流水。
开发人员在云计算平台页面上创建流水后,自动创建两个流水,分别为开发流水和测试流水,开发流水可编辑属于开发的内容,测试流水可编辑属于测试的内容。只是在测试选择自动部署时,由开发流水触发测试流水,其余情况则由测试人员手动触发测试流水,通过流程编排这种设计即满足了平台的高内聚、低耦合,又保证了平台的全流程敏捷化的特点。
下面结合图1和图2的应用场景,参考图3a-图15方法。需要注意的是,上述应用场景仅基于云计算平台的软件发布方法。需要注意的是,上述应用场景仅是为了便于理解本发明的精神和原理而示出,本发明的实施方式在此方面不受任何限制。相反,本发明的实施方式可以应用于适用的任何场景。
如图3a所示,为本发明实施例提供的基于云计算平台的软件发布方法的流程示意图,可以包括以下步骤:
S11、云计算平台获取软件包含的用于提供不同服务的代码。
具体地,需要进行发布的软件功能并不是单一的,例如购物软件,需要有支付功能、账单管理功能和向用户展示可拍产品的功能等,开发人员在开发购物软件时,会根据功能进行划分,然后逐层编写,这样使得编写的代码有层次感且条理清晰。因此一款软件可能包含多个分别提供不同服务的代码。
当开发人员开发一款软件后,在进行生产上线之前,需要对软件包含的提供各个功能的代码进行测试,当测试成功时才能发布上线。具体地,开发人员可以在云计算平台的开发应用下上创建开发流水,具体可以参考图3b所示的新建页面,开发人员可以为创建的流水进行命名,然后开发人员可以选择软件包含的代码需要执行的流水步骤,如图3b中的代码审查、编译构建、部署扫描、自动化测试、集成测试等流水,其中考虑到代码本身编写是否存在语法问题,以及软件发布必须要将汇编语言转换成机器可识别语言,因此,代码审查和编译构建为必须要执行的流程,而图3b中其它流水步骤中的选项则为可选的,图3c给出了当开发人员选中了图3b中所有流水后需要实施的过程的展示示意图。当开发人员为软件创建流水后,点击“确定”按钮,由此云计算平台可以接收到配置信息,所述配置信息即为开发人员基于新建流水页面中执行的操作生成的。
需要说明的是,开发人员在页面创建流水后,云计算平台会自动创建两个流水,分别为开发流水和测试流水,也就是说会先后向开发人员和测试人员呈现两个页面,分别为开发流水创建页面和测试流水创建页面,开发人员即可在开发流水创建页面上填写与开发相关的配置信息;测试人员也可在测试流水创建页面上填写与测试相关的配置信息,其中,开发流水可编辑属于开发的内容,测试流水可编辑属于测试的内容。只是在测试选择自动部署时,由开发流水触发测试流水,其余情况则由测试人员手动触发测试流水,通过流程编排这种设计即满足了平台的高内聚、低耦合,又保证了平台的全流程敏捷化的特点。
S12、云计算平台根据接收到的配置信息,对检查通过的至少一个代码执行编译处理,得到各个代码对应的镜像文件。
当云计算平台获取到配置信息后,进入开发流水,开发流水由代码审查、编译构建、开发部署、安全扫描、自动化测试、集成测试和发布测试这7个任务组成,面向开发人员,将开发全流程串联起来,并与测试流水保持联系,通过灵活的勾选配置方式,帮助开发人员集中精力在业务开发。需要说明的是,开发流水中的7个任务并不是都执行,云计算平台需要根据开发人员基于开发流水创建页面配置的配置信息执行开发流水过程,若开发人员只选中了代码审查和编译构建两个任务,则云计算平台在对软件中包含的代码执行开发流水流程时,也只执行这两个任务;为了方便描述,本发明以开发人员选中了7个任务,则云计算平台在执行开发流水时,需要执行7个任务,即:执行代码审查---……---发布测试,参考图3c所示。
当对软件包含的所有代码检查完成后,只有将所有代码检查通过后才会执行编译构建流程,否则一个代码检查通过了其他代码未检查通过,代表该软件编写有问题,执行后续流程也没有意义,因为即使执行后续流程该软件发布后也是存在问题的,因此需要所有代码均检查通过后才会执行后续流程。
本步骤中,针对软件包含的每一代码,可以按照图4a所示的方法对该代码进行检查,可以包括以下步骤:
S121、云计算平台利用代码审查工具sonar对该代码进行审查,获得代码扫描报告。
具体地,对软件包含的每一代码执行代码检查过程,大致为:基于配置信息中的指定参数,对代码进行审查,审查使用Sonar工具,审查完成后会得到代码扫描报告,扫描报告中可以但不限于包括:问题findbugs及问题数、缺陷数、代码重复率、代码行数、圈复杂度、安全漏洞及其漏洞数等,其中findbugs划分为不同的级别,致命、严重、一般、提升和轻微等。
在进行代码审查时,云计算平台会向开发人员展示如图4b所示的代码审查页面,云计算平台会根据开发人员选中的代码库类型下载代码到云计算平台中,图4b给出的代码库类型为SVN和git两种类型的代码库,当然可能还存在其他类型的库,本发明对此不进行限定。以开发人员选中了SVN代码库,开发人员需要在图4b所示的页面上填写SVN地址,其中SVN地址为SVN代码库中存储需要下载的代码的地址信息。为了保证代码库的安全性,开发人员需要利用用户名和密码登录SVN代码库,只有当登录成功时才能从SVN库SVN地址中下载需要进行代码审查的代码。当开发人员在代码审查页面上配置完成后,云计算平台获得的配置信息中就包括了关于代码审查的配置信息。至此获得代码后即可根据代码审查的配置信息利用Sonar工具执行代码审查步骤并获得和输出代码扫描报告。
若所述代码扫描报告中只包含问题数,则只判断问题数是否不大于第一阈值,若是则对该代码检查通过;若代码扫描报告中只包含漏洞数,则只判断漏洞数是否不大于第二阈值,若是则对该代码检查通过;若代码扫描报告中包含问题数和漏洞数,则问题数和漏洞数均进行相应判断,图4a以代码扫描报告中既包含问题数又包含漏洞数为例进行说明。
在一种可能的实施方式中,若得到的代码扫描报告只包含问题数,则图4a中S122判断结果为是时,直接执行步骤S124;判断结果为否执行步骤S125。
在一种可能的实施方式中,若代码扫描报告中只包含漏洞数,则执行步骤S121后,不执行步骤S122,而是执行步骤S123,当步骤S123判断结果为是时,执行步骤S124;否则执行步骤S125。
S122、云计算平台判断代码扫描报告中的问题数是否不大于第一阈值,若是,则执行步骤S123;否则执行步骤S125。
本步骤中,当代码扫描报告中包含问题数时,由于问题具有不同的级别,在统计问题数时,可以统计各个级别的问题分别对应的问题数。由于轻微级别的问题可能不会对软件造成致命伤害,故在将问题数与第一阈值进行比较时,可以将问题级别比较高的问题数的综合与第一阈值进行比较,如将致命和严重对应的问题数进行求和计算,将求和得到的和值与第一阈值进行比较,若确定出和值大于第一阈值,则确定该代码问题比较大,需要开发人员对该代码进行核查修改,即得到检测不通过的结果。
当然也可以分别将各个问题级别对应的问题数单独与第一阈值进行比较,本发明对此不进行限定。较佳地,本发明中的第一阈值可以根据实际情况进行配置,在此对其值不进行限定。
S123、云计算平台判断代码扫描报告中的漏洞数是否不大于第二阈值,若是,则执行步骤S124;否则执行步骤S125。
具体地,由于代码的安全漏洞越多,越容易收到攻击被不法分子破解,因此在进行代码审查时对代码检查是否有漏洞存在是十分有必要的,若确定出安全漏洞的漏洞数不大于第二阈值时,则表明代码的安全性还是比较高的,则可以确定该代码检查通过,否则表明代码存在安全性风险,确定对该代码检查不通过。
本发明提供的第二阈值可以根据实际情况来定,在此不对其值进行限定。
S124、云计算平台确定对该代码检查通过,流程结束。
S125、云计算平台确定对该代码检查不通过,流程结束。
一般情况下软件中提供各个服务的代码都能代码审查通过,则需要对这些代码执行编译构建,得到各个代码的镜像文件,在进行编译构建配置时会向开发人员展示如图4c所示的编译构建页面,开发人员可以在编译构建页面配置需要对代码执行的命令,以及为了保证开发到测试再到运维的环境一致性,需要开发人员对Docker file路径进行配置,参考图4c所示,当开发人员配置好后即可选“确定”,即对编译构建配置完成,云计算平台获得的配置信息中就包括了关于编译构建的配置信息。具体地,云计算平台可以将检查通过的代码使用ant或maven进行打包,通过Docker构成一个镜像文件,然后上传到对应的私有镜像仓库。
较佳地,在执行本步骤S12之后,以及在执行步骤S13之前,还可以包括图5所示的流程,可以包括以下步骤:
S21、云计算平台基于对软件的历史统计和本次对至少一个代码执行编译的编译结果,确定所述至少一个代码的编译成功率。
由于一个软件可能会经过多次开发、测试到运维的过程,每次执行到编译构建都会对编译构建过程进行统计,例如可以得到编译次数及编译是否成功、构建次数及构建是否成功等。
当对本软件执行第N次编译构建时,针对所述软件包含的每一代码,可以基于历史统计结果确定该代码的编译成功率,若确定出编译成功率不小于第三阈值时,则确定对该代码编译成功,可以执行后续流程。
S22、云计算平台确定所述至少一个代码的编译成功率不小于第三阈值。
需要说明的是,若步骤S22中确定出编译成功率小于第三阈值,表明当前代码存在一些语法等方面的问题导致代码编译无法成功,则不执行后续流程。
较佳地,若开发人员选中开发部署选项,云计算平台会对代码执行开发部署流程。开发部署是指集群节点会从应用镜像库拉去镜像文件并启动,从而完成一键部署,并可以实现普通发布和灰度发布。开发部署当构建流水时自动更新最新版本镜像文件,灰度发布则是同时存在新旧两版本,提供服务。当配置完成后,云计算平台获得的配置信息中就包括了关于开发部署的配置信息。
本发明提供的第三阈值可以根据实际情况来定,在此不对其值进行限定。
较佳地,若开发人员选中安全扫描选项,云计算平台会对代码执行安全扫描步骤,安全扫描是指对各个编译成功的代码发起渗透测试,可以通过下述方式检测缺陷:遍历路径、文件包含、跨站脚本、sql注入等等,并生成安全扫描报告,所述安全扫描报告可以但不限于包括系统漏洞数、风险级别、修复建议和详情执行记录等。需要说明的是,在进行安全扫描配置时,会向开发人员展示图6所示的安全扫描配置页面,开发人员即可在该配置页面上进行安全扫描配置。当配置完成后,云计算平台获得的配置信息中就包括了关于安全扫描的配置信息。云计算平台在基于开发人员对安全扫描的配置,可以将软件中各个代码对应的镜像文件进行安全扫描,并输出安全扫描报告。
较佳地,若开发人员选中自动化测试选项,云计算平台会对代码执行自动化测试步骤,自动化测试是指提供对单个服务的测试用例,具备良好的可扩展性,支持关键字驱动,可以同时测试多种类型的客户端或者接口,可以进行分布式测试执行并生成测试结果。具体地,当开发人员选中自动化测试时,会向开发人员展示如图7所示的自动化测试配置页面,开发人员同样需要选择代码库类型,及输入用户名和密码等,图中给出了开发人员选择了git代码库时需要输入的git路径及登录git代码库所需的用户名和密码,当开发人员选择SVN代码库时,相应需要输入SVN路径及登录SVN代码库的用户名及密码,开发人员可以根据实际需要进行配置。当配置完成后,云计算平台获得的配置信息中就包括了关于自动化测试的配置信息,然后根据自动化测试的配置信息执行自动化测试并得到自动化测试报告,所述自动化测试报告可以但不限于包括用例数、缺陷数、缺陷率和详细执行记录等。
S13、云计算平台根据所述配置信息判断是否需要对所述镜像文件执行集成测试,若是则执行步骤S14;否则执行步骤S16。
当开发人员选中集成测试选项时,云计算平台会向开发人员展示如图8a所示的集成测试配置页面。集成测试是指将提供不同服务的代码的镜像文件进行集成部署,利用同一个集成测试脚本对软件包含的且测试通过的代码的镜像文件进行统一集成测试,并得到集成测试报告。
具体地,集成测试配置页面有创建和引用两个选项,如果开发人员选引用选项,点击确定按钮后完成配置,这样云计算平台获取的配置信息中就包含集成测试的配置信息,云计算平台会基于已有的集成测试完成对镜像文件的测试。当开发人员选创建选项,需要开发人员配置集成测试脚本的下载路径,若需执行子脚本则需要开发人员填写子脚本名称,由此完成集成测试过程的配置,这样得到的配置信息中包含下载集成测试脚本的路径等集成测试配置信息。
S14、云计算平台利用集成测试脚本对所述检查通过的至少一个代码对应的镜像文件进行集成测试,并将测试通过的镜像文件发布到测试环境。
具体地,云计算平台在获取到集成测试配置信息后,可以从SVN或git下载集成测试脚本,然后通过Jenkins进行脚本的调用并输出集成测试报告。例如针对购物软件,可以利用同一个集成测试脚本对实现支付功能和实现账单管理功能等的代码的镜像文件进行集成测试部署,这样可以实现一点集成测试,提高了集成测试效率。
本步骤中,为了避免集成测试不通过的镜像文件发布到测试文件中执行后续流程依然存在问题所导致处理资源的浪费情况发生,针对检查通过的每一代码对应的镜像文件,还可以按照图8b所示的方法确定是否对该镜像文件测试通过,包括以下步骤:
S141、云计算平台确定对该镜像文件进行集成测试所使用的用例数量。
在进行集成测试时,需要利用测试用例对镜像文件进行测试,故可以得到所使用的用例数量。
S142、云计算平台确定对该镜像文件进行集成测试后发现的缺陷数量。
在集成测试完成后,可以用得到的集成测试报告中获得集成测试发现的缺陷数量。所述集成测试报告还可以包括用例数、缺陷数、缺陷率和详细执行记录等。
S143、云计算平台判断所述缺陷数量与所述用例数量之间的比值是否不大于第四阈值,若是则执行步骤S144;否则执行步骤S145。
基于步骤S141和S142得到的用例数量和缺陷数量,即可确定出缺陷数量与用例数量的比值,然后将其与第四阈值进行比较,若比值大于第四阈值,则表明缺陷较多,不宜进行发布上线,故对该镜像文件集成测试不通过,不执行后续测试流水和发布上线步骤,反之则执行后续流程。
本发明提供的第四阈值可以根据实际情况来定,在此不对其值进行限定。
S144、云计算平台确定对该镜像文件测试通过,流程结束。
S145、云计算平台确定对该镜像文件测试不通过,流程结束。
本发明实现了多条流水一点集成测试功能,即多个开发流水、测试流水进行到集成测试这一步时,可以引用同一个集成测试任务,达到一次配置多次使用的目的,减少了测试人员的工作,实现了云计算平台快速发布的效果,可以参考图8c所示的示意图。
较佳地,执行完集成测试后,还可以对集成测试通过的镜像文件执行性能测试,则需要开发人员在初始配置时选中性能测试选项,然后云计算平台会依次向开发人员展示各个选项的配置页面,当向开发人员展示出性能测试配置页面后,如图9所示,开发人员可以对性能测试流程进行配置,如需执行子脚本开发人员需要填写子脚本名称。当配置完成后,云计算平台获取到的配置信息中就包含性能测试配置信息,然后从SVN或git代码库中下载性能测试脚本,并通过配置信息中包含的子脚本名称调用Jenkins使用jmeter插件进行脚本的调用,输出性能测试报告。
当在开发流水中对镜像文件测试通过后,将镜像文件发布到测试环境中,在执行发布过程时,需要根据开发人员预先对发布测试进行的配置,将镜像文件按照该配置自动发布到测试环境中。在此之前,开发人员会对发布测试进行配置,会出现图10所示的发布测试配置页面,图10中的版本号为镜像文件的版本号,若开发人员选择手动发布,则云计算平台跑完图3c所示的1~7对应的流程后,不会自动发布到测试环境中,需要手动选择。若开发人员选择自动发布,则跑完流程后自动发布到测试环境中。
S15、云计算平台将测试环境中测试通过的镜像文件进行发布上线,流程结束。
具体地,可以按照图11a所示的方法在测试环境中对镜像文件进行测试,包括以下步骤:
S151、云计算平台基于预先配置的测试信息,利用测试用例对发布到测试环境中的镜像文件进行自动化测试。
当云计算平台将镜像文件发布到测试环境中时,即进入了测试流水,测试流水由自动部署、自动化测试、集成测试、发布生产这4个任务组成,参考图11b所示,让测试人员更加专注于测试本身,只需要选择一个可供测试的镜像版本进行部署,就可以开始自动化测试及集成测试,灵活的勾选配置方式,让测试人员在测试系统没有问题后,可以自动化的将系统发布到生产环境。
需要说明的是,测试流水中自动化测试的配置方式与开发流水中的自动化测试流水的配置方式类似,不同的是配置人员为测试人员,这样使得开发人员与测试人员相互配合。
在测试流水中需要进行集成测试,则可以利用开发流水中集成测试使用的集成测试脚本来完成测试流水中的集成测试,实现一点集成测试的效果,提高测试效率。
S152、云计算平台对自动化测试通过的至少一个镜像文件进行集成测试,并将集成测试通过的镜像文件进行发布上线。
较佳地,可以按照图11c所示的方法确定对镜像文件是否自动化测试通过,可以包括以下步骤:
S1521、云计算平台确定进行自动化测试的镜像文件的自动化测试报告中的缺陷数与用例数的比值。
S1522、云计算平台判断所述比值是否小于第五阈值,若是则执行步骤S1523;否则执行步骤S1524。
S1523、云计算平台确定对所述镜像文件自动化测试通过,流程结束。
S1524、云计算平台确定对所述镜像文件自动化测试不通过,流程结束。
需要说明的是,在进行自动化测试时会生成自动化测试报告,所述自动化测试报告可以但不限于包括用例数、缺陷数、缺陷率和详细执行记录等,由此可以得到缺陷数与用例数的比值,当确定该比值小于第五阈值,则表明该镜像文件中缺陷较少不影响其发布上线,则对该镜像文件自动化测试通过,否则确定对该镜像文件自动化测试不通过,无法进行发布上线。
当确定镜像文件在测试流水中测试通过后,则进入生产流水,生产流水是一个自动化部署的过程,将测试无误的镜像自动化的发布至生产环境,去除了繁杂的上线配置过程,其示意图参考图12所示。输入自动部署的即为测试通过的镜像文件,对其进行自动部署完成后输出的即为可以发布至生产环境中的镜像文件。
S16、云计算平台直接将各个代码对应的镜像文件进行发布上线,流程结束。
较佳地,若确定出对代码检查不通过,或者确定出对镜像文件测试不通过,则通过电子看板向用户展示详细执行记录。
具体地,所述电子看板可以参考图13所示,电子看板纵向为列表,横向为泳道,团队工作体现为列表和泳道中的卡片,拖拽卡片到不同的列表以体现工作进展,并提供了迭代燃尽图,形象地展示当前迭代中的剩余工作量和剩余工作时间的变化趋势,是反应项目进展的一个指示器,实践迭代式增量软件开发过程(SCRUM)。
通过实施本发明提供的开发到测试再到运维三条流水,云计算平台支持一条流水设计打通开发、测试、生产的联系,本发明提供的云计算平台使用流水设计,通过Jenkins嵌套任务机制打通开发、测试、运维三种角色的联系。一条流水实现从代码审查->编译构建->直到发布生产,灰度上线,共12个步骤,参考图14所示。从整个项目建设生命周期出发,深化敏捷流水线的可视化、平台化、自动化,大大提高项目建设的效率和质量。
为了更好的理解本发明,基于本发明提供的云计算平台,以国际漫游项目为例进行说明,进行一次全流程构建:1、用户登录云计算平台,新建一条项目流水,勾选全部流程;2、流水进行初始化,创建相关job,并与jenkins进行同步;3、用户编辑下载审查任务,输入代码路径信息;4、用户编辑编译构建任务,输入镜像信息;5、用户编辑部署扫描任务,输入服务信息;6、用户编辑自动化测试任务,输入测试脚本信息;7、用户编辑集成认识任务,输入脚本信息与集成信息;8、用户编辑发布任务,输入发布信息;用户点击立即构建,系统自动化执行所有流程,每次代码或者测试脚本变化后,重新点击立即构建,即可实现项目的持续CICD。
通过实施本发明提供的基于云计算平台的软件发布方法,云计算平台在获取到软件包含的用于提供不同服务的代码后,根据接收到的配置信息,对检查通过的至少一个代码执行编译处理,得到各个代码对应的镜像文件;然后根据所述配置信息判断是否需要对所述镜像文件执行集成测试,若需要,则利用集成测试脚本对所述检查通过的至少一个代码对应的镜像文件进行集成测试,并将测试通过的镜像文件发布到测试环境;并将测试环境中测试通过的镜像文件进行发布上线。通过设置云计算平台,在云计算平台上设置开发、测试到运维功能,使得云计算平台在获取到代码后,根据接收到的配置信息自动对代码进行检查、编译和测试和发布,不仅可以实现从开发、测试到运维的自动化,还提高了开发到运维的发布上线效率,同时降低了运维工作量和人为误操作风险。
本发明通过对代码执行每一过程生成相应的报告后,开发或测试人员可以快速定位整个构建过程中系统存在的问题。通过在全流程中嵌入度量跟报告功能,对构建过程的每一个步骤进行评价,综合所有的评分可以为本次构建过程提供一个可靠的度量指标。此外,本发明将研发与运维纳入同一条流水进行管理,通过流水自动化发布应用,无需人工参与,降低出错风险。另外,各级管理人员可以对整个流水步骤进行手动干涉,保证软件交付的安全性。再一方面,软件全周期中各阶段人员能够选择对应的步骤操作,各司其职,高效协作;从软件研发到后期运营都在云计算平台上进行,管理者能够通过云计算平台获取软件应用的综合报告。
基于同一发明构思,本发明实施例中还提供了一种基于云计算平台的软件发布装置,由于上述装置解决问题的原理与基于云计算平台的软件发布方法相似,因此上述装置的实施可以参见方法的实施,重复之处不再赘述。
如图15所示,为本发明实施例提供的基于云计算平台的软件发布装置的结构示意图,包括:
获取单元31,用于获取软件包含的用于提供不同服务的代码;
编译处理单元32,用于根据接收到的配置信息,对检查通过的至少一个代码执行编译处理,得到各个代码对应的镜像文件;
集成测试单元33,用于若根据所述配置信息确定需要对所述镜像文件执行集成测试,则利用集成测试脚本对所述检查通过的至少一个代码对应的镜像文件进行集成测试,并将测试通过的镜像文件发布到测试环境;
发布上线单元34,用于将测试环境中测试通过的镜像文件进行发布上线。
较佳地,所述装置,还包括:
代码审查单元,用于针对软件包含的每一代码,利用代码审查工具sonar对该代码进行审查,获得代码扫描报告;若确定出所述代码扫描报告中的问题数不大于第一阈值,和/或所述代码扫描报告中的漏洞数不大于第二阈值,则确定对该代码审查通过。
优选地,所述装置,还包括:
第一确定单元,用于在所述编译处理单元对检查通过的至少一个代码执行编译处理之后,以及在所述集成测试单元利用集成测试脚本对所述至少一个代码对应的镜像文件进行集成测试之前,基于对所述软件的历史统计和本次对所述至少一个代码执行编译的编译结果,确定所述至少一个代码的编译成功率;
第二确定单元,用于确定所述至少一个代码的编译成功率不小于第三阈值。
较佳地,所述集成测试单元33,具体用于针对检查通过的每一代码对应的镜像文件,确定对该镜像文件进行集成测试所使用的用例数量;并确定对该镜像文件进行集成测试后发现的缺陷数量;若确定出所述缺陷数量与所述用例数量之间的比值不大于第四阈值,则确定对该镜像文件测试通过。
优选地,所述发布上线单元34,具体用于基于预先配置的测试信息,利用测试用例对发布到测试环境中的镜像文件进行自动化测试;并对自动化测试通过的至少一个镜像文件进行集成测试,并将集成测试通过的镜像文件进行发布上线。
较佳地,所述发布上线单元34,具体用于确定进行自动化测试的镜像文件的自动化测试报告中的缺陷数与用例数的比值;若确定出所述比值小于第五阈值,则确定对所述镜像文件自动化测试通过。
可选地,所述装置,还包括:
展示单元,用于若确定出对代码检查不通过,或者确定出对镜像文件测试不通过,则通过电子看板向用户展示详细执行记录。
为了描述的方便,以上各部分按照功能划分为各模块(或单元)分别描述。当然,在实施本发明时可以把各模块(或单元)的功能在同一个或多个软件或硬件中实现。
基于同一发明构思,本发明实施例还提供一种通信设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序;所述处理器执行所述程序时实现如本发明实施例一提供的任一项所述的基于云计算平台的软件发布方法。
基于同一发明构思,本发明实施例还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本发明实施例一提供的任一项所述的基于云计算平台的软件发布方法中的步骤。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

Claims (14)

1.一种基于云计算平台的软件发布方法,其特征在于,包括:
云计算平台获取软件包含的用于提供不同服务的代码;并
根据接收到的配置信息,对检查通过的至少一个代码执行编译处理,得到各个代码对应的镜像文件;
若根据所述配置信息确定需要对所述镜像文件执行集成测试,则利用集成测试脚本对所述检查通过的至少一个代码对应的镜像文件进行集成测试,并将测试通过的镜像文件发布到测试环境;并
将测试环境中测试通过的镜像文件进行发布上线;
在对检查通过的至少一个代码执行编译处理之后,以及在利用集成测试脚本对所述至少一个代码对应的镜像文件进行集成测试之前,还包括:
基于对所述软件的历史统计和本次对所述至少一个代码执行编译的编译结果,确定所述至少一个代码的编译成功率;并确定所述至少一个代码的编译成功率不小于第三阈值。
2.如权利要求1所述的方法,其特征在于,针对软件包含的每一代码,按照下述方法确定对该代码检查通过:
利用代码审查工具sonar对该代码进行审查,获得代码扫描报告;
若确定出所述代码扫描报告中的问题数不大于第一阈值,和/或所述代码扫描报告中的漏洞数不大于第二阈值,则确定对该代码检查通过。
3.如权利要求1所述的方法,其特征在于,针对检查通过的每一代码对应的镜像文件,按照下述方法确定对该镜像文件测试通过:
确定对该镜像文件进行集成测试所使用的用例数量;并
确定对该镜像文件进行集成测试后发现的缺陷数量;
若确定出所述缺陷数量与所述用例数量之间的比值不大于第四阈值,则确定对该镜像文件测试通过。
4.如权利要求1所述的方法,其特征在于,将测试环境中测试通过的镜像文件进行发布上线,具体包括:
基于预先配置的测试信息,利用测试用例对发布到测试环境中的镜像文件进行自动化测试;并
对自动化测试通过的至少一个镜像文件进行集成测试,并将集成测试通过的镜像文件进行发布上线。
5.如权利要求4所述的方法,其特征在于,按照下述方法确定对镜像文件自动化测试通过:
确定进行自动化测试的镜像文件的自动化测试报告中的缺陷数与用例数的比值;
若确定出所述比值小于第五阈值,则确定对所述镜像文件自动化测试通过。
6.如权利要求1~5任一所述的方法,其特征在于,若确定出对代码检查不通过,或者确定出对镜像文件测试不通过,则通过电子看板向用户展示详细执行记录。
7.一种基于云计算平台的软件发布装置,其特征在于,包括:
获取单元,用于获取软件包含的用于提供不同服务的代码;
编译处理单元,用于根据接收到的配置信息,对检查通过的至少一个代码执行编译处理,得到各个代码对应的镜像文件;
集成测试单元,用于若根据所述配置信息确定需要对所述镜像文件执行集成测试,则利用集成测试脚本对所述检查通过的至少一个代码对应的镜像文件进行集成测试,并将测试通过的镜像文件发布到测试环境;
发布上线单元,用于将测试环境中测试通过的镜像文件进行发布上线;
所述装置,还包括:
第一确定单元,用于在所述编译处理单元对检查通过的至少一个代码执行编译处理之后,以及在所述集成测试单元利用集成测试脚本对所述至少一个代码对应的镜像文件进行集成测试之前,基于对所述软件的历史统计和本次对所述至少一个代码执行编译的编译结果,确定所述至少一个代码的编译成功率;
第二确定单元,用于确定所述至少一个代码的编译成功率不小于第三阈值。
8.如权利要求7所述的装置,其特征在于,还包括:
代码审查单元,用于针对软件包含的每一代码,利用代码审查工具sonar对该代码进行审查,获得代码扫描报告;若确定出所述代码扫描报告中的问题数不大于第一阈值,和/或所述代码扫描报告中的漏洞数不大于第二阈值,则确定对该代码审查通过。
9.如权利要求7所述的装置,其特征在于,
所述集成测试单元,具体用于针对检查通过的每一代码对应的镜像文件,确定对该镜像文件进行集成测试所使用的用例数量;并确定对该镜像文件进行集成测试后发现的缺陷数量;若确定出所述缺陷数量与所述用例数量之间的比值不大于第四阈值,则确定对该镜像文件测试通过。
10.如权利要求7所述的装置,其特征在于,
所述发布上线单元,具体用于基于预先配置的测试信息,利用测试用例对发布到测试环境中的镜像文件进行自动化测试;并对自动化测试通过的至少一个镜像文件进行集成测试,并将集成测试通过的镜像文件进行发布上线。
11.如权利要求10所述的装置,其特征在于,
所述发布上线单元,具体用于确定进行自动化测试的镜像文件的自动化测试报告中的缺陷数与用例数的比值;若确定出所述比值小于第五阈值,则确定对所述镜像文件自动化测试通过。
12.如权利要求7~11任一所述的装置,其特征在于,还包括:
展示单元,用于若确定出对代码检查不通过,或者确定出对镜像文件测试不通过,则通过电子看板向用户展示详细执行记录。
13.一种通信设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序;其特征在于,所述处理器执行所述程序时实现如权利要求1~6任一项所述的基于云计算平台的软件发布方法。
14.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1~6任一项所述的基于云计算平台的软件发布方法中的步骤。
CN201810289471.7A 2018-04-03 2018-04-03 基于云计算平台的软件发布方法及装置 Active CN110347395B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810289471.7A CN110347395B (zh) 2018-04-03 2018-04-03 基于云计算平台的软件发布方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810289471.7A CN110347395B (zh) 2018-04-03 2018-04-03 基于云计算平台的软件发布方法及装置

Publications (2)

Publication Number Publication Date
CN110347395A CN110347395A (zh) 2019-10-18
CN110347395B true CN110347395B (zh) 2023-04-14

Family

ID=68172447

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810289471.7A Active CN110347395B (zh) 2018-04-03 2018-04-03 基于云计算平台的软件发布方法及装置

Country Status (1)

Country Link
CN (1) CN110347395B (zh)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113032004A (zh) * 2019-12-09 2021-06-25 伊姆西Ip控股有限责任公司 在开发环境中管理开发作业的方法、设备和程序产品
CN111159972A (zh) * 2019-12-31 2020-05-15 深圳市汇顶科技股份有限公司 应用于集成电路的测试方法、测试装置及测试系统
CN111352653B (zh) * 2020-03-06 2023-07-14 中国工商银行股份有限公司 基于PaaS云平台服务器的系统开发方法及服务器
CN111857722A (zh) * 2020-06-23 2020-10-30 远光软件股份有限公司 一种基于三库模式的DevOps质量保障系统及方法
CN112052070A (zh) * 2020-08-27 2020-12-08 亚信科技(南京)有限公司 应用容器化评估方法、装置、电子设备及存储介质
CN112558998A (zh) * 2020-12-28 2021-03-26 慧科教育科技集团有限公司 一种实验内容研发平台
CN112612681B (zh) * 2020-12-29 2021-09-17 中国科学院空天信息创新研究院 基于容器的深度学习模型测试评估全流程自动管理方法
CN113296787A (zh) * 2021-06-10 2021-08-24 中国电子科技集团公司第十五研究所 一种基于云平台的在线开发与代码托管系统与使用方法
CN113312152A (zh) * 2021-06-25 2021-08-27 上海华瑞银行股份有限公司 一种自动化创建私有云发布任务的方法、装置及电子设备
CN113377412B (zh) * 2021-08-13 2022-01-11 武汉众智数字技术有限公司 一种客户端软件增量更新的方法和系统
CN114115954B (zh) * 2022-01-25 2022-05-17 北京金堤科技有限公司 自动化集成部署服务的方法和装置、以及电子设备和存储介质
CN114610329B (zh) * 2022-05-10 2022-09-06 深圳佰维存储科技股份有限公司 固态硬盘部署方法、装置、可读存储介质及电子设备
CN115269033B (zh) * 2022-06-18 2023-05-09 知学云(北京)科技股份有限公司 一种aPaaS平台加载外部业务组件包的方法及系统
CN115469882A (zh) * 2022-09-16 2022-12-13 上海百胜软件股份有限公司 软件项目管理方法、装置、电子设备及存储介质
CN116069334B (zh) * 2022-11-23 2023-09-26 北京东方通科技股份有限公司 一种基于云原生的在线开发与代码托管方法及系统
CN116915516B (zh) * 2023-09-14 2023-12-05 深圳市智慧城市科技发展集团有限公司 软件跨云交付方法、中转服务器、目标云及存储介质
CN117348916B (zh) * 2023-12-06 2024-03-26 中邮消费金融有限公司 脚本生成方法、装置、设备及存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017020770A1 (zh) * 2015-07-31 2017-02-09 中兴通讯股份有限公司 基于lxc的持续集成方法及装置
CN107220100A (zh) * 2016-03-22 2017-09-29 中国移动(深圳)有限公司 一种开发运维方法、装置及云计算PaaS平台

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8793683B2 (en) * 2008-08-28 2014-07-29 Red Hat, Inc. Importing software distributions in a software provisioning environment
US10001975B2 (en) * 2015-09-21 2018-06-19 Shridhar V. Bharthulwar Integrated system for software application development
US10216509B2 (en) * 2016-03-18 2019-02-26 TUPL, Inc. Continuous and automatic application development and deployment
CN106873975B (zh) * 2016-12-30 2020-09-29 武汉默联股份有限公司 基于Docker的devops持续交付与自动化系统及方法
CN107544824B (zh) * 2017-08-09 2021-02-09 北京华宇信息技术有限公司 新的项目交付发布包、生成和运行方法及可读存储介质

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017020770A1 (zh) * 2015-07-31 2017-02-09 中兴通讯股份有限公司 基于lxc的持续集成方法及装置
CN107220100A (zh) * 2016-03-22 2017-09-29 中国移动(深圳)有限公司 一种开发运维方法、装置及云计算PaaS平台

Also Published As

Publication number Publication date
CN110347395A (zh) 2019-10-18

Similar Documents

Publication Publication Date Title
CN110347395B (zh) 基于云计算平台的软件发布方法及装置
EP3769223B1 (en) Unified test automation system
US8561024B2 (en) Developing software components and capability testing procedures for testing coded software component
US11243516B2 (en) Edge devices and associated networks utilising microservices
US7895565B1 (en) Integrated system and method for validating the functionality and performance of software applications
US10083027B2 (en) Systems and methods for managing software development environments
US9294296B2 (en) Automated test execution in a shared virtualized resource pool
US8745589B2 (en) Automatic extraction of test case for a build in testing lifecycle
US20080320071A1 (en) Method, apparatus and program product for creating a test framework for testing operating system components in a cluster system
US8091066B2 (en) Automated multi-platform build and test environment for software application development
US20100235807A1 (en) Method and system for feature automation
WO2013115797A1 (en) Identifcation of a failed code change
CN103180834B (zh) 自动操作系统测试框架
CN102880543B (zh) 用于集成测试平台的测试数据供应链管理器
CN111198811A (zh) 一种页面自动化测试的方法、装置、电子设备及存储介质
EP4246332A1 (en) System and method for serverless application testing
CN113050929A (zh) 一种基于Hyperledger Fabric的智能合约开发运维一体化平台
EP4296861A1 (en) System and method for cloud infrastructure test automation
CN117008958A (zh) 基于GitOps的OTA云端持续交付方法、系统、设备及存储介质
Poornalinga et al. Continuous integration, deployment and delivery automation in AWS cloud infrastructure
CN116225377A (zh) 一种跨平台小程序的统一开发方法、装置和电子设备
Ogala A Complete Guide to DevOps Best Practices
CN115176233A (zh) 以确定性顺序执行测试
CN106649106A (zh) 一种测试用例的生成方法及装置
CN112181855A (zh) 一种基于api的自动化测试方法、装置及计算机设备

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
GR01 Patent grant
GR01 Patent grant