CN113176892B - 一种基于发布单元的标准化持续交付方法及系统 - Google Patents

一种基于发布单元的标准化持续交付方法及系统 Download PDF

Info

Publication number
CN113176892B
CN113176892B CN202110469446.9A CN202110469446A CN113176892B CN 113176892 B CN113176892 B CN 113176892B CN 202110469446 A CN202110469446 A CN 202110469446A CN 113176892 B CN113176892 B CN 113176892B
Authority
CN
China
Prior art keywords
application
release
delivered
continuous delivery
release unit
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
CN202110469446.9A
Other languages
English (en)
Other versions
CN113176892A (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.)
Industrial and Commercial Bank of China Ltd ICBC
Original Assignee
Industrial and Commercial Bank of China Ltd ICBC
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 Industrial and Commercial Bank of China Ltd ICBC filed Critical Industrial and Commercial Bank of China Ltd ICBC
Priority to CN202110469446.9A priority Critical patent/CN113176892B/zh
Publication of CN113176892A publication Critical patent/CN113176892A/zh
Application granted granted Critical
Publication of CN113176892B publication Critical patent/CN113176892B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management
    • 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)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Stored Programmes (AREA)

Abstract

本申请提供的一种基于发布单元的标准化持续交付方法及系统,可用于信息安全领域,本申请增加了一个面向持续交付的架构层级——发布单元,发布单元是版本构建、部署和发布的基本单元,各类应用面向持续交付的基本单元的种类是有限的,通过对发布单元的种类、构建部署规则、源码管理、流水线定义等进行标准化和规范化,将各巨石架构应用的复杂且差异化的构建部署过程转化为对标准化的发布单元组合的持续交付过程,使DEVOPS工具链建立在一定的标准上,提高了DevOps体系的可扩展性和可维护性,减少开发人员、配置管理员、运维人员等在持续交付阶段的投入,进一步提高需求和产品交付的速度,提高研发效能。

Description

