CN111580832A - 应用于异构多云环境的应用发布系统及方法 - Google Patents

应用于异构多云环境的应用发布系统及方法 Download PDF

Info

Publication number
CN111580832A
CN111580832A CN202010356018.0A CN202010356018A CN111580832A CN 111580832 A CN111580832 A CN 111580832A CN 202010356018 A CN202010356018 A CN 202010356018A CN 111580832 A CN111580832 A CN 111580832A
Authority
CN
China
Prior art keywords
application
deployment
product package
task
module
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
CN202010356018.0A
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.)
Diankeyun Beijing Technology Co ltd
Electronic Science Research Institute of CTEC
Original Assignee
Diankeyun Beijing Technology Co ltd
Electronic Science Research Institute of CTEC
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 Diankeyun Beijing Technology Co ltd, Electronic Science Research Institute of CTEC filed Critical Diankeyun Beijing Technology Co ltd
Priority to CN202010356018.0A priority Critical patent/CN111580832A/zh
Publication of CN111580832A publication Critical patent/CN111580832A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • G06F8/62Uninstallation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1433Vulnerability analysis
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Stored Programmes (AREA)

Abstract

本发明提供了一种应用于异构多云环境的应用发布系统及方法,其中,该系统包括:配置库集成模块,用于利用代码管理工具获取应用的代码;自动化构建模块,用于依据构建模板利用持续集成工具对代码进行构建生成制品包;可视化蓝图管理模块,用于接收对应软件架构的应用部署编排指令生成应用部署蓝图;发布任务管理模块,用于接收发布任务维护指令得到发布任务;自动化流水线模块,用于解析应用部署蓝图,生成应用部署流程;云资源编排引擎模块,用于将应用部署流程解析为具有云资源组合并转换为部署任务脚本;云资源接口适配器模块,用于对异构多云环境的多云平台进行接口适配。通过上述方案能够实现适配异构多云环境的应用发布并提高交互体验。

Description

