CN111666099A - 一种应用服务发布*** - Google Patents

一种应用服务发布*** Download PDF

Info

Publication number
CN111666099A
CN111666099A CN202010538241.7A CN202010538241A CN111666099A CN 111666099 A CN111666099 A CN 111666099A CN 202010538241 A CN202010538241 A CN 202010538241A CN 111666099 A CN111666099 A CN 111666099A
Authority
CN
China
Prior art keywords
application
source code
name
publishing
target
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.)
Granted
Application number
CN202010538241.7A
Other languages
English (en)
Other versions
CN111666099B (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.)
Nanjing Cloud Cabinet Network Technology Co ltd
Original Assignee
Jiangsu Cloudbox Network 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 Jiangsu Cloudbox Network Technology Co ltd filed Critical Jiangsu Cloudbox Network Technology Co ltd
Priority to CN202010538241.7A priority Critical patent/CN111666099B/zh
Publication of CN111666099A publication Critical patent/CN111666099A/zh
Application granted granted Critical
Publication of CN111666099B publication Critical patent/CN111666099B/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/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

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

本发明涉及应用服务技术领域,公开了一种应用服务发布***,即该***在负责从应用程序源代码开始打包、存档、指定版本应用发布包到指定服务器并启动应用服务的全过程中,一方面通过***标准化的应用发布包、应用配置、环境标识的规范及对应关系的梳理,可以做到配置更新可追溯,代码编译发版可归档和可指定,封版的代码无需反复编译;另一方面通过按照传参数的方式将应用服务器作为一个标准化节点,可根据所传值完成自动化发布流程,并使应用发布包与应用配置可完全分离,做到一次编译,即可根据配置灵活部署多个环境,打破了现有发布框架对后续业务的扩展和扩容所带来的限制,可以提升服务端***的变更和迭代效率,保证在线业务的稳定性。

Description