一种基于发布单元的标准化持续交付方法及系统
技术领域
本申请涉及互联网金融技术领域,具体涉及一种基于发布单元的标准化持续交付方法及系统。
背景技术
随着DevOps(Development和Operations)理念的推广,很多企业内部开展了DevOps实践,一定程度上提升了版本构建、部署和交付的效率。但是在从传统的手工或半自动构建部署方式迁移到DevOps过程中,传统的巨石架构应用在代码库、构建部署规则、制品粒度等方面存在较大差异,一方面导致DevOps建设时需要考虑的场景复杂,影响工具链可维护性、可扩展性和安全性;另一方面各应用的构建部署过程没有统一标准,持续交付过程中,仍需要配置管理员、运维管理员等多种角色投入很大成本,制约着版本交付效率的进一步提升。在DevOps建设和实施过程中,如何进一步提高持续交付标准化、自动化程度,减少DevOps建设和推广压力,同时持续提升需求交付的效率,成为DevOps转型中的重大挑战。
发明内容
针对现有技术中的问题中的至少一个,本申请提供一种基于发布单元的标准化持续交付方法及系统,通过在应用架构层面,增加一个面向持续交付的架构层级——发布单元,发布单元是版本构建、部署和发布的基本单元,各类应用面向持续交付的基本单元的种类是有限的,通过对发布单元的种类、构建部署规则、源码管理、流水线定义等进行标准化和规范化,将各巨石架构应用的复杂且差异化的构建部署过程转化为对标准化的发布单元组合的持续交付过程,使DEVOPS工具链建立在一定的标准上,提高了DevOps体系的可扩展性和可维护性,减少开发人员、配置管理员、运维人员等在持续交付阶段的投入,进一步提高需求和产品交付的速度,提高研发效能。
为解决上述技术问题,本申请提供以下技术方案:
本申请提供一种基于发布单元的标准化持续交付方法,包括:
根据待交付应用提供多种发布单元,所述发布单元为构成所述待交付应用的最小模块;
根据所述发布单元的类型调用对应的构建服务,生成对应所述发布单元的版本包;
将所有所述版本包推送至制品库,以完成待交付应用的持续交付。
在优选的实施例中,还包括:
按照所述发布单元的类型维护该发布单元对应的源代码、应用配置以及部署用的启停备脚本。
在优选的实施例中,还包括:
根据所述发布单元使用的技术栈类型确定编译类型;
按照所述编译类型提供所述构建服务。
在优选的实施例中,所述编译类型包括:maven、C#以及mysql数据库。
在优选的实施例中,完成待交付应用的持续交付的步骤包括:
从所述制品库中获取对应待交付应用的所有所述版本包;
根据IP、版本包中的数据库实例、用户名,结合交互界面提供的部署用户名、密码信息,链接到目标服务器;
在所述目标服务器中按照install.sql脚本中的顺序,执行DB脚本。
本申请还提供一种基于发布单元的标准化持续交付装置,包括:
发布单元提供模块,根据待交付应用提供多种发布单元,所述发布单元为构成所述待交付应用的最小模块;
版本包生成模块,根据所述发布单元的类型调用对应的构建服务,生成对应所述发布单元的版本包;
推送模块,将所有所述版本包推送至制品库,以完成待交付应用的持续交付。
在优选的实施例中,还包括:
维护模块,按照所述发布单元的类型维护该发布单元对应的源代码、应用配置以及部署用的启停备脚本。
在优选的实施例中,还包括:
编译类型确定模块,根据所述发布单元使用的技术栈类型确定编译类型;
构建服务提供模块,按照所述编译类型提供所述构建服务。
在优选的实施例中,所述编译类型包括:maven、C#以及mysql数据库。
在优选的实施例中,完成待交付应用的持续交付的步骤包括:
从所述制品库中获取对应待交付应用的所有所述版本包;
根据IP、版本包中的数据库实例、用户名,结合交互界面提供的部署用户名、密码信息,链接到目标服务器;
在所述目标服务器中按照install.sql脚本中的顺序,执行DB脚本。
本申请还提供一种基于发布单元的标准化持续交付系统,包括:
标准化持续交付装置、制品库服务器以及目标服务器;其中,
所述标准化持续交付装置用于根据待交付应用提供多种发布单元,所述发布单元为构成所述待交付应用的最小模块;根据所述发布单元的类型调用对应的构建服务,生成对应所述发布单元的版本包;
所述制品库服务器用于接收并存储所有版本包;
所述目标服务器用于从所述制品库中获取对应待交付应用的所有所述版本包;根据IP、版本包中的数据库实例、用户名,结合交互界面提供的部署用户名、密码信息,链接到目标服务器;最后在所述目标服务器中按照install.sql脚本中的顺序,执行DB脚本。
本申请还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现所述的基于发布单元的标准化持续交付方法。
本申请还提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现所述的基于发布单元的标准化持续交付方法。
由上述技术方案可知,本申请提供的一种基于发布单元的标准化持续交付方法及系统,首先根据待交付应用提供多种发布单元,所述发布单元为构成所述待交付应用的最小模块;之后根据所述发布单元的类型调用对应的构建服务,生成对应所述发布单元的版本包;最后将所有所述版本包推送至制品库,以完成待交付应用的持续交付,可以看出,本申请在应用架构层面,增加一个面向持续交付的架构层级——发布单元,发布单元是版本构建、部署和发布的基本单元,各类应用面向持续交付的基本单元的种类是有限的,通过对发布单元的种类、构建部署规则、源码管理、流水线定义等进行标准化和规范化,将各巨石架构应用的复杂且差异化的构建部署过程转化为对标准化的发布单元组合的持续交付过程,使DEVOPS工具链建立在一定的标准上,提高了DevOps体系的可扩展性和可维护性,减少开发人员、配置管理员、运维人员等在持续交付阶段的投入,进一步提高需求和产品交付的速度,提高研发效能。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例中的基于发布单元的持续交付模型与基于应用的持续交付模型对比示意图。
图2是本申请实施例中基于发布单元的持续交付系统模块结构图。
图3是本申请实施例中的一场景的方法流程图。
图4是本申请实施例中的基于发布单元的标准化持续交付方法流程示意图。
图5是本申请实施例中的基于发布单元的标准化持续交付装置结构示意图。
图6是本申请实施例中的电子设备的结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整的描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
需要说明的是,本申请公开的一种基于发布单元的标准化持续交付方法及系统可用于信息安全技术领域,也可用于除信息安全技术领域之外的任意领域,本申请公开的一种基于发布单元的标准化持续交付方法及系统的应用领域不做限定。
考虑到传统的巨石架构应用在代码库、构建部署规则、制品粒度等方面存在较大差异,一方面导致DevOps建设时需要考虑的场景复杂,影响工具链可维护性、可扩展性和安全性;另一方面各应用的构建部署过程没有统一标准,持续交付过程中,仍需要配置管理员、运维管理员等多种角色投入很大成本,制约着版本交付效率的进一步提升。
基于上述内容,在DevOps建设和实施过程中,如何进一步提高持续交付标准化、自动化程度,减少DevOps建设和推广压力,同时持续提升需求交付的效率,成为DevOps转型中的重大挑战。本申请提供一种基于发布单元的标准化持续交付方法及系统,首先根据待交付应用提供多种发布单元,所述发布单元为构成所述待交付应用的最小模块;之后根据所述发布单元的类型调用对应的构建服务,生成对应所述发布单元的版本包;最后将所有所述版本包推送至制品库,以完成待交付应用的持续交付,可以看出,本申请在应用架构层面,增加一个面向持续交付的架构层级——发布单元,发布单元是版本构建、部署和发布的基本单元,各类应用面向持续交付的基本单元的种类是有限的,通过对发布单元的种类、构建部署规则、源码管理、流水线定义等进行标准化和规范化,将各巨石架构应用的复杂且差异化的构建部署过程转化为对标准化的发布单元组合的持续交付过程,使DEVOPS工具链建立在一定的标准上,提高了DevOps体系的可扩展性和可维护性,减少开发人员、配置管理员、运维人员等在持续交付阶段的投入,进一步提高需求和产品交付的速度,提高研发效能。
本申请首先提供执行基于发布单元的标准化持续交付方法的基于发布单元的标准化持续交付系统,如图1所示,该标准化持续交付系统包括标准化持续交付装置、制品库服务器以及目标服务器,目标服务器、标准化持续交付装置以及制品库服务器之间可以进行通信连接。
其中,所述标准化持续交付装置首先根据待交付应用提供多种发布单元,所述发布单元为构成所述待交付应用的最小模块;然后根据所述发布单元的类型调用对应的构建服务,生成对应所述发布单元的版本包;最后将所有所述版本包推送至制品库,以完成待交付应用的持续交付。
所述制品库服务器用于存放和管理构建完成的制品。
所述目标服务器为交付应用服务器,用于进行发布应用等。
上述的各服务器及装置具有通信模块(即通信单元),可以进行远程通信连接,实现相互之间的数据传输。例如,标准化持续交付装置可以通过通信单元可以将版本包发送至制品库。
上述服务器与所述各服务器及装置之间可以使用任何合适的网络协议进行通信,包括在本申请提交日尚未开发出的网络协议。所述网络协议例如可以包括TCP/IP协议、UDP/IP协议、HTTP协议、HTTPS协议等。当然,所述网络协议例如还可以包括在上述协议之上使用的RPC协议(Remote Procedure CallProtocol,远程过程调用协议)、REST协议(Representational State Transfer,表述性状态转移协议)等。
本申请提供的基于发布单元的标准化持续交付方法、装置、电子设备以及计算机可读存储介质,该标准化持续交付装置首先根据待交付应用提供多种发布单元,所述发布单元为构成所述待交付应用的最小模块;然后根据所述发布单元的类型调用对应的构建服务,生成对应所述发布单元的版本包;最后将所有所述版本包推送至制品库,以完成待交付应用的持续交付。
具体通过下述多个实施例及应用实例分别进行说明。
为了解决传统的巨石架构应用在代码库、构建部署规则、制品粒度等方面存在较大差异,一方面导致DevOps建设时需要考虑的场景复杂,影响工具链可维护性、可扩展性和安全性;另一方面各应用的构建部署过程没有统一标准,持续交付过程中,仍需要配置管理员、运维管理员等多种角色投入很大成本,制约着版本交付效率的进一步提升的问题,本申请提供一种基于发布单元的标准化持续交付方法的实施例,参见图4,具体包含有如下内容:
S101:根据待交付应用提供多种发布单元,所述发布单元为构成所述待交付应用的最小模块。
传统的基于应用的持续交付模型,按应用维度进行代码管理、构建和部署。因为各个应用间存在较大差异,各应用的代码库粒度、制品粒度不一致,各应用的构建过程和部署过程各不相同,系统无法提供统一的构建和部署服务,各应用需投入大量资源维护构建部署策略。见图1中“基于应用的持续交付模型”部分。
本发明增加一个面向持续交付的架构层级——发布单元,发布单元是版本构建、部署和发布的基本单元。面向持续交付过程,提取企业内构成应用的最小模块作为发布单元,对每类发布单元的代码管理、构建过程、制品管理和部署过程制定标准和规则,通过发布单元来统筹应用持续交付过程。如图1中“基于发布单元的持续交付模型”部分。
发布单元是版本构建、部署和发布的基本单元。面向持续交付过程,提取企业内构成应用的最小模块作为发布单元,对每类发布单元的代码管理、构建过程、制品管理和部署过程制定标准和规则,通过发布单元来统筹应用持续交付过程。
S102:根据所述发布单元的类型调用对应的构建服务,生成对应所述发布单元的版本包。
图1中的101所示为发布单元是源码管理、制品管理、构建和部署的基本单元,构成应用的基本的发布单元包括web、app、db、batch等,一个应用可以包含多个发布单元。
S103:将所有所述版本包推送至制品库,以完成待交付应用的持续交付。
由上述技术方案可知,本申请提供的一种基于发布单元的标准化持续交付方法,首先根据待交付应用提供多种发布单元,所述发布单元为构成所述待交付应用的最小模块;然后根据所述发布单元的类型调用对应的构建服务,生成对应所述发布单元的版本包;最后将所有所述版本包推送至制品库,以完成待交付应用的持续交付。可以看出,本申请在应用架构层面,增加一个面向持续交付的架构层级——发布单元,发布单元是版本构建、部署和发布的基本单元,各类应用面向持续交付的基本单元的种类是有限的,通过对发布单元的种类、构建部署规则、源码管理、流水线定义等进行标准化和规范化,将各巨石架构应用的复杂且差异化的构建部署过程转化为对标准化的发布单元组合的持续交付过程,使DEVOPS工具链建立在一定的标准上,提高了DevOps体系的可扩展性和可维护性,减少开发人员、配置管理员、运维人员等在持续交付阶段的投入,进一步提高需求和产品交付的速度,提高研发效能。
为了进一步维护和管理发布单元,为构建过程、部署过程自动化的落地打下基础,在本申请的一个或多个实施例中,还包括:按照所述发布单元的类型维护该发布单元对应的源代码、应用配置以及部署用的启停备脚本。
该实施例中,一个发布单元的程序在一个代码库中管理,一个代码库只能构建出一类发布单元制品。在代码库中按发布单元类型来管理和维护该发布单元的源代码、发布单元类型、应用配置、部署用的启停备脚本等,同时面向构建和部署对各类源代码和配置的目录结构进行规范,为构建过程、部署过程自动化的落地打下基础。
为了进一步说明本申请如何构建服务,在本申请的一个或多个实施例中,可以包括服务构建步骤,即还包括:
根据所述发布单元使用的技术栈类型确定编译类型;
按照所述编译类型提供所述构建服务。
103所示为发布单元的部署过程,按发布单元类型,为每类发布单元定制部署服务,通过“停服务器--备份--安装--启动服务器”的相同流程,在部署系统内实现软件包的自动部署。
用户指定需进行持续交付的发布单元的代码库、分支、发布单元类型、部署环境名称、部署用户名、密码等信息。
如图2所示,然后按照发布单元类型,为每类发布单元定制标准化的构建服务,在接收持续交付的发布单元的代码库、分支、发布单元类型、部署环境名称、部署用户名、密码等信息后,调用对应类型的标准化构建服务,完成构建打包过程,生成对应发布单元类型的目录结构符合部署要求的制品。
之后构建完成的制品存放在制品库M003中管理。然后在配置管理数据库M004中存放各个发布单元的部署服务器信息。
最后按照发布单元类型,为每类发布单元定制标准化的部署服务,从制品库获取构建完成的制品,根据部署环境,从配置管理数据库获取发布单元的目标服务器M005的IP地址等,链接到M005目标服务器,执行部署操作,记录部署结果和日志。
以DB类型发布单元为例,对一种基于发布单元的标准化的持续交付方法进行说明。
(1)DB类型的发布单元,其代码库目录结构如下所示:
DB构建服务,其构建过程为:从代码库指定分支下载代码,将DB目录下当前分支的内容整合到同一目录下,生成带有脚本执行顺序的引导脚本install.sql文件,install.sql
中指定DB脚本默认按照授权--DDL--DML–PROGRAM的顺序执行。
按照DB的制品规范生成版本包。源代码按代码规范存放后,根据源代码中的目录信息可以获取数据库类型、数据库实例名、用户名等信息。
DB类型发布单元的制品的结构:
此外,更进一步的,为了说明本申请的持续交付步骤,在本申请的一个或多个实施例中,完成待交付应用的持续交付的步骤包括:
从所述制品库中获取对应待交付应用的所有所述版本包;
根据IP、版本包中的数据库实例、用户名,结合交互界面提供的部署用户名、密码信息,链接到目标服务器;
在所述目标服务器中按照install.sql脚本中的顺序,执行DB脚本。
具体的,其部署过程为:
从制品库获取发布单元的版本包。
从配置管理数据库获取部署的目标服务器的IP。
将版本包传输到目标服务器并解压,根据IP、版本包中的数据库实例、用户名,结合交互界面提供的部署用户名、密码信息,链接到目标服务器,按照install.sql脚本中的顺序,执行DB脚本。
下面提供一种持续交付的具体场景,一种基于发布单元的标准化的持续交付方法,其具体实施方法和步骤如图3所示:
步骤S301:应用架构师联合应用运维人员,划分应用的发布单元,如APP、BATCH、DB、WEB等,创建代码库用于管理该发布单元的代码。
步骤S302:用户输入发布单元类型、代码库名、分支名、部署环境信息。
步骤S303:根据发布单元类型调用相应类型的构建服务,下载用户提供的代码库指定分支下的代码,通过标准的构建服务进行编译、打包,生成对应发布单元的版本包。
步骤S304:构建出的版本包被自动推送到制品库管理。
步骤S305:根据用户传入的部署环境名称,从配置管理数据库查找部署的目标服务器或PaaS集群信息。
步骤S306:调用发布单元相应类型的部署服务,按照标准化的部署流程,将版本包部署到目标服务器上。
由上述技术方案可知,本申请提供的一种基于发布单元的标准化持续交付方法,首先根据待交付应用提供多种发布单元,所述发布单元为构成所述待交付应用的最小模块;然后根据所述发布单元的类型调用对应的构建服务,生成对应所述发布单元的版本包;最后将所有所述版本包推送至制品库,以完成待交付应用的持续交付。可以看出,本申请在应用架构层面,增加一个面向持续交付的架构层级——发布单元,发布单元是版本构建、部署和发布的基本单元,各类应用面向持续交付的基本单元的种类是有限的,通过对发布单元的种类、构建部署规则、源码管理、流水线定义等进行标准化和规范化,将各巨石架构应用的复杂且差异化的构建部署过程转化为对标准化的发布单元组合的持续交付过程,使DEVOPS工具链建立在一定的标准上,提高了DevOps体系的可扩展性和可维护性,减少开发人员、配置管理员、运维人员等在持续交付阶段的投入,进一步提高需求和产品交付的速度,提高研发效能。
为了解决传统的巨石架构应用在代码库、构建部署规则、制品粒度等方面存在较大差异,一方面导致DevOps建设时需要考虑的场景复杂,影响工具链可维护性、可扩展性和安全性;另一方面各应用的构建部署过程没有统一标准,持续交付过程中,仍需要配置管理员、运维管理员等多种角色投入很大成本,制约着版本交付效率的进一步提升的问题,在本申请的一个或多个实施例中,本申请提供一种基于发布单元的标准化持续交付装置,如图5所示,包括:
发布单元提供模块11,根据待交付应用提供多种发布单元,所述发布单元为构成所述待交付应用的最小模块;
如图1中“基于发布单元的持续交付模型”部分。发布单元是版本构建、部署和发布的基本单元。面向持续交付过程,提取企业内构成应用的最小模块作为发布单元,对每类发布单元的代码管理、构建过程、制品管理和部署过程制定标准和规则,通过发布单元来统筹应用持续交付过程。
版本包生成模块12,根据所述发布单元的类型调用对应的构建服务,生成对应所述发布单元的版本包;
图1中的101所示为发布单元是源码管理、制品管理、构建和部署的基本单元,构成应用的基本的发布单元包括web、app、db、batch等,一个应用可以包含多个发布单元。
推送模块13,将所有所述版本包推送至制品库,以完成待交付应用的持续交付。
由上述技术方案可知,本申请提供的一种基于发布单元的标准化持续交付装置,首先根据待交付应用提供多种发布单元,所述发布单元为构成所述待交付应用的最小模块;然后根据所述发布单元的类型调用对应的构建服务,生成对应所述发布单元的版本包;最后将所有所述版本包推送至制品库,以完成待交付应用的持续交付。可以看出,本申请在应用架构层面,增加一个面向持续交付的架构层级——发布单元,发布单元是版本构建、部署和发布的基本单元,各类应用面向持续交付的基本单元的种类是有限的,通过对发布单元的种类、构建部署规则、源码管理、流水线定义等进行标准化和规范化,将各巨石架构应用的复杂且差异化的构建部署过程转化为对标准化的发布单元组合的持续交付过程,使DEVOPS工具链建立在一定的标准上,提高了DevOps体系的可扩展性和可维护性,减少开发人员、配置管理员、运维人员等在持续交付阶段的投入,进一步提高需求和产品交付的速度,提高研发效能。
为了进一步维护和管理发布单元,为构建过程、部署过程自动化的落地打下基础,在本申请的一个或多个实施例中,还包括:
维护模块,按照所述发布单元的类型维护该发布单元对应的源代码、应用配置以及部署用的启停备脚本。
该实施例中,一个发布单元的程序在一个代码库中管理,一个代码库只能构建出一类发布单元制品。在代码库中按发布单元类型来管理和维护该发布单元的源代码、发布单元类型、应用配置、部署用的启停备脚本等,同时面向构建和部署对各类源代码和配置的目录结构进行规范,为构建过程、部署过程自动化的落地打下基础。
为了进一步说明本申请如何构建服务,在本申请的一个或多个实施例中,还包括:
编译类型确定模块,根据所述发布单元使用的技术栈类型确定编译类型;
构建服务提供模块,按照所述编译类型提供所述构建服务。
103所示为发布单元的部署过程,按发布单元类型,为每类发布单元定制部署服务,通过“停服务器--备份--安装--启动服务器”的相同流程,在部署系统内实现软件包的自动部署。
用户指定需进行持续交付的发布单元的代码库、分支、发布单元类型、部署环境名称、部署用户名、密码等信息。
然后按照发布单元类型,为每类发布单元定制标准化的构建服务,在接收持续交付的发布单元的代码库、分支、发布单元类型、部署环境名称、部署用户名、密码等信息后,调用对应类型的标准化构建服务,完成构建打包过程,生成对应发布单元类型的目录结构符合部署要求的制品。
之后构建完成的制品存放在制品库中管理。然后在配置管理数据库中存放各个发布单元的部署服务器信息。
最后按照发布单元类型,为每类发布单元定制标准化的部署服务,从制品库获取构建完成的制品,根据部署环境,从配置管理数据库获取发布单元的目标服务器IP地址等,链接到M005目标服务器,执行部署操作,记录部署结果和日志。
以DB类型发布单元为例,对一种基于发布单元的标准化的持续交付方法进行说明。
(1)DB类型的发布单元,其代码库目录结构如下所示:
DB构建服务,其构建过程为:从代码库指定分支下载代码,将DB目录下当前分支的内容整合到同一目录下,生成带有脚本执行顺序的引导脚本install.sql文件,install.sql
中指定DB脚本默认按照授权--DDL--DML–PROGRAM的顺序执行。
按照DB的制品规范生成版本包。源代码按代码规范存放后,根据源代码中的目录信息可以获取数据库类型、数据库实例名、用户名等信息。
DB类型发布单元的制品的结构:
此外,更进一步的,为了说明本申请的持续交付步骤,在本申请的一个或多个实施例中,完成待交付应用的持续交付的步骤包括:
从所述制品库中获取对应待交付应用的所有所述版本包;
根据IP、版本包中的数据库实例、用户名,结合交互界面提供的部署用户名、密码信息,链接到目标服务器;
在所述目标服务器中按照install.sql脚本中的顺序,执行DB脚本。
具体的,其部署过程为:
从制品库获取发布单元的版本包。
从配置管理数据库获取部署的目标服务器的IP。
将版本包传输到目标服务器并解压,根据IP、版本包中的数据库实例、用户名,结合交互界面提供的部署用户名、密码信息,链接到目标服务器,按照install.sql脚本中的顺序,执行DB脚本。
由上述技术方案可知,本申请提供的基于发布单元的标准化持续交付装置,首先根据待交付应用提供多种发布单元,所述发布单元为构成所述待交付应用的最小模块;然后根据所述发布单元的类型调用对应的构建服务,生成对应所述发布单元的版本包;最后将所有所述版本包推送至制品库,以完成待交付应用的持续交付。可以看出,本申请在应用架构层面,增加一个面向持续交付的架构层级——发布单元,发布单元是版本构建、部署和发布的基本单元,各类应用面向持续交付的基本单元的种类是有限的,通过对发布单元的种类、构建部署规则、源码管理、流水线定义等进行标准化和规范化,将各巨石架构应用的复杂且差异化的构建部署过程转化为对标准化的发布单元组合的持续交付过程,使DEVOPS工具链建立在一定的标准上,提高了DevOps体系的可扩展性和可维护性,减少开发人员、配置管理员、运维人员等在持续交付阶段的投入,进一步提高需求和产品交付的速度,提高研发效能。
为了解决传统的巨石架构应用在代码库、构建部署规则、制品粒度等方面存在较大差异,一方面导致DevOps建设时需要考虑的场景复杂,影响工具链可维护性、可扩展性和安全性;另一方面各应用的构建部署过程没有统一标准,持续交付过程中,仍需要配置管理员、运维管理员等多种角色投入很大成本,制约着版本交付效率的进一步提升的问题,在本申请的一个或多个实施例中,本申请提供一种基于发布单元的标准化持续交付系统,包括:
标准化持续交付装置、制品库服务器以及目标服务器;其中,
所述标准化持续交付装置用于根据待交付应用提供多种发布单元,所述发布单元为构成所述待交付应用的最小模块;根据所述发布单元的类型调用对应的构建服务,生成对应所述发布单元的版本包;
所述制品库服务器用于接收并存储所有版本包;
所述目标服务器用于从所述制品库中获取对应待交付应用的所有所述版本包;根据IP、版本包中的数据库实例、用户名,结合交互界面提供的部署用户名、密码信息,链接到目标服务器;最后在所述目标服务器中按照install.sql脚本中的顺序,执行DB脚本。
由上述技术方案可知,本申请提供的一种基于发布单元的标准化持续交付系统,首先根据待交付应用提供多种发布单元,所述发布单元为构成所述待交付应用的最小模块;然后根据所述发布单元的类型调用对应的构建服务,生成对应所述发布单元的版本包;最后将所有所述版本包推送至制品库,以完成待交付应用的持续交付。可以看出,本申请在应用架构层面,增加一个面向持续交付的架构层级——发布单元,发布单元是版本构建、部署和发布的基本单元,各类应用面向持续交付的基本单元的种类是有限的,通过对发布单元的种类、构建部署规则、源码管理、流水线定义等进行标准化和规范化,将各巨石架构应用的复杂且差异化的构建部署过程转化为对标准化的发布单元组合的持续交付过程,使DEVOPS工具链建立在一定的标准上,提高了DevOps体系的可扩展性和可维护性,减少开发人员、配置管理员、运维人员等在持续交付阶段的投入,进一步提高需求和产品交付的速度,提高研发效能。
从硬件层面来说,为了解决传统的巨石架构应用在代码库、构建部署规则、制品粒度等方面存在较大差异,一方面导致DevOps建设时需要考虑的场景复杂,影响工具链可维护性、可扩展性和安全性;另一方面各应用的构建部署过程没有统一标准,持续交付过程中,仍需要配置管理员、运维管理员等多种角色投入很大成本,制约着版本交付效率的进一步提升的问题,本申请提供一种用于实现所述基于发布单元的标准化持续交付方法中的全部或部分内容的电子设备的实施例,所述电子设备具体包含有如下内容:
图6为本申请实施例的电子设备9600的装置构成的示意框图。如图6所示,该电子设备9600可以包括中央处理器9100和存储器9140;存储器9140耦合到中央处理器9100。值得注意的是,该图6是示例性的;还可以使用其他类型的结构,来补充或代替该结构,以实现电信功能或其他功能。
在一实施例中,基于发布单元的标准化持续交付功能可以被集成到中央处理器中。其中,中央处理器可以被配置为进行如下控制:
S101:根据待交付应用提供多种发布单元,所述发布单元为构成所述待交付应用的最小模块。
S102:根据所述发布单元的类型调用对应的构建服务,生成对应所述发布单元的版本包。
S103:将所有所述版本包推送至制品库,以完成待交付应用的持续交付。
由上述技术方案可知,本申请提供的一种电子设备,首先根据待交付应用提供多种发布单元,所述发布单元为构成所述待交付应用的最小模块;然后根据所述发布单元的类型调用对应的构建服务,生成对应所述发布单元的版本包;最后将所有所述版本包推送至制品库,以完成待交付应用的持续交付。可以看出,本申请在应用架构层面,增加一个面向持续交付的架构层级——发布单元,发布单元是版本构建、部署和发布的基本单元,各类应用面向持续交付的基本单元的种类是有限的,通过对发布单元的种类、构建部署规则、源码管理、流水线定义等进行标准化和规范化,将各巨石架构应用的复杂且差异化的构建部署过程转化为对标准化的发布单元组合的持续交付过程,使DEVOPS工具链建立在一定的标准上,提高了DevOps体系的可扩展性和可维护性,减少开发人员、配置管理员、运维人员等在持续交付阶段的投入,进一步提高需求和产品交付的速度,提高研发效能。
在另一个实施方式中,服务器可以与中央处理器9100分开配置,例如可以将服务器为与中央处理器9100连接的芯片,通过中央处理器的控制来实现基于发布单元的标准化持续交付功能。
如图6所示,该电子设备9600还可以包括:通信模块9110、输入单元9120、音频处理器9130、显示器9160、电源9170。值得注意的是,电子设备9600也并不是必须要包括图6中所示的所有部件;此外,电子设备9600还可以包括图6中没有示出的部件,可以参考现有技术。
如图6所示,中央处理器9100有时也称为控制器或操作控件,可以包括微处理器或其他处理器装置和/或逻辑装置,该中央处理器9100接收输入并控制电子设备9600的各个部件的操作。
其中,存储器9140,例如可以是缓存器、闪存、硬驱、可移动介质、易失性存储器、非易失性存储器或其它合适装置中的一种或更多种。可储存上述与失败有关的信息,此外还可存储执行有关信息的程序。并且中央处理器9100可执行该存储器9140存储的该程序,以实现信息存储或处理等。
输入单元9120向中央处理器9100提供输入。该输入单元9120例如为按键或触摸输入装置。电源9170用于向电子设备9600提供电力。显示器9160用于进行图像和文字等显示对象的显示。该显示器例如可为LCD显示器,但并不限于此。
该存储器9140可以是固态存储器,例如,只读存储器(ROM)、随机存取存储器(RAM)、SIM卡等。还可以是这样的存储器,其即使在断电时也保存信息,可被选择性地擦除且设有更多数据,该存储器的示例有时被称为EPROM等。存储器9140还可以是某种其它类型的装置。存储器9140包括缓冲存储器9141(有时被称为缓冲器)。存储器9140可以包括应用/功能存储部9142,该应用/功能存储部9142用于存储应用程序和功能程序或用于通过中央处理器9100执行电子设备9600的操作的流程。
存储器9140还可以包括数据存储部9143,该数据存储部9143用于存储数据,例如联系人、数字数据、图片、声音和/或任何其他由电子设备使用的数据。存储器9140的驱动程序存储部9144可以包括电子设备的用于通信功能和/或用于执行电子设备的其他功能(如消息传送应用、通讯录应用等)的各种驱动程序。
通信模块9110即为经由天线9111发送和接收信号的发送机/接收机9110。通信模块(发送机/接收机)9110耦合到中央处理器9100,以提供输入信号和接收输出信号,这可以和常规移动通信终端的情况相同。
基于不同的通信技术,在同一电子设备中,可以设置有多个通信模块9110,如蜂窝网络模块、蓝牙模块和/或无线局域网模块等。通信模块(发送机/接收机)9110还经由音频处理器9130耦合到扬声器9131和麦克风9132,以经由扬声器9131提供音频输出,并接收来自麦克风9132的音频输入,从而实现通常的电信功能。音频处理器9130可以包括任何合适的缓冲器、解码器、放大器等。另外,音频处理器9130还耦合到中央处理器9100,从而使得可以通过麦克风9132能够在本机上录音,且使得可以通过扬声器9131来播放本机上存储的声音。
本申请的实施例还提供能够实现上述实施例中的基于发布单元的标准化持续交付方法中全部步骤的一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述实施例中的执行主体为服务器或客户端的基于发布单元的标准化持续交付方法的全部步骤,例如,所述处理器执行所述计算机程序时实现下述步骤:
S101:根据待交付应用提供多种发布单元,所述发布单元为构成所述待交付应用的最小模块。
S102:根据所述发布单元的类型调用对应的构建服务,生成对应所述发布单元的版本包。
S103:将所有所述版本包推送至制品库,以完成待交付应用的持续交付。
由上述技术方案可知,本申请提供的计算机存储介质,首先根据待交付应用提供多种发布单元,所述发布单元为构成所述待交付应用的最小模块;然后根据所述发布单元的类型调用对应的构建服务,生成对应所述发布单元的版本包;最后将所有所述版本包推送至制品库,以完成待交付应用的持续交付。可以看出,本申请在应用架构层面,增加一个面向持续交付的架构层级——发布单元,发布单元是版本构建、部署和发布的基本单元,各类应用面向持续交付的基本单元的种类是有限的,通过对发布单元的种类、构建部署规则、源码管理、流水线定义等进行标准化和规范化,将各巨石架构应用的复杂且差异化的构建部署过程转化为对标准化的发布单元组合的持续交付过程,使DEVOPS工具链建立在一定的标准上,提高了DevOps体系的可扩展性和可维护性,减少开发人员、配置管理员、运维人员等在持续交付阶段的投入,进一步提高需求和产品交付的速度,提高研发效能。
本领域内的技术人员应明白,本发明的实施例可提供为方法、装置、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(装置)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
本发明中应用了具体实施例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