应用于异构多云环境的应用发布系统及方法
技术领域
本发明涉及应用发布技术领域,尤其涉及一种应用于异构多云环境的应用发布系统及方法。
背景技术
云计算技术已在各行各业中得到广泛应用,用户可以基于云平台部署所需的软件应用,以提供软件服务。随着云计算技术的发展、应用的创新和市场需求的变化,单一云平台难以满足全时全域的优质服务需求和灵活多样的个性化定制的需求。为充分利用各厂商云平台的优点,减少但平台故障造成的业务影响,并且更好地适应不同服务的负载,企业云环境正向异构多云集成化方向发展。
目前企业级软件应用在研发及交付过程中,普遍采用DevOps(研发运营一体化)理念,将应用的需求、开发、测试、部署和运营统一起来,基于整个组织的协作和应用架构的优化,实现敏捷开发和应用运营的无缝集成。能够帮助企业提升IT效能,在保证稳定的同时,快速交付高质量的软件及服务,灵活应对快速变化的业务需求和市场环境。
但面对大量的多云场景的应用发布、部署的使用需求,传统的应用发布系统无法打通与不同云平台之间的连接,更无法实现对异构云环境应用部署发布的有效管理,这严重制约应用交付效率,因而传统的应用发布系统已不能满足多云并存场景的应用发布管理需求。面对异构多云管理带来的技术挑战,如何实现适配异构多云的应用发布系统是目前亟待解决的问题。
发明内容
有鉴于此,本发明提供了一种应用于异构多云环境的应用发布系统及方法,以实现适配异构多云环境的应用发布。
为了达到上述目的,本发明采用以下方案实现:
根据本发明实施例的一个方面,提供了一种应用于异构多云环境的应用发布系统,其特征在于,包括:持续集成子系统、持续部署子系统、及应用部署子系统;所述持续集成子系统包括配置库集成模块和自动化构建模块,所述持续部署子系统包括可视化蓝图管理模块和发布任务管理模块,所述应用部署子系统包括自动化流水线模块、云资源编排引擎模块、及云资源接口适配器模块;
所述配置库集成模块,用于利用代码管理工具获取待发布应用的软件代码;
所述自动化构建模块,用于依据设定构建模板并利用持续集成工具对所述待发布应用的软件代码进行自动化构建,生成制品包;
所述可视化蓝图管理模块,用于接收输入的对应于所述待发布应用的软件架构的应用部署编排指令,以生成相应的应用部署蓝图;其中,所述应用部署编排指令包括基础软件编排指令和相应的云资源编排指令;
所述发布任务管理模块,用于接收对应于所述制品包的发布任务维护指令,以得到所述制品包的发布任务;
所述自动化流水线模块,用于通过解析所述应用部署蓝图,生成对应于所述制品包的所述发布任务的应用部署流程;
所述云资源编排引擎模块,用于将所述应用部署流程解析为具有相应拓扑关系的云资源组合,并转换为相应的部署任务脚本;
所述云资源接口适配器模块,用于对异构多云环境的多云平台进行接口的适配,以在目标云平台执行所述部署任务脚本,从而将所述待发布应用的所述制品包发布至所述目标云平台。
在一些实施例中,所述的应用于异构多云环境的应用发布系统,还包括:制品库子系统;
所述制品库子系统包括:
安全漏洞扫描模块,用于对所述制品包进行漏洞扫描,以在通过漏洞扫描的情况下允许发布所述待发布应用的所述制品包;和/或,
统一制品管理模块,用于对所述待发布应用的所述制品包进行发布者权限验证,以在通过发布者权限验证的情况下允许发布所述待发布应用的所述制品包;和/或,用于将所述待发布应用的所述制品包与用于存放所述制品包的制品库中的所述待发布应用的历史制品包进行差异比较,以输出差异比较结果进行显示。
在一些实施例中,所述自动化构建模块,具体用于依据设定镜像结构和通用的设定构建模板,利用持续集成工具自动化构建所述待发布应用的镜像,生成制品包。
在一些实施例中,所述可视化蓝图管理模块,具体用于通过接收输入的拖拽已封装好的基础软件的指令,得到对应于所述待发布应用的软件架构的应用部署编排指令,以生成相应的应用部署蓝图;其中,所述基础软件包括操作系统、数据库、及中间件中的一个或多个。
在一些实施例中,所述发布任务为部署、卸载、升级、回滚、灰度发布、及扩缩容等中的一个或多个;
所述自动化流水线模块,具体用于通过解析所述应用部署蓝图,生成对应于所述制品包的所述发布任务的组件粒度的应用部署流程;
其中:
在所述发布任务为部署的情况下,所述应用部署流程包括待依次执行的制品包下载、解压、应用停止、备份、应用增量/全量升级、数据库增量sql执行、应用启动、及启动校验;
在所述发布任务为卸载的情况下,所述应用部署流程包括待依次执行的应用停止、应用备份、服务卸载、及服务校验;
在所述发布任务为升级的情况下,所述应用部署流程包括待依次执行的制品包下载、解压、应用停止、备份、应用/配置升级、应用启动、及启动校验;
在所述发布任务为回滚的情况下,所述应用部署流程包括待依次执行的应用停止、选择回滚版本、应用回滚、应用启动、及启动校验;
在所述发布任务为灰度发布的情况下,所述应用部署流程包括待依次执行的创建灰度版本、配置灰度转发策略、制品包下载、解压、灰度版本部署、应用启动、启动校验、灰度版本测试验证、及升级到正式版本;
在所述发布任务为扩缩容的情况下,所述应用部署流程包括待依次执行的修改配置、指定需要扩容、指定缩容的实例数、加载配置文件、及服务校验。
在一些实施例中,所述云资源接口适配器模块,具体用于对异构多云环境的多云平台进行通用API接口的适配,并通过通用API接口调用所述部署任务脚本所对应目标云平台的相关资源,以在所述目标云平台执行所述部署任务脚本,从而将所述待发布应用的所述制品包发布至所述目标云平台。
在一些实施例中,所述发布任务管理模块,具体用于利用所述待发布应用的项目管理系统获取对应于所述制品包的发布任务维护指令,以得到所述制品包的发布任务。
在一些实施例中,所述的应用于异构多云环境的应用发布系统,还包括:过程监控子系统;
所述过程监控子系统包括:
监控数据采集模块,用于采集生成制品包的过程的状态信息、制品包的相关信息、应用部署蓝图的相关信息、发布任务的相关信息、应用部署流程的相关信息、部署任务脚本的相关信息、及持续部署过程的状态信息;其中,持续部署过程包括生成应用部署流程的过程、生成部署任务脚本的过程、及适配过程;
持续集成视图模块,用于对采集的生成制品包的过程的状态信息进行统计分析,并输出相应统计分析结果、采集的制品包的相关信息、及应用部署蓝图的相关信息中的一个或多个信息进行显示;
持续部署视图模块,用于对采集的持续部署过程的状态信息进行统计分析,并输出相应统计分析结果、采集的发布任务的相关信息、应用部署流程的相关信息、及部署任务脚本的相关信息中的一个或多个信息进行显示。
根据本发明实施例的另一个方面,提供了一种应用于异构多云环境的应用发布方法,包括:
利用代码管理工具获取待发布应用的软件代码;
依据设定构建模板并利用持续集成工具对所述待发布应用的软件代码进行自动化构建,生成制品包;
接收输入的对应于所述待发布应用的软件架构的应用部署编排指令,以生成相应的应用部署蓝图;其中,所述应用部署编排指令包括基础软件编排指令和相应的云资源编排指令;
接收对应于所述制品包的发布任务维护指令,以得到所述制品包的发布任务;
通过解析所述应用部署蓝图,生成对应于所述制品包的所述发布任务的应用部署流程;
将所述应用部署流程解析为具有相应拓扑关系的云资源组合,并转换为相应的部署任务脚本;
对异构多云环境的多云平台进行接口适配,以在目标云平台执行所述部署任务脚本,从而将所述待发布应用的所述制品包发布至所述目标云平台。
在一些实施例中,所述的应用于异构多云环境的应用发布方法,还包括:
对所述制品包进行漏洞扫描,以在通过漏洞扫描的情况下允许发布所述待发布应用的所述制品包;
对所述待发布应用的所述制品包进行发布者权限验证,以在通过发布者权限验证的情况下允许发布所述待发布应用的所述制品包;和/或,用于将所述待发布应用的所述制品包与用于存放所述制品包的制品库中的所述待发布应用的历史制品包进行差异比较,以输出差异比较结果进行显示。
在一些实施例中,所述的应用于异构多云环境的应用发布方法,还包括:
采集生成制品包的过程的状态信息、制品包的相关信息、应用部署蓝图的相关信息、发布任务的相关信息、应用部署流程的相关信息、部署任务脚本的相关信息、及持续部署过程的状态信息;其中,持续部署过程包括生成应用部署流程的过程、生成部署任务脚本的过程、及适配过程;
对采集的生成制品包的过程的状态信息进行统计分析,并输出相应统计分析结果、采集的制品包的相关信息、及应用部署蓝图的相关信息中的一个或多个信息进行显示;
对采集的持续部署过程的状态信息进行统计分析,并输出相应统计分析结果、采集的发布任务的相关信息、应用部署流程的相关信息、及部署任务脚本的相关信息中的一个或多个信息进行显示。
根据本发明实施例的又一个方面,提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述任一实施例所述方法的步骤。
本发明实施例的应用于异构多云环境的应用发布系统、应用于异构多云环境的应用发布方法、及计算机可读存储介质,能够实现适配异构多云环境的应用发布。而且,通过对接代码管理工具、持续集成工具、适配不同目标云平台的接口等,以及采用可视化交互方式实现应用部署蓝图、云资源编排等,所以能够有效提高应用发布效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:
图1是本发明一实施例的应用于异构多云环境的应用发布系统的结构示意图;
图2是本发明另一实施例的应用于异构多云环境的应用发布系统的结构示意图;
图3是本发明又一实施例的应用于异构多云环境的应用发布系统的结构示意图;
图4是本发明一实施例的应用于异构多云环境的应用发布方法的流程示意图;
图5是本发明一具体实施例的应用于异构多云环境的应用发布系统的结构示意图;
图6是本发明一具体实施例的应用于异构多云环境的应用发布流程示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚明白,下面结合附图对本发明实施例做进一步详细说明。在此,本发明的示意性实施例及其说明用于解释本发明,但并不作为对本发明的限定。
为了实现适配异构多云环境的应用发布,并提高应用发布的交互体验,本发明提供了一种应用于异构多云环境的应用发布系统。
图1是本发明一实施例的应用于异构多云环境的应用发布系统的结构示意图。如图1所示,该应用于异构多云环境的应用发布系统可包括:持续集成子系统10、持续部署子系统11、及应用部署子系统12。
持续集成子系统10包括配置库集成模块101和自动化构建模块102,可以用于对接现有代码管理工具,可以用于实现制品包的自动化构建。
配置库集成模块101用于利用代码管理工具获取待发布应用的软件代码。
其中,“代码管理工具”又可称为配置管理工具,可以用于从代码仓库拉取待发布应用的软件代码的能力,还可以用于实现其他针对软件代码的管理能力,例如,代码质量检测能力,更具体地,如key、webhook等管理能力。另外,代码管理工具还可以用于支持基于主干或分支的应用发布模式。该代码管理工具可以利用第三方软件实现,例如,可以是Git、SVN、Artifactory等。上述配置库集成模块101能够实现与该代码管理工具对接,从而能够利用代码管理工具所具备的能力实现对软件代码的操作。
自动化构建模块102用于依据设定构建模板并利用持续集成工具对所述待发布应用的软件代码进行自动化构建,生成制品包。
其中,该设定构建模板可以用于确定制品包的具体形式。该设定构建模板可以是通用构建模板,或者可以是基于通用构建模板做简单改进得到个性化构建模板。“持续集成工具”又可以称为持续集成引擎,可以用于生成自动化构建任务,驱动实现对待发布应用的软件代码的自动编译、打包、构建等操作,从而生成该软件代码所对应的制品包。另外,自动化构建模块102所执行的自动化构建过程可以在容器中进行,所以其可以提供镜像模板。该持续集成工具可以利用现有的软件实现,例如,可以是Jenkins。自动化构建模块102中可以设置有设定构建模板,并可以用于对接持续集成工具,从而对接持续集成工具生成的任务(如Jenkins任务),进而实现自动化构建代码软件的制品包。生成的制品包可以上传至制品库,待使用,而且,待发布应用可能发布多次,每次发布过程中生成的制品包都可以存放在该制品库中。
具体实施时,自动化构建模块102具体可用于依据设定镜像结构和通用的设定构建模板,利用持续集成工具自动化构建所述待发布应用的镜像,生成制品包。以此,可以利用通用构建模板,在容器中,利用对接的持续集成工具自动化构建待发布应用的该版本的软件代码的制品包。
持续部署子系统11包括可视化蓝图管理模块111和发布任务管理模块112,可用于实现可视化的应用部署蓝图的编排,可以用于确定发布任务,可以用于实现“一键式”多云环境快速部署。
可视化蓝图管理模块111用于接收输入的对应于所述待发布应用的软件架构的应用部署编排指令,以生成相应的应用部署蓝图;其中,所述应用部署编排指令包括基础软件编排指令和相应的云资源编排指令。
其中,用户(如运维人员)可以通过可视化界面,针对其待发布应用的软件架构,输入应用部署编排指令,以进行应用部署的编排,生成面向相应业务场景的应用部署蓝图。应用部署编排的内容可以包括选择所使用的云平台、所需云平台资源的大小、选择待发布应用的软件架构所需的各种基础软件等。其中,所述基础软件可包括操作系统、数据库、及中间件中的一个或多个。另外,可以通过拖拽的方式选择基础软件。此外,生成的应用部署蓝图可以包括应用部署编排指令所涉及的各种内容,例如,所选择的基础软件、云资源组合、应用部署相关的流程信息。
具体实施时,可视化蓝图管理模块111具体可用于通过接收输入的拖拽已封装好的基础软件的指令,得到对应于所述待发布应用的软件架构的应用部署编排指令,以生成相应的应用部署蓝图。以此,允许用户采用可视化方式进行应用部署编排,提高了交互体验。
发布任务管理模块112,用于接收对应于所述制品包的发布任务维护指令,以得到所述制品包的发布任务。
其中,发布任务维护指令可包括新建发布任务、修改发布任务、删除发布任务等。可以由用户输入待发布应用的本次制品包对应的发布任务;或者,发布任务管理模块112可以对接待发布应用的项目管理系统,从而可以由第三方的项目管理系统提供待发布应用的本次制品包对应的发布任务。发布任务可以为部署、卸载、升级、回滚、灰度发布、及扩缩容等中的一个或多个。发布任务还可以包括混合发布,即可以支持云上和云下两种发布模式。
具体实施时,发布任务管理模块112具体可用于利用所述待发布应用的项目管理系统获取对应于所述制品包的发布任务维护指令,以得到所述制品包的发布任务。该项目管理系统可以为第三方(待发布应用的发布方)的应用管理系统,可以集成审批、配置自动化部署、卸载、升级、回滚、混合发布、灰度发布、扩缩容等任务,审批通过后,发布任务管理模块112得到发布任务,然后,可以通过应用发布进行统一部署发布操作,可提供给后续的应用部署子系统12执行部署。
应用部署子系统12包括自动化流水线模块121、云资源编排引擎模块122、及云资源接口适配器模块123,可以用于根据应用部署蓝图,生成自动化部署流水线,逐层解析生成部署任务脚本,并实现与各种云平台适配,可以统一管理、调度异构云的计算、存储及网络资源,执行应用部署操作。
自动化流水线模块121用于通过解析所述应用部署蓝图,生成对应于所述制品包的所述发布任务的应用部署流程。
其中,通过基于可视化蓝图管理模块111修改应用部署蓝图,可以实现修改应用部署流程(又可称为部署流水线、自动化流水线)。应用部署流程可以进行可视化显示,或者直接用于后续过程而不进行显示。
具体实施时,自动化流水线模块121具体可用于通过解析所述应用部署蓝图,生成对应于所述制品包的所述发布任务的组件粒度的应用部署流程。
针对不同发布任务,应用部署流程可有所不同。例如,在所述发布任务为部署的情况下,所述应用部署流程可包括待依次执行的制品包下载、解压、应用停止、备份、应用增量/全量升级、数据库增量sql执行、应用启动、及启动校验;在所述发布任务为卸载的情况下,所述应用部署流程可包括待依次执行的应用停止、应用备份、服务卸载、及服务校验;在所述发布任务为升级的情况下,所述应用部署流程可包括待依次执行的制品包下载、解压、应用停止、备份、应用/配置升级、应用启动、及启动校验;在所述发布任务为回滚的情况下,所述应用部署流程可包括待依次执行的应用停止、选择回滚版本、应用回滚、应用启动、及启动校验;在所述发布任务为灰度发布的情况下,所述应用部署流程可包括待依次执行的创建灰度版本、配置灰度转发策略、制品包下载、解压、灰度版本部署、应用启动、启动校验、灰度版本测试验证、及升级到正式版本;在所述发布任务为扩缩容的情况下,所述应用部署流程可包括待依次执行的修改配置、指定需要扩容、指定缩容的实例数、加载配置文件、及服务校验。
云资源编排引擎模块122用于将所述应用部署流程解析为具有相应拓扑关系的云资源组合,并转换为相应的部署任务脚本。
其中,应用部署蓝图包含了云资源的编排信息,则应用部署流程包含了云资源的拓扑关系,所以通过解析应用部署流程可以得到具有一定拓扑关系的云资源组合。将具有该拓扑关系的云资源组合转换为部署任务脚本,可便于到相应目标云平台利用相应云资源执行相应任务。云资源编排引擎模块可以通过编排实现应用自动配置、自动部署、自动发布。可视化编排资源对象可包括CPU、内存、磁盘空间、环境变量、标签、镜像、应用包、指定环境与集群、虚拟机数、负载均衡策略、网络等。通过可视化方式编排生成并行或串行部署任务脚本。可通过调用云通用接口适配器,支持异构资源统一抽象和统一管理,实现灵活的跨区、跨平台的资源调度和编排。
云资源接口适配器模块123用于对异构多云环境的多云平台进行接口适配,以在目标云平台执行所述部署任务脚本,从而将所述待发布应用的所述制品包发布至所述目标云平台。
其中,云资源接口适配器模块123可以将部署任务脚本转换为相应目标云平台的应用程序接口的指令,以便该目标云平台识别并执行脚本代码。部署任务脚本可以通过串行或并行的方式执行。
为了方便地适配不同云平台的接口,可以先将部署任务脚本转换为通用接口的指令,在调用相应目标云平台的信息进行差异化适配。云资源通用接口适配器模块可以用于屏蔽异构云接口差异,采用适配器模式提供基于标准API(应用程序接口)的云平台接口,纳管异构资源类型包括虚拟机资源、裸金属资源、云中间件,实现异构资源统一抽象和统一管理,提供统一接口供云资源部署引擎调用,实现对应用发布所需基础设施资源的操作。
具体实施时,云资源接口适配器模块123具体可用于对异构多云环境的多云平台进行通用API接口的适配,并通过通用API接口调用所述部署任务脚本所对应目标云平台的相关资源,以在所述目标云平台执行所述部署任务脚本,从而将所述待发布应用的所述制品包发布至所述目标云平台。
为了对制品包进行统一管理,本发明实施例的应用于异构多云环境的应用发布系统可以设置有制品库子系统。
图2是本发明另一实施例的应用于异构多云环境的应用发布系统的结构示意图。如图2所示,图1所示的应用于异构多云环境的应用发布系统还可包括制品库子系统13。
制品库子系统13包括安全漏洞扫描模块131和/或统一制品管理模块132。制品库子系统13可以用于对应用制品的统一管理,可通过构建企业级的镜像仓库,实现多版本组件包、Docker镜像、依赖包管理等。
安全漏洞扫描模块131用于对所述制品包进行漏洞扫描,以在通过漏洞扫描的情况下允许发布所述待发布应用的所述制品包。
其中,安全漏洞扫描模块131可以利用业界权威漏洞信息实现安全检测服务,统一扫描第三方开源软件(待发布应用的软件/制品包)漏洞,可以支持Java、.NET、NPM、Python、Android、Docker及debian/rpm等类型,可支持安全威胁传递路径及影响范围分析,且可对接到应用发布流程中,支持自定义扫描的对象(如构建、制品)及关注的漏洞级别。以此,可以避免开源软件大量漏洞对拟上线应用带来的安全风险。
统一制品管理模块132可以用于对所述待发布应用的所述制品包进行发布者权限验证,以在通过发布者权限验证的情况下允许发布所述待发布应用的所述制品包。统一制品管理模块132可以用于将所述待发布应用的所述制品包与用于存放所述制品包的制品库中的所述待发布应用的历史制品包进行差异比较,以输出差异比较结果进行显示。
其中,在本发明实施例的系统发布应用,可以需要事先登录,登录信息可以视为发布者的信息,一般待发布应用的所有者较大可能应与登录者一致,如此一来,可以通过判断制品包的发布者信息和制品包中携带的用户信息是否一致,来判断该发布者是否有权限发布该待发布应用的该制品包。可以只有在具有权限的情况下才允许继续进行后续过程,如进行持续部署过程。
另外,对于一个待发布应用而言,可能发布了多次,则每次发布都可以生成相应版本的制品包,这些制品包可以均存放在制品库中,该统一制品管理模块132可以对制品库中同一待发布应用的不同版本的制品包进行比对,并给出差异情况,且可以将差异比较结果显示给用户,以便用户明确不同制品包的差异,从而提高交互体验,提高发布管理便捷性。
统一制品管理模块可以提供多种开发语言的依赖及构建产出物的统一管理功能,可以支持Java、.Net、Python、Node.js、IOS、Android、YUM等开发语言,可对接LDAP、OAuthSSO等认证方式,实现统一认证与权限管理,能够提供多次构建之间的依赖变化对比能力。
为了对应用发布的过程进行监控,本发明实施例的应用于异构多云环境的应用发布系统可设置有过程监控子系统。
图3是本发明又一实施例的应用于异构多云环境的应用发布系统的结构示意图,参见图3,本发明各实施例所述的应用于异构多云环境的应用发布系统还可包括过程监控子系统14。
过程监控子系统14可包括监控数据采集模块141、持续集成视图模块142及持续部署视图模块143。过程监控子系统可以用于从构建、部署、运维、发布管理多个维度,对应用发布过程中产生的状态信息进行采集、统计、展示。
监控数据采集模块141用于采集生成制品包的过程的状态信息、制品包的相关信息、应用部署蓝图的相关信息、发布任务的相关信息、应用部署流程的相关信息、部署任务脚本的相关信息、及持续部署过程的状态信息;其中,持续部署过程包括生成应用部署流程的过程、生成部署任务脚本的过程、及适配过程。
其中,生成制品包的过程的状态信息可以包括自动化构建过程中的构建时间、成功、失败等信息。制品包的相关信息可包括版本信息等。应用部署蓝图的相关信息可包括各种环境、组件等信息。发布任务的相关信息包括发布任务的类型等。持续部署过程的状态信息可以包括整个持续部署过程的部署总时间、成功、失败等信息。监控数据采集模块可以集中汇聚应用发布全程的开发、构建、测试和部署等关键信息,形成资源操作日志、流水线执行历史、实时进度监控、操作日志,提供给持续集成视图模块、持续部署视图模块进行统计分析和可视化展示。
持续集成视图模块142用于对采集的生成制品包的过程的状态信息进行统计分析,并输出相应统计分析结果、采集的制品包的相关信息、及应用部署蓝图的相关信息中的一个或多个信息进行显示。
其中,采集的生成制品包的过程的状态信息进行统计分析的结果可包括构建次数、构建时长、成功率、失败率等。持续集成视图模块可以对监控数据采集模块汇集的持续集成过程状态信息进行统计分析,采用可视化图表的方式生成包含持续集成过程中的环境、组件、构建次数、构建时长、成功率、失败率等的集成指标视图。
持续部署视图模块143用于对采集的持续部署过程的状态信息进行统计分析,并输出相应统计分析结果、采集的发布任务的相关信息、应用部署流程的相关信息、及部署任务脚本的相关信息中的一个或多个信息进行显示。
其中,对采集的持续部署过程的状态信息进行统计分析的结果可包括部署次数、部署时长、成功率、失败率等。持续部署视图模块,对监控数据采集模块汇集的持续部署过程状态信息进行统计分析,采用可视化图表的方式生成包含持续部署过程中的环境、组件、构建次数、构建时长、成功率、失败率等的集成指标视图。
上述各实施例的应用于异构多云环境的应用发布系统可以由计算机设备,如个人计算机、物理服务器等执行。
基于与图1所示的应用于异构多云环境的应用发布系统相同的发明构思,本发明实施例还提供了一种应用于异构多云环境的应用发布方法,如下面实施例所述。由于该应用于异构多云环境的应用发布方法解决问题的原理与应用于异构多云环境的应用发布系统相似,因此该应用于异构多云环境的应用发布方法的实施可以参见应用于异构多云环境的应用发布系统的实施,重复之处不再赘述。
图4是本发明一实施例的应用于异构多云环境的应用发布方法的流程示意图。如图4所示,该应用于异构多云环境的应用发布方法可包括:
步骤S210:利用代码管理工具获取待发布应用的软件代码;
步骤S220:依据设定构建模板并利用持续集成工具对所述待发布应用的软件代码进行自动化构建,生成制品包;
步骤S230:接收输入的对应于所述待发布应用的软件架构的应用部署编排指令,以生成相应的应用部署蓝图;其中,所述应用部署编排指令包括基础软件编排指令和相应的云资源编排指令;
步骤S240:接收对应于所述制品包的发布任务维护指令,以得到所述制品包的发布任务;
步骤S250:通过解析所述应用部署蓝图,生成对应于所述制品包的所述发布任务的应用部署流程;
步骤S260:将所述应用部署流程解析为具有相应拓扑关系的云资源组合,并转换为相应的部署任务脚本;
步骤S270:对异构多云环境的多云平台进行接口适配,以在目标云平台执行所述部署任务脚本,从而将所述待发布应用的所述制品包发布至所述目标云平台。
在一些实施例中,上述步骤S220具体可包括步骤:依据设定镜像结构和通用的设定构建模板,利用持续集成工具自动化构建所述待发布应用的镜像,生成制品包。
在一些实施例中,上述步骤S230具体可包括步骤:通过接收输入的拖拽已封装好的基础软件的指令,得到对应于所述待发布应用的软件架构的应用部署编排指令,以生成相应的应用部署蓝图。其中,所述基础软件可包括操作系统、数据库、及中间件中的一个或多个。
在一些实施例中,所述发布任务可为部署、卸载、升级、回滚、灰度发布、及扩缩容等中的一个或多个。
在一些实施例中,上述步骤S250具体可包括步骤:通过解析所述应用部署蓝图,生成对应于所述制品包的所述发布任务的组件粒度的应用部署流程。
在一些实施例中,在所述发布任务为部署的情况下,所述应用部署流程包括待依次执行的制品包下载、解压、应用停止、备份、应用增量/全量升级、数据库增量sql执行、应用启动、及启动校验;在所述发布任务为卸载的情况下,所述应用部署流程包括待依次执行的应用停止、应用备份、服务卸载、及服务校验;在所述发布任务为升级的情况下,所述应用部署流程包括待依次执行的制品包下载、解压、应用停止、备份、应用/配置升级、应用启动、及启动校验;在所述发布任务为回滚的情况下,所述应用部署流程包括待依次执行的应用停止、选择回滚版本、应用回滚、应用启动、及启动校验;在所述发布任务为灰度发布的情况下,所述应用部署流程包括待依次执行的创建灰度版本、配置灰度转发策略、制品包下载、解压、灰度版本部署、应用启动、启动校验、灰度版本测试验证、及升级到正式版本;在所述发布任务为扩缩容的情况下,所述应用部署流程包括待依次执行的修改配置、指定需要扩容、指定缩容的实例数、加载配置文件、及服务校验。
在一些实施例中,上述步骤S270具体可包括步骤:对异构多云环境的多云平台进行通用API接口的适配,并通过通用API接口调用所述部署任务脚本所对应目标云平台的相关资源,以在所述目标云平台执行所述部署任务脚本,从而将所述待发布应用的所述制品包发布至所述目标云平台。
在一些实施例中,上述步骤S240具体可包括步骤:利用所述待发布应用的项目管理系统获取对应于所述制品包的发布任务维护指令,以得到所述制品包的发布任务。
进一步的实施例中,图4所示的应用于异构多云环境的应用发布方法,还可包括步骤:S280:对所述制品包进行漏洞扫描,以在通过漏洞扫描的情况下允许发布所述待发布应用的所述制品包;S290:对所述待发布应用的所述制品包进行发布者权限验证,以在通过发布者权限验证的情况下允许发布所述待发布应用的所述制品包;和/或,用于将所述待发布应用的所述制品包与用于存放所述制品包的制品库中的所述待发布应用的历史制品包进行差异比较,以输出差异比较结果进行显示。
进一步的实施例中,图4所示的应用于异构多云环境的应用发布方法,还可包括步骤:S2100:采集生成制品包的过程的状态信息、制品包的相关信息、应用部署蓝图的相关信息、发布任务的相关信息、应用部署流程的相关信息、部署任务脚本的相关信息、及持续部署过程的状态信息;其中,持续部署过程包括生成应用部署流程的过程、生成部署任务脚本的过程、及适配过程;S2110:对采集的生成制品包的过程的状态信息进行统计分析,并输出相应统计分析结果、采集的制品包的相关信息、及应用部署蓝图的相关信息中的一个或多个信息进行显示;S2120:对采集的持续部署过程的状态信息进行统计分析,并输出相应统计分析结果、采集的发布任务的相关信息、应用部署流程的相关信息、及部署任务脚本的相关信息中的一个或多个信息进行显示。
另外,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述任一实施例所述方法的步骤。
为使本领域技术人员更好地了解本发明,下面将以具体实施例说明本发明的实施方式。
图5是本发明一具体实施例的应用于异构多云环境的应用发布系统的结构示意图。图6是本发明一具体实施例的应用于异构多云环境的应用发布流程示意图。参见图5和图6,本实施例的应用于异构多云环境的应用发布系统包括持续集成子系统、制品库子系统、持续部署子系统、应用部署子系统、及过程监控子系统。
持续集成子系统,用于对接主流配置管理工具,实现代码质量检测、自动编译、打包、构建,实现持续集成流水线,包括配置库集成模块、构建自动化模块,其中:
配置库集成模块,用于对接Git、SVN、Artifactory相关API实现和代码管理工具,可供选择基于主干或分支执行构建;对接Git、SVN、Artifactory等配置管理工具,具备代码仓库的拉取,以及key、webhook的管理能力。
自动化构建模块,基于通用构建模板和代码包构建容器,支持容器的镜像构建管理,通过对接Jenkins任务实现自动构建,经过自动化构建后产出的制品包,能够自动上传到制品库,供持续部署流水线使用。用于依据通用构建模板和代码包构建镜像,并对接Jenkins任务实现自动构建,将自动构建产生的制品包上传至制品库。
制品库子系统,用于应用制品的统一管理,通过构建企业级的镜像仓库,实现多版本组件包、Docker镜像、依赖包管理,包括统一制品管理模块、安全漏洞扫描模块、监控数据管理模,其中:
统一制品管理模块,提供多种开发语言的依赖及构建产出物的统一管理功能,支持Java、.Net、Python、Node.js、IOS、Android、YUM等开发语言,可对接LDAP、OAuth SSO等认证方式,实现统一认证与权限管理,能够提供多次构建之间的依赖变化对比能力;用于构建产出物的统一管理,集中收集应用生命周期的所有依赖及配置,实现软件交付过程回溯;
安全漏洞扫描模块,为避免开源软件大量漏洞对拟上线应用带来的安全风险,引入业界权威漏洞信息实现安全检测服务,统一扫描第三方开源软件漏洞,支持Java、.NET、NPM、Python、Android、Docker及debian/rpm等类型,支持安全威胁传递路径及影响范围分析,且能够对接到应用发布流程中,支持自定义扫描的对象(如构建、制品)及关注的漏洞级别。用于扫描制品包含的第三方开源软件的漏洞,并可将扫描结果附加到应用发布流程中。
持续部署子系统,用于提供可视化的应用部署蓝图编排,实现“一键式”多环境快速部署,包括可视化蓝图管理模块、发布任务管理模块,其中:
可视化蓝图管理模块,用于绘制应用部署蓝图,提供拖拽式蓝图编排功能,包括蓝图设计、创建、编辑、管理和删除等全生命周期的功能。运维管理人员可以方便快速的从资源仓库中拖拽已经封装好的操作系统、数据库、中间件等基础软件,灵活动态编排面向不同的业务场景部署蓝图;
发布任务管理模块,用于新建、删除、修改应用发布任务,可支持对接项目管理系统,实现新建、删除、修改发布任务功能,可编辑发布的任务描述、任务的优先级、发布的环境、发布的责任人等,集成审批功能,配置自动化部署、卸载、升级、回滚、混合发布、灰度发布、扩缩容等任务,支持基于发布任务进行批量发布操作,审批通过后通过应用部署子系统进行统一部署发布操作。
应用部署子系统,用于根据应用部署蓝图,绘制自动化部署流水线,逐层解析生成部署任务脚本,通过云通用接口适配器,统一管理、调度异构云的计算、存储、网络资源,执行应用部署操作,包括自动化流水线模块、云资源编排引擎模块、云资源通用接口适配器模块,其中:
自动化流水线模块,用于解析应用部署蓝图,生成组件粒度的可视化自动部署流水线;通过解析应用部署蓝图,生成组件粒度的可视化自动部署流水线,支持应用和数据库的全量、增量部署,通过流程编排功能用户可以灵活定制部署流程。
自动化流水线一般包含如下步骤:制品包下载→解压→应用停止→备份→应用增量或全量升级→数据库增量sql执行→应用启动→启动校验;卸载:应用停止→应用备份→服务卸载→服务校验;
回滚可包含步骤:应用停止→选择回滚版本→应用回滚→应用启动→启动校验;
应用升级可包含步骤:制品包下载→解压→应用停止→备份→应用(配置)升级→应用启动→启动校验;
扩缩容可包含步骤:修改配置→指定需要扩容、缩容的实例数→加载配置文件→服务校验;
灰度发布可包含步骤:创建灰度版本→配置灰度转发策略→制品包下载→解压→灰度版本部署→应用启动→启动校验→灰度版本测试验证→升级到正式版本。
另外,混合发布可指支持云上、云下两种发布模式。
云资源编排引擎模块,用于将自动部署流水线解析为一组具有拓扑关系的资源组合,编排生成并行或串行部署任务脚本,通过调用云通用接口适配器模块,执行部署操作;通过编排实现应用自动配置、自动部署、自动发布。可视化编排资源对象,包括CPU、内存、磁盘空间、环境变量、标签、镜像、应用包、指定环境与集群、虚拟机数、负载均衡策略、网络等。通过可视化方式编排生成并行或串行部署任务脚本。通过调用云通用接口适配器,支持异构资源统一抽象和统一管理,实现灵活的跨区、跨平台的资源调度和编排。
云资源通用接口适配器模块,基于标准API(应用程序接口),抽取各异构云平台核心通用功能,通过云平台单独适配与现有通用标准适配并存的适配模式提供统一管理适配,通过所述的通用适配接口调用各个云平台的资源,执行部署环境创建、应用部署等操作。
过程监控子系统,用于从构建、部署、运维、发布管理多个维度,对应用发布过程中产生的状态信息进行采集、统计、展示,包括监控数据采集模块、持续集成视图模块、持续部署视图模块,其中:
监控数据采集模块,用于汇集贯穿应用全生命周期的开发、构建、测试和部署阶段的关键信息,提供数据分析管理服务;集中汇聚应用发布全程的开发、构建、测试和部署等关键信息,形成资源操作日志、流水线执行历史、实时进度监控、操作日志,提供给持续集成视图模块、持续部署视图模块进行统计分析和可视化展示;
持续集成视图模块,用于对持续集成过程中的环境、组件、构建次数、构建时长、成功率、失败率等信息进行统计、展示,生成持续集成视图;对监控数据采集模块汇集的持续集成过程状态信息进行统计分析,采用可视化图表的方式生成包含持续集成过程中的环境、组件、构建次数、构建时长、成功率、失败率等的集成指标视图;
持续部署视图模块,用于对持续部署过程中的环境、组件、部署次数、部署时长、日期、成功率、失败率等信息进行统计、展示,生成持续部署视图。对监控数据采集模块汇集的持续部署过程状态信息进行统计分析,采用可视化图表的方式生成包含持续部署过程中的环境、组件、构建次数、构建时长、成功率、失败率等的集成指标视图。
本实施例中,持续集成子系统,用于对接主流配置管理工具,实现代码质量检测、自动编译、打包、构建;制品库子系统,用于应用制品的统一管理,通过构建企业级的镜像仓库,实现多版本组件包、Docker镜像、依赖包管理;持续部署子系统,用于提供可视化的应用部署蓝图编排,实现“一键式”多环境快速部署;应用部署子系统,用于根据应用部署蓝图,逐层解析生成自动化部署流水线、部署任务脚本,通过云通用接口适配器,统一管理、调度异构云的计算、存储、网络资源,执行应用部署操作;过程监控子系统,用于从构建、部署、运维、发布管理多个维度,对应用发布过程中产生的状态信息进行采集、统计、展示。本发明面向多云环境下的企业应用,适配异构多云环境,实现异构云资源的操作,采用可视化交互的方式,提供涵盖应用发布全流程的代码构建、代码检测、部署回滚、运行监控的一站式交互体验,能够有效提高应用发布效率,加快业务价值交付。
本实施例的效果在于:通过云通用接口适配器,构建异构多云的统一规范接口,实现异构云资源的操作;通过云资源编排引擎提供可视化应用发布编排,运维管理人员以拖拽式蓝图编排方式,灵活动态编排面向不同业务场景的异构云资源;通过持续集成和持续部署流水线实现代码自动获取、自动构建打包、配合代码静态扫描工具进行代码自动检测、自动快速部署,提供代码构建、代码检测、部署回滚、运行监控的一站式交互体验。本发明秉承持续集成、持续部署理念设计,面向多云环境下的企业应用,促进开发、测试、运维、质量保障部门之间的协同,可有效提高应用发布效率,加快业务价值交付。
综上所述,本发明实施例的应用于异构多云环境的应用发布系统、应用于异构多云环境的应用发布方法、及计算机可读存储介质,能够实现适配异构多云环境的应用发布。而且,通过对接代码管理工具、持续集成工具、适配不同目标云平台的接口等,以及采用可视化交互方式实现应用部署蓝图、云资源编排等,所以能够有效提高应用发布效率。
在本说明书的描述中,参考术语“一个实施例”、“一个具体实施例”、“一些实施例”、“例如”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。各实施例中涉及的步骤顺序用于示意性说明本发明的实施,其中的步骤顺序不作限定,可根据需要作适当调整。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (12)