一种应用服务发布***
技术领域
本发明属于应用服务技术领域,具体地涉及一种应用服务发布***。
背景技术
随着快递业务的飞速发展,智能快递柜(也叫快递暂存柜)是随着快递业务不断发展而新生的事物。智能快递柜的功能主要是协助快递员收寄快递,面对的用户是广大的快递员和收件人。作为24小时无人值守的快递暂存柜,其通过物联卡与服务端交互,以及作为物联网技术在现代物流行业中的应用,智能快递柜是电子商务末端物流的最后一公里中最有效的解决方法,提高了快递员的派送效率,降低了派送成本,保障了用户的隐私和安全,逐步得到广泛认可和推广。
智能快递柜***作为快递终端的服务端,提供了用户认证、配置、调度、监控和操作日志等数据服务,需要稳定和便捷的发布***来完善服务的更新和新功能的上线。但是现有的发布框架主要都是基于git(其是一个开放源代码的现有版本控制软件,与svn的最大区别就是分布式的管理)或svn(即Subversion的简称,目前是Apache项目底下的一个开放源代码的现有版本控制***)等一些源码版本管理软件,通过持续集成工具Jenkins下载到本地打包后发布到服务器上,但是对于应用发布包(一般为jar包格式)的版本命名和不同环境配置的发布没有一个标准流程对应关系,为后续业务的扩展和扩容都带来了局限性,即限制了服务端***的变更和迭代效率,会影响在线业务的稳定性。
发明内容
为了解决现有发布框架会给后续业务的扩展和扩容带来局限性的问题,本发明目的在于提供一种标准化的且能够高度自动化的新型应用服务发布***,可以提升服务端***的变更和迭代效率,保证在线业务的稳定性。
本发明提供了一种应用服务发布***,包括源码版本管理服务器和通信连接所述源码版本管理服务器的编译归档发布一体机,其中,所述编译归档发布一体机包括有依次通信连接的源码编译模块、归档模块和发布模块;
所述源码版本管理服务器,用于以应用维度响应管理员的第一人机交互操作:创建代码库和环境配置库,其中,所述代码库用于存储待发布的应用程序源代码且以包含对应所述应用程序源代码的应用名和版本号的信息命名,所述环境配置库用于存储环境配置文件且以包含对应所述环境配置文件的环境标识和适用应用程序源代码的应用名的信息命名;
所述源码编译模块,用于根据应用名从所述源码版本管理服务器中拉取对应代码库中的应用程序源代码,然后通过软件项目管理综合工具Maven对拉取的应用程序源代码进行配置编译打包,得到标准化的应用发布包,其中,在所述配置编译打包的过程中,对所述应用发布包进行如下命名:使所述应用发布包的名称信息包含对应所述拉取的应用程序源代码的应用名和版本号;
所述归档模块,用于针对得到的应用发布包,根据对应名称信息中的应用名和版本号,将该应用发布包归档至目录名称信息包含该应用名和该版本号的存档目录下;
所述发布模块,用于执行如下三个步骤:
响应管理员的第二人机交互操作:启动预制的应用发布脚本,将管理员输入的目标应用名、目标版本号和目标环境标识传入所述应用发布脚本中,以便所述应用发布脚本根据所述目标应用名和所述目标环境标识从所述源码版本管理服务器的对应环境配置库中拉取目标环境配置文件,同时根据所述目标应用名和所述目标版本号从对应存档目录下拉取目标应用发布包;
根据所述目标应用名查找到对应的且预制的环境应用服务器对应列表文件,然后根据所述环境应用服务器对应列表文件中的应用服务器指定信息将所述目标应用发布包和所述目标环境配置文件同步至指定应用服务器的指定目录中,其中,所述环境应用服务器对应列表文件的文件名称信息包含所述目标应用名;
在同步完成后,远程执行应用服务器中预制的应用启动脚本,并将所述目标应用名传入所述应用启动脚本中,以便所述应用启动脚本根据所述目标应用名,使用所述目标应用发布包和所述目标环境配置文件分别覆盖对应的旧应用发布包和旧环境配置文件,然后启动对应的应用服务。
基于上述发明内容,提供了一种标准化的且能够高度自动化的新型应用服务发布***,即该***在负责从应用程序源代码开始打包、存档、指定版本应用发布包到指定服务器并启动应用服务的全过程中,一方面通过***标准化的应用发布包、应用配置、环境标识的规范及对应关系的梳理,可以做到配置更新可追溯,代码编译发版可归档和可指定,封版的代码无需反复编译;另一方面通过按照传参数(例如目标应用名、目标环境标识和目标版本号)的方式将应用服务器作为一个标准化节点,可根据所传值完成自动化发布流程,并使应用发布包与应用配置可完全分离,做到一次编译,即可根据配置灵活部署多个环境,打破了现有发布框架对后续业务的扩展和扩容所带来的限制,可以提升服务端***的变更和迭代效率,保证在线业务的稳定性。
在一个可能的设计中,所述源码版本管理服务器采用基于源码版本管理工具git或svn的服务器。
在一个可能的设计中,所述代码库采用相同的标准化结构,并在新创建后备份复制前一个版本的应用程序源代码。
在一个可能的设计中,所述源码编译模块采用持续集成工具Jenkins来拉取所述应用程序源代码。
在一个可能的设计中,所述源码编译模块根据预制的项目对象模型pom构建配置文件,对所述应用发布包进行命名,以及为所述应用发布包指定应用服务器在固定目录下创建的且名称信息包含拉取应用名的目录作为用于执行读取配置的目录,以及为所述应用发布包指定应用服务器在固定目录下创建的且名称信息包含所述拉取应用名的应用日志文件作为标准化的日志输出文件,其中,所述拉取应用名为对应所述拉取的应用程序源代码的应用名。
在一个可能的设计中,所述应用发布包的名称信息还包含被拉取的源码版本管理服务器的服务工具版本号。
在一个可能的设计中,所述归档模块根据预制的项目对象模型pom构建配置文件,对所述应用发布包进行归档。
在一个可能的设计中,所述发布模块在同步完成后,还远程执行应用服务器中预制的应用备份脚本,并将所述目标应用名传入所述应用备用脚本中,以便所述应用备份脚本根据所述目标应用名对所述目标应用发布包和所述目标环境配置文件进行分别备份。
在一个可能的设计中,所述发布模块在同步完成后,使用sshd服务来远程调用执行或远程批量调用执行应用服务器中预存的shell脚本,其中,所述shell脚本包含所述应用启动脚本。
在一个可能的设计中,所述应用服务器为虚拟机且数目为多个,并按照如下方式统一地创建用户目录、应用目录、配置目录、日志目录和bin目录:通过虚拟化管理平台Vcenter提供的模板功能,把一台已部署好的虚拟机转换为模板,然后以所述模板为镜像批量部署其它虚拟机。
本发明的有益效果是:
(1)本发明创造提供了一种标准化的且能够高度自动化的新型应用服务发布***,即该***在负责从应用程序源代码开始打包、存档、指定版本应用发布包到指定服务器并启动应用服务的全过程中,一方面通过***标准化的应用发布包、应用配置、环境标识的规范及对应关系的梳理,可以做到配置更新可追溯,代码编译发版可归档和可指定,封版的代码无需反复编译;另一方面通过按照传参数(例如目标应用名、目标环境标识和目标版本号)的方式将应用服务器作为一个标准化节点,可根据所传值完成自动化发布流程,并使应用发布包与应用配置可完全分离,做到一次编译,即可根据配置灵活部署多个环境,打破了现有发布框架对后续业务的扩展和扩容所带来的限制,可以提升服务端***的变更和迭代效率,保证在线业务的稳定性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明提供的应用服务发布***的网络拓扑结构示意图。
图2是本发明提供的应用服务发布***的工作原理结构示意图。
图3是本发明提供的在应用服务发布***中发布机的触发发布流程示意图。
具体实施方式
下面结合附图及具体实施例来对本发明作进一步阐述。在此需要说明的是,对于这些实施方式的说明虽然是用于帮助理解本发明,但并不构成对本发明的限定。本文公开的特定结构和功能细节仅用于描述本发明的示例实施例。然而,可用很多备选的形式来体现本发明,并且不应当理解为本发明限制在本文阐述的实施例中。
应当理解,尽管本文可能使用术语第一、第二等等来描述各种单元,但是这些单元不应当受到这些术语的限制。这些术语仅用于区分一个单元和另一个单元。例如可以将第一单元称作第二单元,并且类似地可以将第二单元称作第一单元,同时不脱离本发明的示例实施例的范围。
应当理解,对于本文中可能出现的术语“和/或”,其仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,单独存在B,同时存在A和B三种情况;对于本文中可能出现的术语“/和”,其是描述另一种关联对象关系,表示可以存在两种关系,例如,A/和B,可以表示:单独存在A,单独存在A和B两种情况;另外,对于本文中可能出现的字符“/”,一般表示前后关联对象是一种“或”关系。
应当理解,在本文中若将单元称作与另一个单元“连接”、“相连”或“耦合”时,它可以与另一个单元直相连接或耦合,或中间单元可以存在。相対地,在本文中若将单元称作与另一个单元“直接相连”或“直接耦合”时,表示不存在中间单元。另外,应当以类似方式来解释用于描述单元之间的关系的其他单词(例如,“在……之间”对“直接在……之间”,“相邻”对“直接相邻”等等)。
应当理解,本文使用的术语仅用于描述特定实施例,并不意在限制本发明的示例实施例。若本文所使用的,单数形式“一”、“一个”以及“该”意在包括复数形式,除非上下文明确指示相反意思。还应当理解,若术语“包括”、“包括了”、“包含”和/或“包含了”在本文中被使用时,指定所声明的特征、整数、步骤、操作、单元和/或组件的存在性,并且不排除一个或多个其他特征、数量、步骤、操作、单元、组件和/或他们的组合存在性或增加。
应当理解,还应当注意到在一些备选可能设计中,所出现的功能/动作可能与附图出现的顺序不同。例如,取决于所涉及的功能/动作,实际上可以实质上并发地执行,或者有时可以以相反的顺序来执行连续示出的两个图。
应当理解,在下面的描述中提供了特定的细节,以便于对示例实施例的完全理解。然而,本领域普通技术人员应当理解可以在没有这些特定细节的情况下实现示例实施例。例如可以在框图中示出***,以避免用不必要的细节来使得示例不清楚。在其他实例中,可以不以非必要的细节来示出众所周知的过程、结构和技术,以避免使得示例实施例不清楚。
实施例
如图1~3所示,本实施例提供的所述应用服务发布***,包括源码版本管理服务器和通信连接所述源码版本管理服务器的编译归档发布一体机,其中,所述编译归档发布一体机包括有依次通信连接的源码编译模块、归档模块和发布模块。
所述源码版本管理服务器,用于以应用维度响应管理员的第一人机交互操作:创建代码库和环境配置库,其中,所述代码库用于存储待发布的应用程序源代码且以包含对应所述应用程序源代码的应用名和版本号的信息命名,所述环境配置库用于存储环境配置文件且以包含对应所述环境配置文件的环境标识和适用应用程序源代码的应用名的信息命名。具体的,所述源码版本管理服务器可以但不限于采用基于源码版本管理工具git或svn等的服务器。以基于源码版本管理工具svn为例,可以通过svn的版本管理技术,以应用维度创建两类库:一是所述代码库,二是所述环境配置库,其中,在创建所述代码库时,可按照{应用名}+{版本号}的形式命名,如此所述代码库的网络地址将会为{svn地址}/{应用名}+{版本号},可方便在后续拉取编译时区分不同版本的代码库;而在创建所述环境配置库时,可按照{环境标识}+{应用名}的形式命名,如此所述环境配置库的网络地址将会为{svn地址}/{环境标识}+{应用名},可方便在后续拉取发布时直接拉取指定目标环境的环境配置文件。所述第一人机交互操作可由管理员在所持有的终端设备(例如运行svn客户端程序的计算机设备)上操作产生,所述应用程序源代码和所述环境配置文件可分别由管理员或编程人员通过所述终端设备上传至所述源码版本管理服务器,并可以在线编辑。此外,为了在源码侧实现标准化和方便进行源码修改对照,所有的所述代码库可采用相同的标准化结构,并在新创建后备份复制前一个版本的应用程序源代码。
所述源码编译模块,用于根据应用名从所述源码版本管理服务器中拉取对应代码库中的应用程序源代码,然后通过软件项目管理综合工具Maven对拉取的应用程序源代码进行配置编译打包,得到标准化的应用发布包,其中,在所述配置编译打包的过程中,对所述应用发布包进行如下命名:使所述应用发布包的名称信息包含对应所述拉取的应用程序源代码的应用名和版本号。具体的,所述源码编译模块可以但不限于采用持续集成工具Jenkins(一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能)来拉取所述应用程序源代码,即通过Jenkins技术的任务Job构建和执行,来根据应用名从所述源码版本管理服务器中拉取对应代码库中的应用程序源代码。所述软件项目管理综合工具Maven(一种基于项目对象模型POM,可以通过一小段描述信息来管理项目的构建,报告和文档的软件项目管理工具)为现有常用的配置编译打包工具,确保能够得到标准化的应用发布包(例如图2中的标准化jar包)。举例的,可按照{应用名}+{版本号}的形式命名所述应用发布包。
具体的,在所述配置编译打包的过程中,所述源码编译模块根据预制的项目对象模型pom构建配置文件,对所述应用发布包进行命名,以及为所述应用发布包指定应用服务器在固定目录下创建的且名称信息包含拉取应用名的目录作为用于执行读取配置的目录,以及为所述应用发布包指定应用服务器在固定目录下创建的且名称信息包含所述拉取应用名的应用日志文件作为标准化的日志输出文件,其中,所述拉取应用名为对应所述拉取的应用程序源代码的应用名。所述项目对象模型pom构建配置文件为现有Maven技术的基础,可以指定该文件进行如下对象的管理:源代码、配置文件、开发者的信息及角色、问题追踪***、组织信息、项目授权、项目的统一资源定位符(Uniform Resource Locator,URL)、项目的依赖关系等等,一般以pom.xml的形式存在。由此可以根据所述项目对象模型pom构建配置文件,创建{应用名}/conf的形式命名所述目录,创建{应用名}/{应用名}.log文件作为所述日志输出文件。进而可以将所述应用发布包与应用配置完全分离,从而在后续不同环境下发布时,可为读取不同环境配置文件做准备。
优化的,所述应用发布包的名称信息还可包含被拉取的源码版本管理服务器的服务工具版本号,例如当所述源码版本管理服务器采用基于源码版本管理工具svn的服务器时,可按照{应用名}+{版本号}+{对应代码库的svn版本号}的形式命名所述应用发布包,如此可针对svn版本的不可冲突性,利用小版本号标记所述应用发布包的版本号。
所述归档模块,用于针对得到的应用发布包,根据对应名称信息中的应用名和版本号,将该应用发布包归档至目录名称信息包含该应用名和该版本号的存档目录下。具体的,所述归档模块根据预制的项目对象模型pom构建配置文件,对所述应用发布包进行归档。通过前述应用发布包的归档操作,可使相同名称的应用发布包被覆盖,而新版本的应用发布包被创建,这样后续可以按照指定的{应用名}+{版本号}/{应用名}+{版本号}+{对应代码库的svn版本号}来发布jar包(即作为应用发布包),同时由于经过测试封版后的归档jar包无需反复编译,可避免导致在jar包编译中出现不一致的问题,即只要svn代码没有更新,所产生的jar包就会保持一致。
所述发布模块,用于在做好一切部署准备的情况下且梳理好应用发布包、应用配置和应用服务器(即作为应用服务端,其数目一般有多个)的对应关系后,可以但不限于执行如下三个步骤S101~S103所述的触发发布流程,如图3所示。
S101.响应管理员的第二人机交互操作:启动预制的应用发布脚本,将管理员输入的目标应用名、目标版本号和目标环境标识传入所述应用发布脚本中,以便所述应用发布脚本根据所述目标应用名和所述目标环境标识从所述源码版本管理服务器的对应环境配置库中拉取目标环境配置文件,同时根据所述目标应用名和所述目标版本号从对应存档目录下拉取目标应用发布包。
在所述步骤S101中,所述第二人机交互操作也可由管理员在所持有的终端设备上操作产生,所述目标应用名、所述目标版本号和所述目标环境标识即为在操作中由管理员输入的指定信息,以便指定应用服务和应用配置。所述应用发布脚本可以采用shell脚本(其是在linux的shell中运行,所以称为shell脚本;shell脚本就是一些命令的集合;shell脚本能很方便地管理服务器,可以指定一个任务计划,定时去执行某个shell脚本以满足需求;在正式编写shell脚本之前,建议将所有自定义的脚本放到/usr/local/sbin/目录下,一是可以更好地管理文档,二是方便后面的维护)的形式,并针对目标环境配置文件和目标应用发布包的拉取,分别预制一个对应的shell脚本。此外,如果所述应用发布包的名称信息还包含服务工具版本号,则还需要向所述应用发布脚本传入管理员输入的目标服务工具版本号,以便所述应用发布脚本根据所述目标应用名和所述目标版本号从对应存档目录下拉取目标应用发布包。
S102.根据所述目标应用名查找到对应的且预制的环境应用服务器对应列表文件,然后根据所述环境应用服务器对应列表文件中的应用服务器指定信息将所述目标应用发布包和所述目标环境配置文件同步至指定应用服务器的指定目录中,其中,所述环境应用服务器对应列表文件的文件名称信息包含所述目标应用名。
在所述步骤S102中,所述环境应用服务器对应列表文件可以在所述步骤S101之前或即时地由管理员通过第三人机交互操作创建产生,例如创建{应用名}.ini文件作为所述环境应用服务器对应列表文件。在所述应用服务器指定信息中会指定针对应用名的应用服务器,以便将匹配的应用发布包和环境配置文件同步至指定的应用服务器。
在所述步骤S102中,所述应用服务器用于作为应用服务端,在启动应用服务后向消费者提供相应的服务,其需要提前与所述编译归档发布一体机建立通信连接关系。具体的,所述应用服务器为虚拟机且数目为多个,并按照如下方式统一地创建用户目录、应用目录、配置目录、日志目录和bin目录:通过虚拟化管理平台Vcenter提供的模板功能,把一台已部署好的虚拟机转换为模板,然后以所述模板为镜像批量部署其它虚拟机。所述用户目录、所述应用目录、所述配置目录、所述日志目录和所述bin目录均为现有应用服务常用的文件目录,其中,所述用户目录可以但不限于用于存放用户身份、角色和/或权限等信息文本;所述应用目录可以但不限于用于存放所述应用发布包等;所述配置目录可以但不限于用于存放所述环境配置文件等;所述日志目录可以但不限于用于存放在应用服务过程中所产生的应用日志文件;所述bin目录可以但不限于用于存放预制的应用启动脚本和/或应用备份脚本等。所述虚拟化管理平台Vcenter为现有常用的模板机制作和克隆平台,如此可快速得到如图2所示的多台模板化的标准化应用服务器,进而使应用服务器能够作为标准化的发布基础,视为一致的部署节点(即具有统一的应用用户、应用目录和应用权限等)。同时每台应用服务器的性能配置和***参数也可都相同,如此可以排除不同***参数对应用服务的运行影响。此外,所述应用启动脚本用于在执行时根据{应用名}来启动本地对应的应用发布包(例如jar包),实现应用服务的启动,其也可以采用shell脚本的形式;所述应用备份脚本用于在执行时根据{应用名}来对应用发布包进行本地备份,其也可以采用shell脚本的形式;当然所述应用备份脚本的命令集合也可合并在所述应用启动脚本中,形成一个脚本。
S103.在同步完成后,远程执行应用服务器中预制的应用启动脚本,并将所述目标应用名传入所述应用启动脚本中,以便所述应用启动脚本根据所述目标应用名,使用所述目标应用发布包和所述目标环境配置文件分别覆盖对应的旧应用发布包和旧环境配置文件,然后启动对应的应用服务。
在所述步骤S103中,可在覆盖前先停止对应的应用服务。另外,当应用服务器的bin目录下还存放有预制的应用备份脚本时,所述发布模块在同步完成后,还远程执行应用服务器中预制的应用备份脚本,并将所述目标应用名传入所述应用备用脚本中,以便所述应用备份脚本根据所述目标应用名对所述目标应用发布包和所述目标环境配置文件进行分别备份。
在所述步骤S103中,优化的,所述应用服务器为虚拟机且数目为多个,并按照如下方式统一地创建用户目录、应用目录、配置目录、日志目录和bin目录:通过虚拟化管理平台Vcenter提供的模板功能,把一台已部署好的虚拟机转换为模板,然后以所述模板为镜像批量部署其它虚拟机。所述sshd(secure shell)服务是指使用现有ssh协议远程开启其他主机shell的服务,由此当批量调用时,可以远程同步地在多个应用服务器中进行备份和/或启动应用服务。
综上,本实施例所提供的应用服务发布***,具有如下有益效果:
(1)本实施例提供了一种标准化的且能够高度自动化的新型应用服务发布***,即该***在负责从应用程序源代码开始打包、存档、指定版本应用发布包到指定服务器并启动应用服务的全过程中,一方面通过***标准化的应用发布包、应用配置、环境标识的规范及对应关系的梳理,可以做到配置更新可追溯,代码编译发版可归档和可指定,封版的代码无需反复编译;另一方面通过按照传参数(例如目标应用名、目标环境标识和目标版本号)的方式将应用服务器作为一个标准化节点,可根据所传值完成自动化发布流程,并使应用发布包与应用配置可完全分离,做到一次编译,即可根据配置灵活部署多个环境,打破了现有发布框架对后续业务的扩展和扩容所带来的限制,可以提升服务端***的变更和迭代效率,保证在线业务的稳定性。
以上所描述的实施例仅仅是示意性的,若涉及到作为分离部件说明的单元,其可以是或者也可以不是物理上分开的;若涉及到作为单元显示的部件,其可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换。而这些修改或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的精神和范围。
最后应说明的是,本发明不局限于上述可选的实施方式,任何人在本发明的启示下都可得出其他各种形式的产品。上述具体实施方式不应理解成对本发明的保护范围的限制,本发明的保护范围应当以权利要求书中界定的为准,并且说明书可以用于解释权利要求书。