Claims (7)

1.一种基于发布单元的标准化持续交付方法,其特征在于,包括:
根据待交付应用提供多种发布单元,所述发布单元为构成所述待交付应用的最小模块;
根据所述发布单元的类型调用对应的构建服务,生成对应所述发布单元的版本包;
将所有所述版本包推送至制品库,以完成待交付应用的持续交付;
还包括:
根据所述发布单元使用的技术栈类型确定编译类型;
按照所述编译类型提供所述构建服务;
所述编译类型包括:maven、C#以及mysql数据库;
所述完成待交付应用的持续交付的步骤包括:
从所述制品库中获取对应待交付应用的所有所述版本包;
根据IP、版本包中的数据库实例、用户名,结合交互界面提供的部署用户名、密码信息,链接到目标服务器;
在所述目标服务器中按照install.sql脚本中的顺序,执行DB脚本。
2.根据权利要求1所述的基于发布单元的标准化持续交付方法,其特征在于,还包括:
按照所述发布单元的类型维护该发布单元对应的源代码、应用配置以及部署用的启停备脚本。
3.一种基于发布单元的标准化持续交付装置,其特征在于,包括:
发布单元提供模块,根据待交付应用提供多种发布单元,所述发布单元为构成所述待交付应用的最小模块;
版本包生成模块,根据所述发布单元的类型调用对应的构建服务,生成对应所述发布单元的版本包;
推送模块,将所有所述版本包推送至制品库,以完成待交付应用的持续交付;
还包括:
编译类型确定模块,根据所述发布单元使用的技术栈类型确定编译类型;
构建服务提供模块,按照所述编译类型提供所述构建服务;
所述编译类型包括:maven、C#以及mysql数据库;
所述完成待交付应用的持续交付的步骤包括:
从所述制品库中获取对应待交付应用的所有所述版本包;
根据IP、版本包中的数据库实例、用户名,结合交互界面提供的部署用户名、密码信息,链接到目标服务器;
在所述目标服务器中按照install.sql脚本中的顺序,执行DB脚本。
4.根据权利要求3所述的基于发布单元的标准化持续交付装置,其特征在于,还包括:
维护模块,按照所述发布单元的类型维护该发布单元对应的源代码、应用配置以及部署用的启停备脚本。
5.一种基于发布单元的标准化持续交付系统,其特征在于,包括:
标准化持续交付装置、制品库服务器以及目标服务器;其中,
所述标准化持续交付装置用于根据待交付应用提供多种发布单元,所述发布单元为构成所述待交付应用的最小模块;根据所述发布单元的类型调用对应的构建服务,生成对应所述发布单元的版本包;将所有所述版本包推送至制品库,以完成待交付应用的持续交付;
所述标准化持续交付装置还用于:根据所述发布单元使用的技术栈类型确定编译类型;按照所述编译类型提供所述构建服务;
所述编译类型包括:maven、C#以及mysql数据库;
所述完成待交付应用的持续交付的步骤包括:
从所述制品库中获取对应待交付应用的所有所述版本包;
所述制品库服务器用于接收并存储所有版本包;
所述目标服务器用于从所述制品库中获取对应待交付应用的所有所述版本包;根据IP、版本包中的数据库实例、用户名,结合交互界面提供的部署用户名、密码信息,链接到目标服务器;最后在所述目标服务器中按照install.sql脚本中的顺序,执行DB脚本。
6.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现权利要求1至2任一项所述的基于发布单元的标准化持续交付方法。
7.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现权利要求1至2任一项所述的基于发布单元的标准化持续交付方法。
CN202110469446.9A 2021-04-28 2021-04-28 一种基于发布单元的标准化持续交付方法及系统 Active CN113176892B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110469446.9A CN113176892B (zh) 2021-04-28 2021-04-28 一种基于发布单元的标准化持续交付方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110469446.9A CN113176892B (zh) 2021-04-28 2021-04-28 一种基于发布单元的标准化持续交付方法及系统