1.一种应用于异构多云环境的应用发布系统,其特征在于,包括:持续集成子系统、持续部署子系统、及应用部署子系统;所述持续集成子系统包括配置库集成模块和自动化构建模块,所述持续部署子系统包括可视化蓝图管理模块和发布任务管理模块,所述应用部署子系统包括自动化流水线模块、云资源编排引擎模块、及云资源接口适配器模块;
所述配置库集成模块,用于利用代码管理工具获取待发布应用的软件代码;
所述自动化构建模块,用于依据设定构建模板并利用持续集成工具对所述待发布应用的软件代码进行自动化构建,生成制品包;
所述可视化蓝图管理模块,用于接收输入的对应于所述待发布应用的软件架构的应用部署编排指令,以生成相应的应用部署蓝图;其中,所述应用部署编排指令包括基础软件编排指令和相应的云资源编排指令;
所述发布任务管理模块,用于接收对应于所述制品包的发布任务维护指令,以得到所述制品包的发布任务;
所述自动化流水线模块,用于通过解析所述应用部署蓝图,生成对应于所述制品包的所述发布任务的应用部署流程;
所述云资源编排引擎模块,用于将所述应用部署流程解析为具有相应拓扑关系的云资源组合,并转换为相应的部署任务脚本;
所述云资源接口适配器模块,用于对异构多云环境的多云平台进行接口适配,以在目标云平台执行所述部署任务脚本,从而将所述待发布应用的所述制品包发布至所述目标云平台。
2.如权利要求1所述的应用于异构多云环境的应用发布系统,其特征在于,还包括:制品库子系统;
所述制品库子系统包括:
安全漏洞扫描模块,用于对所述制品包进行漏洞扫描,以在通过漏洞扫描的情况下允许发布所述待发布应用的所述制品包;和/或,
统一制品管理模块,用于对所述待发布应用的所述制品包进行发布者权限验证,以在通过发布者权限验证的情况下允许发布所述待发布应用的所述制品包;和/或,用于将所述待发布应用的所述制品包与用于存放所述制品包的制品库中的所述待发布应用的历史制品包进行差异比较,以输出差异比较结果进行显示。
3.如权利要求1所述的应用于异构多云环境的应用发布系统,其特征在于,
所述自动化构建模块,具体用于依据设定镜像结构和通用的设定构建模板,利用持续集成工具自动化构建所述待发布应用的镜像,生成制品包。
4.如权利要求1所述的应用于异构多云环境的应用发布系统,其特征在于,
所述可视化蓝图管理模块,具体用于通过接收输入的拖拽已封装好的基础软件的指令,得到对应于所述待发布应用的软件架构的应用部署编排指令,以生成相应的应用部署蓝图;其中,所述基础软件包括操作系统、数据库、及中间件中的一个或多个。
5.如权利要求1所述的应用于异构多云环境的应用发布系统,其特征在于,所述发布任务为部署、卸载、升级、回滚、灰度发布、及扩缩容等中的一个或多个;
所述自动化流水线模块,具体用于通过解析所述应用部署蓝图,生成对应于所述制品包的所述发布任务的组件粒度的应用部署流程;
其中:
在所述发布任务为部署的情况下,所述应用部署流程包括待依次执行的制品包下载、解压、应用停止、备份、应用增量/全量升级、数据库增量sql执行、应用启动、及启动校验;
在所述发布任务为卸载的情况下,所述应用部署流程包括待依次执行的应用停止、应用备份、服务卸载、及服务校验;
在所述发布任务为升级的情况下,所述应用部署流程包括待依次执行的制品包下载、解压、应用停止、备份、应用/配置升级、应用启动、及启动校验;
在所述发布任务为回滚的情况下,所述应用部署流程包括待依次执行的应用停止、选择回滚版本、应用回滚、应用启动、及启动校验;
在所述发布任务为灰度发布的情况下,所述应用部署流程包括待依次执行的创建灰度版本、配置灰度转发策略、制品包下载、解压、灰度版本部署、应用启动、启动校验、灰度版本测试验证、及升级到正式版本;
在所述发布任务为扩缩容的情况下,所述应用部署流程包括待依次执行的修改配置、指定需要扩容、指定缩容的实例数、加载配置文件、及服务校验。
6.如权利要求1所述的应用于异构多云环境的应用发布系统,其特征在于,
所述云资源接口适配器模块,具体用于对异构多云环境的多云平台进行通用API接口的适配,并通过通用API接口调用所述部署任务脚本所对应目标云平台的相关资源,以在所述目标云平台执行所述部署任务脚本,从而将所述待发布应用的所述制品包发布至所述目标云平台。
7.如权利要求1所述的应用于异构多云环境的应用发布系统,其特征在于,
所述发布任务管理模块,具体用于利用所述待发布应用的项目管理系统获取对应于所述制品包的发布任务维护指令,以得到所述制品包的发布任务。
8.如权利要求1或2所述的应用于异构多云环境的应用发布系统,其特征在于,还包括:过程监控子系统;
所述过程监控子系统包括:
监控数据采集模块,用于采集生成制品包的过程的状态信息、制品包的相关信息、应用部署蓝图的相关信息、发布任务的相关信息、应用部署流程的相关信息、部署任务脚本的相关信息、及持续部署过程的状态信息;其中,持续部署过程包括生成应用部署流程的过程、生成部署任务脚本的过程、及适配过程;
持续集成视图模块,用于对采集的生成制品包的过程的状态信息进行统计分析,并输出相应统计分析结果、采集的制品包的相关信息、及应用部署蓝图的相关信息中的一个或多个信息进行显示;
持续部署视图模块,用于对采集的持续部署过程的状态信息进行统计分析,并输出相应统计分析结果、采集的发布任务的相关信息、应用部署流程的相关信息、及部署任务脚本的相关信息中的一个或多个信息进行显示。
9.一种应用于异构多云环境的应用发布方法,其特征在于,包括:
利用代码管理工具获取待发布应用的软件代码;
依据设定构建模板并利用持续集成工具对所述待发布应用的软件代码进行自动化构建,生成制品包;
接收输入的对应于所述待发布应用的软件架构的应用部署编排指令,以生成相应的应用部署蓝图;其中,所述应用部署编排指令包括基础软件编排指令和相应的云资源编排指令;
接收对应于所述制品包的发布任务维护指令,以得到所述制品包的发布任务;
通过解析所述应用部署蓝图,生成对应于所述制品包的所述发布任务的应用部署流程;
将所述应用部署流程解析为具有相应拓扑关系的云资源组合,并转换为相应的部署任务脚本;
对异构多云环境的多云平台进行接口适配,以在目标云平台执行所述部署任务脚本,从而将所述待发布应用的所述制品包发布至所述目标云平台。
10.如权利要求9所述的应用于异构多云环境的应用发布方法,其特征在于,还包括:
对所述制品包进行漏洞扫描,以在通过漏洞扫描的情况下允许发布所述待发布应用的所述制品包;
对所述待发布应用的所述制品包进行发布者权限验证,以在通过发布者权限验证的情况下允许发布所述待发布应用的所述制品包;和/或,用于将所述待发布应用的所述制品包与用于存放所述制品包的制品库中的所述待发布应用的历史制品包进行差异比较,以输出差异比较结果进行显示。
11.如权利要求9所述的应用于异构多云环境的应用发布方法,其特征在于,还包括:
采集生成制品包的过程的状态信息、制品包的相关信息、应用部署蓝图的相关信息、发布任务的相关信息、应用部署流程的相关信息、部署任务脚本的相关信息、及持续部署过程的状态信息;其中,持续部署过程包括生成应用部署流程的过程、生成部署任务脚本的过程、及适配过程;
对采集的生成制品包的过程的状态信息进行统计分析,并输出相应统计分析结果、采集的制品包的相关信息、及应用部署蓝图的相关信息中的一个或多个信息进行显示;
对采集的持续部署过程的状态信息进行统计分析,并输出相应统计分析结果、采集的发布任务的相关信息、应用部署流程的相关信息、及部署任务脚本的相关信息中的一个或多个信息进行显示。
12.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求9至11任一项所述方法的步骤。
CN202010356018.0A 2020-04-29 2020-04-29 应用于异构多云环境的应用发布系统及方法 Pending CN111580832A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010356018.0A CN111580832A (zh) 2020-04-29 2020-04-29 应用于异构多云环境的应用发布系统及方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010356018.0A CN111580832A (zh) 2020-04-29 2020-04-29 应用于异构多云环境的应用发布系统及方法