Claims (10)

1.一种应用服务发布***,其特征在于,包括源码版本管理服务器和通信连接所述源码版本管理服务器的编译归档发布一体机,其中,所述编译归档发布一体机包括有依次通信连接的源码编译模块、归档模块和发布模块;
所述源码版本管理服务器,用于以应用维度响应管理员的第一人机交互操作:创建代码库和环境配置库,其中,所述代码库用于存储待发布的应用程序源代码且以包含对应所述应用程序源代码的应用名和版本号的信息命名,所述环境配置库用于存储环境配置文件且以包含对应所述环境配置文件的环境标识和适用应用程序源代码的应用名的信息命名;
所述源码编译模块,用于根据应用名从所述源码版本管理服务器中拉取对应代码库中的应用程序源代码,然后通过软件项目管理综合工具Maven对拉取的应用程序源代码进行配置编译打包,得到标准化的应用发布包,其中,在所述配置编译打包的过程中,对所述应用发布包进行如下命名:使所述应用发布包的名称信息包含对应所述拉取的应用程序源代码的应用名和版本号;
所述归档模块,用于针对得到的应用发布包,根据对应名称信息中的应用名和版本号,将该应用发布包归档至目录名称信息包含该应用名和该版本号的存档目录下;
所述发布模块,用于执行如下三个步骤:
响应管理员的第二人机交互操作:启动预制的应用发布脚本,将管理员输入的目标应用名、目标版本号和目标环境标识传入所述应用发布脚本中,以便所述应用发布脚本根据所述目标应用名和所述目标环境标识从所述源码版本管理服务器的对应环境配置库中拉取目标环境配置文件,同时根据所述目标应用名和所述目标版本号从对应存档目录下拉取目标应用发布包;
根据所述目标应用名查找到对应的且预制的环境应用服务器对应列表文件,然后根据所述环境应用服务器对应列表文件中的应用服务器指定信息将所述目标应用发布包和所述目标环境配置文件同步至指定应用服务器的指定目录中,其中,所述环境应用服务器对应列表文件的文件名称信息包含所述目标应用名;
在同步完成后,远程执行应用服务器中预制的应用启动脚本,并将所述目标应用名传入所述应用启动脚本中,以便所述应用启动脚本根据所述目标应用名,使用所述目标应用发布包和所述目标环境配置文件分别覆盖对应的旧应用发布包和旧环境配置文件,然后启动对应的应用服务。
2.如权利要求1所述的一种应用服务发布***,其特征在于,所述源码版本管理服务器采用基于源码版本管理工具git或svn的服务器。
3.如权利要求1所述的一种应用服务发布***,其特征在于,所述代码库采用相同的标准化结构,并在新创建后备份复制前一个版本的应用程序源代码。
4.如权利要求1所述的一种应用服务发布***,其特征在于,所述源码编译模块采用持续集成工具Jenkins来拉取所述应用程序源代码。
5.如权利要求1所述的一种应用服务发布***,其特征在于,所述源码编译模块根据预制的项目对象模型pom构建配置文件,对所述应用发布包进行命名,以及为所述应用发布包指定应用服务器在固定目录下创建的且名称信息包含拉取应用名的目录作为用于执行读取配置的目录,以及为所述应用发布包指定应用服务器在固定目录下创建的且名称信息包含所述拉取应用名的应用日志文件作为标准化的日志输出文件,其中,所述拉取应用名为对应所述拉取的应用程序源代码的应用名。
6.如权利要求1所述的一种应用服务发布***,其特征在于,所述应用发布包的名称信息还包含被拉取的源码版本管理服务器的服务工具版本号。
7.如权利要求1所述的一种应用服务发布***,其特征在于,所述归档模块根据预制的项目对象模型pom构建配置文件,对所述应用发布包进行归档。
8.如权利要求1所述的一种应用服务发布***,其特征在于,所述发布模块在同步完成后,还远程执行应用服务器中预制的应用备份脚本,并将所述目标应用名传入所述应用备用脚本中,以便所述应用备份脚本根据所述目标应用名对所述目标应用发布包和所述目标环境配置文件进行分别备份。
9.如权利要求1所述的一种应用服务发布***,其特征在于,所述发布模块在同步完成后,使用sshd服务来远程调用执行或远程批量调用执行应用服务器中预存的shell脚本,其中,所述shell脚本包含所述应用启动脚本。
10.如权利要求1所述的一种应用服务发布***,其特征在于,所述应用服务器为虚拟机且数目为多个,并按照如下方式统一地创建用户目录、应用目录、配置目录、日志目录和bin目录:通过虚拟化管理平台Vcenter提供的模板功能,把一台已部署好的虚拟机转换为模板,然后以所述模板为镜像批量部署其它虚拟机。
CN202010538241.7A 2020-06-12 2020-06-12 一种应用服务发布*** Active CN111666099B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010538241.7A CN111666099B (zh) 2020-06-12 2020-06-12 一种应用服务发布***

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010538241.7A CN111666099B (zh) 2020-06-12 2020-06-12 一种应用服务发布***