Publications (2)

Publication Number Publication Date
CN113176892A CN113176892A (zh) 2021-07-27
CN113176892B true CN113176892B (zh) 2024-04-05

Family

ID=76925674

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110469446.9A Active CN113176892B (zh) 2021-04-28 2021-04-28 一种基于发布单元的标准化持续交付方法及系统

Country Status (1)

Country Link
CN (1) CN113176892B (zh)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107621944A (zh) * 2017-09-22 2018-01-23 天翼电子商务有限公司 基于自动化运维的持续集成流水线系统及其方法
CN108241493A (zh) * 2018-01-09 2018-07-03 政采云有限公司 分布式软件系统的自动化持续集成与交付方法、装置和系统
CN111124469A (zh) * 2019-11-25 2020-05-08 江苏艾佳家居用品有限公司 一种基于Docker镜像元数据管理的持续发布系统
CN111580832A (zh) * 2020-04-29 2020-08-25 电科云(北京)科技有限公司 应用于异构多云环境的应用发布系统及方法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170372247A1 (en) * 2016-06-24 2017-12-28 Intuit Inc. Methods, systems, and articles of manufacture for implementing software application development and releases
US10656927B2 (en) * 2017-10-27 2020-05-19 Intuit Inc. Methods, systems, and computer program products for automating releases and deployment of a softawre application along the pipeline in continuous release and deployment of software application delivery models

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107621944A (zh) * 2017-09-22 2018-01-23 天翼电子商务有限公司 基于自动化运维的持续集成流水线系统及其方法
CN108241493A (zh) * 2018-01-09 2018-07-03 政采云有限公司 分布式软件系统的自动化持续集成与交付方法、装置和系统
CN111124469A (zh) * 2019-11-25 2020-05-08 江苏艾佳家居用品有限公司 一种基于Docker镜像元数据管理的持续发布系统
CN111580832A (zh) * 2020-04-29 2020-08-25 电科云(北京)科技有限公司 应用于异构多云环境的应用发布系统及方法