Publications (1)

Publication Number Publication Date
CN111580832A true CN111580832A (zh) 2020-08-25

Family

ID=72122732

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010356018.0A Pending CN111580832A (zh) 2020-04-29 2020-04-29 应用于异构多云环境的应用发布系统及方法

Country Status (1)

Country Link
CN (1) CN111580832A (zh)

Cited By (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111897561A (zh) * 2020-09-29 2020-11-06 广州宸祺出行科技有限公司 一种通过云端进行灰度发布的方法和系统
CN112015560A (zh) * 2020-09-08 2020-12-01 财拓云计算(上海)有限公司 一种用于构建it基础设施的装置
CN112162958A (zh) * 2020-09-11 2021-01-01 北京浪潮数据技术有限公司 网络文件系统的挂载方法、装置及电子设备和存储介质
CN112256461A (zh) * 2020-12-08 2021-01-22 万邑通商(北京)信息科技有限公司 一种基于多云环境的分布式消息系统及管理方法
CN112597057A (zh) * 2021-01-04 2021-04-02 网易(杭州)网络有限公司 一种蓝图数据的差异化处理方法和装置
CN112596784A (zh) * 2020-12-28 2021-04-02 青岛海尔科技有限公司 一种迭代版本部署方法及装置
CN112612554A (zh) * 2021-01-20 2021-04-06 广东金赋科技股份有限公司 一种利用适配服务分析器来统一管理操控硬件模块的方法
CN112685179A (zh) * 2020-12-28 2021-04-20 跬云(上海)信息科技有限公司 一种基于云上成本的资源部署系统及方法
CN112947949A (zh) * 2020-09-22 2021-06-11 深圳市明源云科技有限公司 应用程序安装方法、装置及电子设备
CN113064578A (zh) * 2021-03-17 2021-07-02 上海浦东发展银行股份有限公司 基于拖拽技术的应用编排方法、系统、设备及存储介质
CN113176892A (zh) * 2021-04-28 2021-07-27 中国工商银行股份有限公司 一种基于发布单元的标准化持续交付方法及系统
CN113176943A (zh) * 2021-04-23 2021-07-27 中国工商银行股份有限公司 多环境一致性部署方法及装置
CN113220431A (zh) * 2021-04-29 2021-08-06 西安易联趣网络科技有限责任公司 跨云的分布式数据任务调度方法、设备及存储介质
CN113220283A (zh) * 2021-05-10 2021-08-06 国网陕西省电力公司信息通信公司 一种基于云编排的物联app开发系统
CN113220480A (zh) * 2021-04-29 2021-08-06 西安易联趣网络科技有限责任公司 分布式的数据任务跨云调度系统及方法
CN113238764A (zh) * 2021-05-17 2021-08-10 西安点告网络科技有限公司 基于dag图的软件交付方法、系统、电子设备及可读存储介质
CN113312086A (zh) * 2021-06-10 2021-08-27 重庆小易智联智能技术有限公司 基于指令集的软件机器人系统及机器人运行方法
CN113553065A (zh) * 2020-04-26 2021-10-26 腾讯科技(深圳)有限公司 一种代码文件发布方法及装置
CN113553139A (zh) * 2021-07-28 2021-10-26 瑞幸咖啡信息技术(厦门)有限公司 容器云环境下的混合多云管理方法、系统、设备及介质
CN113626047A (zh) * 2021-08-27 2021-11-09 中国银行股份有限公司 Flume自动部署的系统及方法
CN113672242A (zh) * 2021-09-03 2021-11-19 中国邮政储蓄银行股份有限公司 协同部署方法、装置、计算机可读存储介质与处理器
CN113900640A (zh) * 2021-09-24 2022-01-07 北京航天云路有限公司 一种可快速搭建多套运行环境的方法
CN113986316A (zh) * 2021-12-27 2022-01-28 北京结慧科技有限公司 一种微服务的自动部署方法
CN114124951A (zh) * 2021-10-18 2022-03-01 浪潮通信信息系统有限公司 多云环境下构建行业云业务实例的方法及系统
CN114253557A (zh) * 2022-03-01 2022-03-29 苏州浪潮智能科技有限公司 一种云平台应用部署方法、装置、电子设备及存储介质
CN114253531A (zh) * 2021-11-11 2022-03-29 广州云擎互动信息技术有限公司 一种微服务发布系统
CN114265618A (zh) * 2021-11-30 2022-04-01 重庆富民银行股份有限公司 一种应用一键发布和回滚的方法
CN114895943A (zh) * 2022-05-30 2022-08-12 山东浪潮科学研究院有限公司 一种应用配置增量分发与自动升级的实现方法与装置
CN115297127A (zh) * 2022-07-26 2022-11-04 浪潮软件科技有限公司 一种解决异构多云统一调度及管理的方法及装置
WO2023093197A1 (zh) * 2021-11-24 2023-06-01 华为云计算技术有限公司 一种应用管理方法及相关系统
CN116774989A (zh) * 2023-08-23 2023-09-19 国网信息通信产业集团有限公司 一种软件构建发布装置的设计和实现方法、系统及终端
CN117435243A (zh) * 2023-12-14 2024-01-23 南京掌控网络科技有限公司 一种自动化合包及部署方法与系统
CN118012622A (zh) * 2024-02-29 2024-05-10 山东未来网络研究院(紫金山实验室工业互联网创新应用基地) 一种基于异构多云的资源编排方法、装置和介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130263209A1 (en) * 2012-03-30 2013-10-03 Cognizant Business Services Limited Apparatus and methods for managing applications in multi-cloud environments
CN109213478A (zh) * 2018-09-13 2019-01-15 国云科技股份有限公司 一种基于多云平台的自定义模板创建应用的方法
CN109358866A (zh) * 2018-08-09 2019-02-19 南京易捷思达软件科技有限公司 一种面向应用的多云管理系统

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130263209A1 (en) * 2012-03-30 2013-10-03 Cognizant Business Services Limited Apparatus and methods for managing applications in multi-cloud environments
CN109358866A (zh) * 2018-08-09 2019-02-19 南京易捷思达软件科技有限公司 一种面向应用的多云管理系统
CN109213478A (zh) * 2018-09-13 2019-01-15 国云科技股份有限公司 一种基于多云平台的自定义模板创建应用的方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
骞云科技: "骞云SmartCMP5.2正式发布!大幅度满足软件持续发布、部署和优化需求", 《HTTP://WWW.CLOUDCHEF.IO/H-ND-70.HTML》 *

Cited By (50)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113553065A (zh) * 2020-04-26 2021-10-26 腾讯科技(深圳)有限公司 一种代码文件发布方法及装置
CN112015560A (zh) * 2020-09-08 2020-12-01 财拓云计算(上海)有限公司 一种用于构建it基础设施的装置
CN112015560B (zh) * 2020-09-08 2023-12-26 财拓云计算(上海)有限公司 一种用于构建it基础设施的装置
CN112162958A (zh) * 2020-09-11 2021-01-01 北京浪潮数据技术有限公司 网络文件系统的挂载方法、装置及电子设备和存储介质
CN112162958B (zh) * 2020-09-11 2023-12-22 北京浪潮数据技术有限公司 网络文件系统的挂载方法、装置及电子设备和存储介质
CN112947949A (zh) * 2020-09-22 2021-06-11 深圳市明源云科技有限公司 应用程序安装方法、装置及电子设备
CN111897561A (zh) * 2020-09-29 2020-11-06 广州宸祺出行科技有限公司 一种通过云端进行灰度发布的方法和系统
CN112256461A (zh) * 2020-12-08 2021-01-22 万邑通商(北京)信息科技有限公司 一种基于多云环境的分布式消息系统及管理方法
CN112596784A (zh) * 2020-12-28 2021-04-02 青岛海尔科技有限公司 一种迭代版本部署方法及装置
CN112685179A (zh) * 2020-12-28 2021-04-20 跬云(上海)信息科技有限公司 一种基于云上成本的资源部署系统及方法
CN112596784B (zh) * 2020-12-28 2023-11-28 青岛海尔科技有限公司 一种迭代版本部署方法及装置
CN112597057B (zh) * 2021-01-04 2023-10-20 网易(杭州)网络有限公司 一种蓝图数据的差异化处理方法和装置
CN112597057A (zh) * 2021-01-04 2021-04-02 网易(杭州)网络有限公司 一种蓝图数据的差异化处理方法和装置
CN112612554A (zh) * 2021-01-20 2021-04-06 广东金赋科技股份有限公司 一种利用适配服务分析器来统一管理操控硬件模块的方法
CN112612554B (zh) * 2021-01-20 2023-12-19 广东金赋科技股份有限公司 一种利用适配服务分析器来统一管理操控硬件模块的方法
CN113064578A (zh) * 2021-03-17 2021-07-02 上海浦东发展银行股份有限公司 基于拖拽技术的应用编排方法、系统、设备及存储介质
CN113176943A (zh) * 2021-04-23 2021-07-27 中国工商银行股份有限公司 多环境一致性部署方法及装置
CN113176943B (zh) * 2021-04-23 2024-07-09 中国工商银行股份有限公司 多环境一致性部署方法及装置
CN113176892A (zh) * 2021-04-28 2021-07-27 中国工商银行股份有限公司 一种基于发布单元的标准化持续交付方法及系统
CN113176892B (zh) * 2021-04-28 2024-04-05 中国工商银行股份有限公司 一种基于发布单元的标准化持续交付方法及系统
CN113220431A (zh) * 2021-04-29 2021-08-06 西安易联趣网络科技有限责任公司 跨云的分布式数据任务调度方法、设备及存储介质
CN113220480A (zh) * 2021-04-29 2021-08-06 西安易联趣网络科技有限责任公司 分布式的数据任务跨云调度系统及方法
CN113220480B (zh) * 2021-04-29 2023-03-10 西安易联趣网络科技有限责任公司 分布式的数据任务跨云调度系统及方法
CN113220431B (zh) * 2021-04-29 2023-11-03 西安易联趣网络科技有限责任公司 跨云的分布式数据任务调度方法、设备及存储介质
CN113220283A (zh) * 2021-05-10 2021-08-06 国网陕西省电力公司信息通信公司 一种基于云编排的物联app开发系统
CN113220283B (zh) * 2021-05-10 2024-05-14 国网陕西省电力公司信息通信公司 一种基于云编排的物联app开发系统
CN113238764A (zh) * 2021-05-17 2021-08-10 西安点告网络科技有限公司 基于dag图的软件交付方法、系统、电子设备及可读存储介质
CN113312086A (zh) * 2021-06-10 2021-08-27 重庆小易智联智能技术有限公司 基于指令集的软件机器人系统及机器人运行方法
CN113553139A (zh) * 2021-07-28 2021-10-26 瑞幸咖啡信息技术(厦门)有限公司 容器云环境下的混合多云管理方法、系统、设备及介质
CN113626047B (zh) * 2021-08-27 2024-04-19 中国银行股份有限公司 Flume自动部署的系统及方法
CN113626047A (zh) * 2021-08-27 2021-11-09 中国银行股份有限公司 Flume自动部署的系统及方法
CN113672242B (zh) * 2021-09-03 2024-09-24 中国邮政储蓄银行股份有限公司 协同部署方法、装置、计算机可读存储介质与处理器
CN113672242A (zh) * 2021-09-03 2021-11-19 中国邮政储蓄银行股份有限公司 协同部署方法、装置、计算机可读存储介质与处理器
CN113900640A (zh) * 2021-09-24 2022-01-07 北京航天云路有限公司 一种可快速搭建多套运行环境的方法
CN114124951B (zh) * 2021-10-18 2024-04-26 浪潮通信信息系统有限公司 多云环境下构建行业云业务实例的方法及系统
CN114124951A (zh) * 2021-10-18 2022-03-01 浪潮通信信息系统有限公司 多云环境下构建行业云业务实例的方法及系统
CN114253531A (zh) * 2021-11-11 2022-03-29 广州云擎互动信息技术有限公司 一种微服务发布系统
WO2023093197A1 (zh) * 2021-11-24 2023-06-01 华为云计算技术有限公司 一种应用管理方法及相关系统
CN114265618A (zh) * 2021-11-30 2022-04-01 重庆富民银行股份有限公司 一种应用一键发布和回滚的方法
CN113986316A (zh) * 2021-12-27 2022-01-28 北京结慧科技有限公司 一种微服务的自动部署方法
WO2023165471A1 (zh) * 2022-03-01 2023-09-07 苏州浪潮智能科技有限公司 一种云平台应用部署方法、装置、电子设备及存储介质
CN114253557A (zh) * 2022-03-01 2022-03-29 苏州浪潮智能科技有限公司 一种云平台应用部署方法、装置、电子设备及存储介质
CN114895943A (zh) * 2022-05-30 2022-08-12 山东浪潮科学研究院有限公司 一种应用配置增量分发与自动升级的实现方法与装置
CN114895943B (zh) * 2022-05-30 2024-05-28 山东浪潮科学研究院有限公司 一种应用配置增量分发与自动升级的实现方法与装置
CN115297127A (zh) * 2022-07-26 2022-11-04 浪潮软件科技有限公司 一种解决异构多云统一调度及管理的方法及装置
CN115297127B (zh) * 2022-07-26 2023-07-18 浪潮软件科技有限公司 一种解决异构多云统一调度及管理的方法及装置
CN116774989A (zh) * 2023-08-23 2023-09-19 国网信息通信产业集团有限公司 一种软件构建发布装置的设计和实现方法、系统及终端
CN117435243B (zh) * 2023-12-14 2024-04-09 南京掌控网络科技有限公司 一种自动化合包及部署方法与系统
CN117435243A (zh) * 2023-12-14 2024-01-23 南京掌控网络科技有限公司 一种自动化合包及部署方法与系统
CN118012622A (zh) * 2024-02-29 2024-05-10 山东未来网络研究院(紫金山实验室工业互联网创新应用基地) 一种基于异构多云的资源编排方法、装置和介质

Similar Documents

Publication Publication Date Title
CN111580832A (zh) 应用于异构多云环境的应用发布系统及方法
US10572249B2 (en) Software kit release management
US9367305B1 (en) Automatic container definition
US8745585B2 (en) Meta-data for single development test environment
US8533676B2 (en) Single development test environment
US20180113799A1 (en) Model generation for model-based application testing
CN107704238B (zh) 一种对项目进行打包的方法及装置
US20060212857A1 (en) Automated process for generating a build of a software application without human intervention
US20130174124A1 (en) Version numbering in single development and test environment
US20140282421A1 (en) Distributed software validation
US9542173B2 (en) Dependency handling for software extensions
US20210182174A1 (en) System and method for application transformation to cloud based on semi-automated workflow
CN114489934A (zh) 一种基于容器的持续交付方法和装置
EP2503449A2 (en) Single development test environment
CN114115838A (zh) 一种基于分布式组件和云平台的数据交互方法及系统
US9760364B2 (en) Checks for software extensions
US9477447B1 (en) Semantic representations of software extensions
CN111666079A (zh) 软件升级的方法、装置、系统、设备和计算机可读介质
CN116774989A (zh) 一种软件构建发布装置的设计和实现方法、系统及终端
US12014195B2 (en) System for providing an adaptable plugin framework for application transformation to cloud
CN113110872B (zh) 一种Android自动化配置构建平台及操作方法
US11789712B2 (en) Data configuration deployment framework
EP2503450A2 (en) Version numbering in single development and test environment
CN115668133A (zh) 工业应用包管理
CN114968333A (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
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20200825