Publications (2)

Publication Number Publication Date
CN111666099A true CN111666099A (zh) 2020-09-15
CN111666099B CN111666099B (zh) 2023-10-10

Family

ID=72387432

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010538241.7A Active CN111666099B (zh) 2020-06-12 2020-06-12 一种应用服务发布***

Country Status (1)

Country Link
CN (1) CN111666099B (zh)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112131544A (zh) * 2020-09-27 2020-12-25 江苏云柜网络技术有限公司 一种跳板机用户管理的shell脚本方法
CN112379916A (zh) * 2020-11-12 2021-02-19 中国人寿保险股份有限公司 一种maven工程的版本号的修改方法及装置
CN112463256A (zh) * 2020-12-11 2021-03-09 微医云(杭州)控股有限公司 确定配置文件的方法、***、电子设备及存储介质
CN112596787A (zh) * 2020-11-20 2021-04-02 深圳市世强元件网络有限公司 一种应用程序在不同环境自适应发布***及方法
CN112698839A (zh) * 2020-12-30 2021-04-23 深圳前海微众银行股份有限公司 数据中心节点部署方法、装置、***及计算机存储介质
CN112882747A (zh) * 2021-01-29 2021-06-01 北京思特奇信息技术股份有限公司 一种界面化发布程序的方法及***
CN114610327A (zh) * 2022-02-15 2022-06-10 北京结慧科技有限公司 一种自动化发布和部署方法、装置、介质及计算机设备

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106815052A (zh) * 2017-01-10 2017-06-09 南威软件股份有限公司 一种适配多环境配置的快速部署***的方法
CN109725910A (zh) * 2018-09-12 2019-05-07 网联清算有限公司 应用程序的标准化发布方法、发布装置和发布***
CN110109680A (zh) * 2019-05-14 2019-08-09 重庆商勤科技有限公司 应用部署方法、装置及应用发布方法、服务器、存储介质

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106815052A (zh) * 2017-01-10 2017-06-09 南威软件股份有限公司 一种适配多环境配置的快速部署***的方法
CN109725910A (zh) * 2018-09-12 2019-05-07 网联清算有限公司 应用程序的标准化发布方法、发布装置和发布***
CN110109680A (zh) * 2019-05-14 2019-08-09 重庆商勤科技有限公司 应用部署方法、装置及应用发布方法、服务器、存储介质

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112131544A (zh) * 2020-09-27 2020-12-25 江苏云柜网络技术有限公司 一种跳板机用户管理的shell脚本方法
CN112131544B (zh) * 2020-09-27 2024-03-15 南京云柜网络科技有限公司 一种跳板机用户管理的shell脚本方法
CN112379916A (zh) * 2020-11-12 2021-02-19 中国人寿保险股份有限公司 一种maven工程的版本号的修改方法及装置
EP4002110A1 (en) * 2020-11-20 2022-05-25 Shenzhen Sekorm Component Network Co., Ltd System and method for adaptive release of application program in different environments
CN112596787A (zh) * 2020-11-20 2021-04-02 深圳市世强元件网络有限公司 一种应用程序在不同环境自适应发布***及方法
JP2022082460A (ja) * 2020-11-20 2022-06-01 深▲ゼン▼市世強元件網絡有限公司 アプリケーションプログラムの環境別自己適応リリースシステム及び方法
CN112463256A (zh) * 2020-12-11 2021-03-09 微医云(杭州)控股有限公司 确定配置文件的方法、***、电子设备及存储介质
CN112698839A (zh) * 2020-12-30 2021-04-23 深圳前海微众银行股份有限公司 数据中心节点部署方法、装置、***及计算机存储介质
CN112698839B (zh) * 2020-12-30 2024-04-12 深圳前海微众银行股份有限公司 数据中心节点部署方法、装置、***及计算机存储介质
CN112882747A (zh) * 2021-01-29 2021-06-01 北京思特奇信息技术股份有限公司 一种界面化发布程序的方法及***
CN112882747B (zh) * 2021-01-29 2024-04-05 北京思特奇信息技术股份有限公司 一种界面化发布程序的方法及***
CN114610327A (zh) * 2022-02-15 2022-06-10 北京结慧科技有限公司 一种自动化发布和部署方法、装置、介质及计算机设备
CN114610327B (zh) * 2022-02-15 2023-02-17 北京结慧科技有限公司 一种自动化发布和部署方法、装置、介质及计算机设备