Also Published As

Publication number Publication date
CN113176892A (zh) 2021-07-27

Similar Documents

Publication Publication Date Title
CN109710236B (zh) 基于共享服务的业务开发和实现方法、装置、平台及介质
US10089083B2 (en) Service broker code generator
CN111459539B (zh) 基于镜像分层的持续集成流水线运行方法及装置
CN111352653B (zh) 基于PaaS云平台服务器的系统开发方法及服务器
CN112199105A (zh) 功能组合式软件开发的方法、系统、介质及电子设备
CN111796838B (zh) Mpp数据库自动部署方法及装置
CN110231945A (zh) 代码下载的方法、装置、电子设备及计算机存储介质
CN112905337B (zh) 软硬件混合部署的MySQL集群调度方法及装置
CN108897575A (zh) 电子设备的配置方法以及配置系统
CN113626002A (zh) 一种服务执行方法及装置
CN113034281A (zh) 基于区块链的业务数据处理方法、相关系统及节点
CN111367561B (zh) 软件程序远程开发方法及装置
CN113485952A (zh) 数据批量传输方法及装置
CN113176892B (zh) 一种基于发布单元的标准化持续交付方法及系统
CN111897565A (zh) 基于物联网的数据处理方法、装置和设备
CN113268272B (zh) 基于私有云的应用交付方法、装置及系统
CN113515447B (zh) 系统自动化测试方法及装置
CN115098082A (zh) 基于Jenkins插件的流水线脚本生成方法、系统、设备及介质
CN114489674A (zh) 动态数据模型的数据校验方法和装置
CN112559158A (zh) 微服务定时任务调度方法及装置
CN113377385A (zh) 客户端自动部署方法及装置
CN112099841A (zh) 一种生成配置文件的方法和系统
CN112418796A (zh) 子流程节点激活方法、装置、电子设备及存储介质
CN112396511A (zh) 分布式风控变量数据处理方法、装置及系统
CN113094270B (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
GR01 Patent grant
GR01 Patent grant