Also Published As

Publication number Publication date
CN111666099B (zh) 2023-10-10

Similar Documents

Publication Publication Date Title
CN111666099A (zh) 一种应用服务发布***
CN110572436B (zh) 多地跨集群的服务器部署方法及***
CN111399865A (zh) 一种基于容器技术自动构建目标文件的方法
US20040060035A1 (en) Automated method and system for building, deploying and installing software resources across multiple computer systems
CN108897547B (zh) 一种软件自动化部署方法及装置
CN102402446A (zh) 应用软件的安装方法和应用软件的安装装置
CN106681956A (zh) 一种大规模计算机集群的操作方法及装置
WO2016000126A1 (zh) 一种自动化部署方法和终端
CN113434158B (zh) 一种大数据组件的自定义管理方法、装置、设备及介质
CN109683905A (zh) 一种***自动发布方法
CN105468427A (zh) 一种自动编译和发布的实现方法及***
CN111930466A (zh) 一种基于Kubernetes的数据同步环境部署方法和装置
CN111984261A (zh) 编译方法与编译***
CN111857801A (zh) 一种移动应用的构建方法
CN111367804B (zh) 基于云计算及网络编程实现前端协作调试的方法
CN112363731A (zh) 一种应用自动化部署方法、装置和计算机可读存储介质
CN111949276B (zh) 一种基于容器方式自动部署应用程序的***及方法
CN110795105A (zh) 一种配电自动化主站***自动编译部署方法与***
CN117931214A (zh) 离线环境下的应用部署方法及装置、电子设备和存储介质
CN110647349B (zh) 一种实现iOS APP持续交付的方法
Sethi et al. Rapid deployment of SOA solutions via automated image replication and reconfiguration
CN103530151A (zh) 一种可切换业务软件***的Linux操作***定制方法
CN114356348A (zh) 一种运行引擎***及其应用
CN113360143A (zh) 远程软件开发方法、装置、存储介质及处理器
CN113672334A (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
TA01 Transfer of patent application right

Effective date of registration: 20210521

Address after: 210000 Room 301, 3rd floor, 138 Fengtai South Road, Yuhuatai District, Nanjing City, Jiangsu Province

Applicant after: Nanjing cloud cabinet Network Technology Co.,Ltd.

Address before: Room 1802, building 1, 222 Changhong Road, Yuhuatai District, Nanjing City, Jiangsu Province, 210000

Applicant before: JIANGSU CLOUDBOX NETWORK TECHNOLOGY Co.,Ltd.

TA01 Transfer of patent application right
GR01 Patent grant
GR01 Patent grant