CN113791862A - 国产CPU和OS环境中基于Docker的java应用瘦身部署方法及系统 - Google Patents

国产CPU和OS环境中基于Docker的java应用瘦身部署方法及系统 Download PDF

Info

Publication number
CN113791862A
CN113791862A CN202110908563.0A CN202110908563A CN113791862A CN 113791862 A CN113791862 A CN 113791862A CN 202110908563 A CN202110908563 A CN 202110908563A CN 113791862 A CN113791862 A CN 113791862A
Authority
CN
China
Prior art keywords
application
deployment
container
docker
project
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
CN202110908563.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.)
Inspur Software Group Co Ltd
Original Assignee
Inspur Software Group 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 Inspur Software Group Co Ltd filed Critical Inspur Software Group Co Ltd
Priority to CN202110908563.0A priority Critical patent/CN113791862A/zh
Publication of CN113791862A publication Critical patent/CN113791862A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45562Creating, deleting, cloning virtual machine instances
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/4557Distribution of virtual machine instances; Migration and load balancing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45575Starting, stopping, suspending or resuming virtual machine instances

Abstract

本发明公开了国产CPU和OS环境中基于Docker的java应用瘦身部署方法及系统,属于软件开发技术领域,本发明要解决的技术问题为如何将java应用进行瘦身,提高系统资源利用率,从而减轻国产环境服务器和运维的压力,采用的技术方案为:该方法是将java应用利用maven插件分离为公共依赖组件lib目录和业务代码,并利用Docker进行部署;抽离后每个应用大小为200‑300KB的业务代码创建各自的容器,各个应用容器均与公共依赖目录挂载,多个应用均从公共依赖中使用所需要的功能,通过解耦使得应用系统的文件大小得到缩小;具体如下:将应用进行抽离依赖,完成项目瘦身打包;运用Docker容器进行部署;使用持续集成工具进行后期系统升级运维的自动化更新部署。

Description

国产CPU和OS环境中基于Docker的java应用瘦身部署方法及 系统
技术领域
本发明涉及软件开发技术领域,具体地说是一种国产CPU和OS环境中基于Docker的java应用瘦身部署方法及系统。
背景技术
随着国内计算机技术的发展,大中型企业以及政府机构都将业务功能信息化,应用系统也随着业务的拓展而不断变得庞大,加之微服务作为系统主流架构方案的情况下,软件应用在国产CPU和OS环境中也已经由单一架构向微服务转变。
目前一个系统项目可能拥有多达十几个java应用。如果按照普通的方式部署应用,单个java应用就有一两百MB大小,整个系统就会多达一两个GB,当系统上线时,第一次部署或者更新代码时动不动就会需要上传几百MB或几GB的部署文件,这将对运维人员部署系统造成不小的麻烦,而且目前国产CPU和OS环境因为架构与x86服务器不同,服务器性能低于x86的服务器,在此环境中同时启动这些java应用会对国产环境服务器造成一定的压力,增加系统的开销。
故如何将java应用进行瘦身,提高系统资源利用率,从而减轻国产环境服务器和运维的压力是目前亟待解决的技术问题。
发明内容
本发明的技术任务是提供一种国产CPU和OS环境中基于Docker的java应用瘦身部署方法及系统,来解决如何将java应用进行瘦身,提高系统资源利用率,从而减轻国产环境服务器和运维的压力的问题。
本发明的技术任务是按以下方式实现的,一种国产CPU和OS环境中基于Docker的java应用瘦身部署方法,该方法是将java应用利用maven插件分离为公共依赖组件lib目录和业务代码,并利用Docker进行部署;抽离后每个应用大小为200-300KB的业务代码创建各自的容器,各个应用容器均与公共依赖目录挂载,多个应用均从公共依赖中使用所需要的功能,通过解耦使得应用系统的文件大小得到缩小;具体如下:
将应用进行抽离依赖,完成项目瘦身打包;
运用Docker容器进行部署;
使用持续集成工具进行后期系统升级运维的自动化更新部署。
作为优选,项目瘦身打包具体如下:
将java应用分离为依赖和业务代码两部分;
将多个java应用的公共依赖都分离至同一个目录中。
更优地,公共依赖作为数据卷容器供多个应用挂载创建对应的容器;公共依赖更新具体如下:
将公共依赖加入版本控制中,每个项目的更新变化情况能及时的从版本更新记录中获取信息,管理更加方便;
使用自动化集成工具自动地将公共依赖的更新部署至服务器上数据卷容器所挂在的数据卷,为应用系统升级和维护带来极大的便利。
更优地,项目瘦身打包应用于SpringBoot,具体如下:
在SpringBoot应用的配置文件中引入插件;
配置项目引用依赖文件的位置,根据项目部署实际需求定义位置,能够让SpringBoot应用找到依赖所在的位置从而使用依赖;
配置依赖jar抽离存放的目录,将依赖存放到指定目录,部署时直接将此目录放到服务器合适的位置即可;
使用maven命令打包项目,打包完毕后项目分为依赖文件和jar包,将依赖文件和jar包上传,公共依赖存放至同一个目录下,应用存放至统一的共享存储中,完成应用瘦身打包。
作为优选,运用Docker容器进行部署具体如下:
使用docker命令将公共依赖创建一个数据卷容器;
使用统一的适用于国产CPU和OS架构的java环境镜像,每个应用使用此镜像将应用统一的共享存储目录挂载至容器中指定目录,并同时挂载公共依赖数据卷容器来创建对应的容器,挂载的数据卷容器并不需要保持在运行状态,将Docker容器设置为开机自启,完成Docker部署。
作为优选,持续集成工具采用Jenkins,Jenkins自动化部署具体如下:
在Jenkins中为每个应用创建对应的构建项目,并在Jenkins所在主机上从应用代码仓库上克隆项目;
每个应用构建项目与Jenkins所在主机的应用克隆目录、应用代码仓库关联,并配置好每个项目的部署命令,配置好后实现后续的自动化更新部署。
更优地,自动化更新部署是指每个应用都对应一个构建项目,配置好每个应用的构建就能自动完成应用的打包、上传和容器重启的工作;对于应用的部署具体如下:
第一次基于Docker完成部署细节后,后续的运维部署使用持续集成工具实现对应用的自动更新部署;
每个应用在持续集成工具中都创建一个专属项目,项目与应用代码仓库关联;
在项目中配置好部署命令,后续的部署点击构建后持续集成工具就能使用应用的最新代码将应用打包;
将打包后的应用上传至服务器,重启应用容器完成应用的更新部署,从而减轻运维人员的部署难度。
一种国产CPU和OS环境中基于Docker的java应用瘦身部署系统,该系统包括,
抽离单元,用于将java应用分离为公共依赖和业务代码两个部分,进而将应用进行抽离依赖,完成项目瘦身打包;
部署模块,用于运用Docker容器进行部署,即创建公共依赖数据卷容器,于将应用统一的共享存储目录挂载至容器中的指定位置并同时挂载公共依赖数据卷容器来创建每个应用容器;
更新模块,用于使用持续集成工具进行后期系统升级运维的自动化更新部署,即设置应用容器开机自启,后期系统的升级维护使用持续集成工具实现自动化更新部署。
作为优选,所述抽离单元应用于SpringBoot,包括,
引入子模块,用于在SpringBoot应用的配置文件中引入插件;
配置子模块一,用于配置项目引用依赖文件的位置,根据项目部署实际需求定义位置,能够让SpringBoot应用找到依赖所在的位置从而使用依赖;
配置子模块二,用于配置依赖jar抽离存放的目录,将依赖存放到指定目录,部署时直接将此目录放到服务器合适的位置即可;
打包子模块,用于使用maven命令打包项目,打包完毕后项目分为依赖文件和jar包,将依赖文件和jar包上传,公共依赖存放至同一个目录下,应用存放至统一的共享存储中,完成应用瘦身打包;
所述部署模块包括,
创建子模块,用于使用docker命令将公共依赖创建一个数据卷容器;
挂载子模块,用于使用统一的适用于国产CPU和OS架构的java环境镜像,每个应用使用此镜像将应用统一的共享存储目录挂载至容器中指定目录,并同时挂载公共依赖数据卷容器来创建对应的容器,挂载的数据卷容器并不需要保持在运行状态,将Docker容器设置为开机自启,完成Docker部署;
所述持续集成工具采用Jenkins,更新模块具体如下:
克隆子模块,用于在Jenkins中为每个应用创建对应的构建项目,并在Jenkins所在主机上从应用代码仓库上克隆项目;
关联子模块,用于每个应用构建项目与Jenkins所在主机的应用克隆目录、应用代码仓库关联,并配置好每个项目的部署命令,配置好后实现后续的自动化更新部署。
一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机程序,所述计算机程序可被处理器执行以实现如上述的国产CPU和OS环境中基于Docker的java应用瘦身部署方法。
本发明的国产CPU和OS环境中基于Docker的java应用瘦身部署方法及系统具有以下优点:
(一)本发明将java应用利用maven插件分离为公共依赖组件lib目录和业务代码,并利用Docker进行部署;抽离后每个应用大小只有两三百KB的业务代码创建各自的容器,各个应用容器都与公共依赖目录挂载,十几个应用都只需要从公共依赖中使用所需要的功能,而不是像之前每个应用都要将共同使用的依赖和自己的业务代码一起部署,这样通过解耦使得整个系统的文件大小就能有极大的缩小;
(二)项目瘦身打包将应用系统的体积大幅度缩小;Docker容器部署应用将使得应用运行性能提高,并且减少国产CPU和OS环境下服务器的系统开销,释放出服务器更多的系统资源供其它应用使用,而且对于运维方面,Docker容器很快很轻,启动时间是秒级的,大量地节约了部署时间;
(三)本发明通过应用解耦解决了java微服务项目第一次部署上传文件耗时的问题;
(四)本发明利用Docker部署,极大地提高了国产CPU和OS架构下的服务器系统资源利用率和应用的性能,减少服务器的系统开销,释放出服务器更多的系统资源供其它应用使用,很好的解决了国产CPU和OS环境下应用系统庞大造成的服务器性能容易出现瓶颈的问题;
(五)本发明可使运维更新代码时只需要更新小体积的业务代码,解决了每次更新都需要上传大量文件的问题;
(六)本发明可通过版本控制查看公共依赖的改变情况,解决了运维管理混乱的问题;
(七)本发明可使用自动化部署工具例如Jenkins来进行项目的自动化更新部署,使得运维工作变得简单方便。
附图说明
下面结合附图对本发明进一步说明。
附图1为抽离依赖的示意图;
附图2为容器部署示例图。
具体实施方式
参照说明书附图和具体实施例对本发明的国产CPU和OS环境中基于Docker的java应用瘦身部署方法及系统作以下详细地说明。
实施例1:
本发明的国产CPU和OS环境中基于Docker的java应用瘦身部署方法,该方法是将java应用利用maven插件分离为公共依赖组件lib目录和业务代码,并利用Docker进行部署;抽离后每个应用大小为200-300KB的业务代码创建各自的容器,各个应用容器均与公共依赖目录挂载,多个应用均从公共依赖中使用所需要的功能,通过解耦使得应用系统的文件大小得到缩小;具体如下:
S1、将应用进行抽离依赖,完成项目瘦身打包;
S2、运用Docker容器进行部署;
S3、使用持续集成工具进行后期系统升级运维的自动化更新部署。
本实施例中步骤S1的项目瘦身打包具体如下:
S101、将java应用分离为依赖和业务代码两部分;
S102、将多个java应用的公共依赖都分离至同一个目录中,如附图2所示,原本重复使用的依赖通过抽离到统一目录下,极大的缩小了应用系统的体积大小。
本实施例中的公共依赖作为数据卷容器供多个应用挂载创建对应的容器;公共依赖更新具体如下:
(1)、将公共依赖加入版本控制中,每个项目的更新变化情况能及时的从版本更新记录中获取信息,管理更加方便;
(2)、使用自动化集成工具自动地将公共依赖的更新部署至服务器上数据卷容器所挂在的数据卷,为应用系统升级和维护带来极大的便利。
本实施例步骤S1中的项目瘦身打包应用于SpringBoot,具体如下:
(1)、在SpringBoot应用的配置文件中引入插件;
(2)、配置项目引用依赖文件的位置,根据项目部署实际需求定义位置,能够让SpringBoot应用找到依赖所在的位置从而使用依赖;
(3)、配置依赖jar抽离存放的目录,将依赖存放到指定目录,部署时直接将此目录放到服务器合适的位置即可;
(4)、使用maven命令打包项目,打包完毕后项目分为依赖文件和jar包,将依赖文件和jar包上传,公共依赖存放至同一个目录下,应用存放至统一的共享存储中,完成应用瘦身打包。
由于Docker容器的启动可以在秒级实现,且对系统资源的利用率高,加之容器中除了运行其中的应用外,基本不消耗额外的系统资源,使得应用的性能很高,运用Docker可以很好的解决了国产CPU和OS环境下应用系统庞大造成的服务器性能容易出现瓶颈的问题。对于公共依赖部分,由于后续升级系统时需要更新应用的依赖包,所以选择将其创建为数据卷容器,专门提供数据卷给其它应用容器挂载,使用数据卷容器能够更好的管理容器与数据卷之间的关系,更加合理的控制数据卷的生命周期。
应用使用公共依赖的数据卷容器创建其对应的容器,每个应用都通过统一的共享存储目录与容器内指定目录挂载的方式来创建容器。一个应用创建一个容器的优势是使得应用间不相互干扰,即使一个应用无法正常提供服务也不影响其它应用的运行,而且能使应用极大程度上利用容器内的系统资源,提升应用的性能。利用容器网络机制,打通不同容器间网络,让每个应用容器都能相互通信。
如附图1所示,本实施例中步骤S2的运用Docker容器进行部署具体如下:
S201、使用docker命令将公共依赖创建一个数据卷容器;
S202、使用统一的适用于国产CPU和OS架构的java环境镜像,每个应用使用此镜像将应用统一的共享存储目录挂载至容器中指定目录,并同时挂载公共依赖数据卷容器来创建对应的容器,挂载的数据卷容器并不需要保持在运行状态,将Docker容器设置为开机自启,完成Docker部署。
本实施例中步骤S3的持续集成工具采用Jenkins,Jenkins自动化部署具体如下:
S301、在Jenkins中为每个应用创建对应的构建项目,并在Jenkins所在主机上从应用代码仓库上克隆项目;
S302、每个应用构建项目与Jenkins所在主机的应用克隆目录、应用代码仓库关联,并配置好每个项目的部署命令,配置好后实现后续的自动化更新部署。
本实施例中自动化更新部署是指每个应用都对应一个构建项目,配置好每个应用的构建就能自动完成应用的打包、上传和容器重启的工作;对于应用的部署具体如下:
①、第一次基于Docker完成部署细节后,后续的运维部署使用持续集成工具实现对应用的自动更新部署;
②、每个应用在持续集成工具中都创建一个专属项目,项目与应用代码仓库关联;
③、在项目中配置好部署命令,后续的部署点击构建后持续集成工具就能使用应用的最新代码将应用打包;
④、将打包后的应用上传至服务器,重启应用容器完成应用的更新部署,从而减轻运维人员的部署难度。
实施例2:
本发明的国产CPU和OS环境中基于Docker的java应用瘦身部署系统,该系统包括,
抽离单元,用于将java应用分离为公共依赖和业务代码两个部分,进而将应用进行抽离依赖,完成项目瘦身打包;
部署模块,用于运用Docker容器进行部署,即创建公共依赖数据卷容器,于将应用统一的共享存储目录挂载至容器中的指定位置并同时挂载公共依赖数据卷容器来创建每个应用容器;
更新模块,用于使用持续集成工具进行后期系统升级运维的自动化更新部署,即设置应用容器开机自启,后期系统的升级维护使用持续集成工具实现自动化更新部署。
本实施例中的抽离单元应用于SpringBoot,包括,
引入子模块,用于在SpringBoot应用的配置文件中引入插件;
配置子模块一,用于配置项目引用依赖文件的位置,根据项目部署实际需求定义位置,能够让SpringBoot应用找到依赖所在的位置从而使用依赖;
配置子模块二,用于配置依赖jar抽离存放的目录,将依赖存放到指定目录,部署时直接将此目录放到服务器合适的位置即可;
打包子模块,用于使用maven命令打包项目,打包完毕后项目分为依赖文件和jar包,将依赖文件和jar包上传,公共依赖存放至同一个目录下,应用存放至统一的共享存储中,完成应用瘦身打包;
本实施例中的部署模块包括,
创建子模块,用于使用docker命令将公共依赖创建一个数据卷容器;
挂载子模块,用于使用统一的适用于国产CPU和OS架构的java环境镜像,每个应用使用此镜像将应用统一的共享存储目录挂载至容器中指定目录,并同时挂载公共依赖数据卷容器来创建对应的容器,挂载的数据卷容器并不需要保持在运行状态,将Docker容器设置为开机自启,完成Docker部署;
本实施例中的持续集成工具采用Jenkins,更新模块具体如下:
克隆子模块,用于在Jenkins中为每个应用创建对应的构建项目,并在Jenkins所在主机上从应用代码仓库上克隆项目;
关联子模块,用于每个应用构建项目与Jenkins所在主机的应用克隆目录、应用代码仓库关联,并配置好每个项目的部署命令,配置好后实现后续的自动化更新部署。
实施例3:
本发明实施例还提供了一种计算机可读存储介质,其中存储有多条指令,指令由处理器加载,使处理器执行本发明任一实施例中的国产CPU和OS环境中基于Docker的java应用瘦身部署方法。具体地,可以提供配有存储介质的系统或者装置,在该存储介质上存储着实现上述实施例中任一实施例的功能的软件程序代码,且使该系统或者装置的计算机(或CPU或MPU)读出并执行存储在存储介质中的程序代码。
在这种情况下,从存储介质读取的程序代码本身可实现上述实施例中任何一项实施例的功能,因此程序代码和存储程序代码的存储介质构成了本发明的一部分。
用于提供程序代码的存储介质实施例包括软盘、硬盘、磁光盘、光盘(如CD-ROM、CD-R、CD-RW、DVD-ROM、DVD-RYM、DVD-RW、DVD+RW)、磁带、非易失性存储卡和ROM。可选择地,可以由通信网络从服务器计算机上下载程序代码。
此外,应该清楚的是,不仅可以通过执行计算机所读出的程序代码,而且可以通过基于程序代码的指令使计算机上操作的操作系统等来完成部分或者全部的实际操作,从而实现上述实施例中任意一项实施例的功能。
此外,可以理解的是,将由存储介质读出的程序代码写到插入计算机内的扩展板中所设置的存储器中或者写到与计算机相连接的扩展单元中设置的存储器中,随后基于程序代码的指令使安装在扩展板或者扩展单元上的CPU等来执行部分和全部实际操作,从而实现上述实施例中任一实施例的功能。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

Claims (10)

1.一种国产CPU和OS环境中基于Docker的java应用瘦身部署方法,其特征在于,该方法是将java应用利用maven插件分离为公共依赖组件lib目录和业务代码,并利用Docker进行部署;抽离后每个应用大小为200-300KB的业务代码创建各自的容器,各个应用容器均与公共依赖目录挂载,多个应用均从公共依赖中使用所需要的功能,通过解耦使得应用系统的文件大小得到缩小;具体如下:
将应用进行抽离依赖,完成项目瘦身打包;
运用Docker容器进行部署;
使用持续集成工具进行后期系统升级运维的自动化更新部署。
2.根据权利要求1所述的国产CPU和OS环境中基于Docker的java应用瘦身部署方法,其特征在于,项目瘦身打包具体如下:
将java应用分离为依赖和业务代码两部分;
将多个java应用的公共依赖都分离至同一个目录中。
3.根据权利要求1或2所述的国产CPU和OS环境中基于Docker的java应用瘦身部署方法,其特征在于,公共依赖作为数据卷容器供多个应用挂载创建对应的容器;公共依赖更新具体如下:
将公共依赖加入版本控制中,每个项目的更新变化情况能及时的从版本更新记录中获取信息;
使用自动化集成工具自动地将公共依赖的更新部署至服务器上数据卷容器所挂在的数据卷。
4.根据权利要求2所述的国产CPU和OS环境中基于Docker的java应用瘦身部署方法,其特征在于,项目瘦身打包应用于SpringBoot,具体如下:
在SpringBoot应用的配置文件中引入插件;
配置项目引用依赖文件的位置,根据项目部署实际需求定义位置,能够让SpringBoot应用找到依赖所在的位置从而使用依赖;
配置依赖jar抽离存放的目录,将依赖存放到指定目录,部署时直接将此目录放到服务器合适的位置即可;
使用maven命令打包项目,打包完毕后项目分为依赖文件和jar包,将依赖文件和jar包上传,公共依赖存放至同一个目录下,应用存放至统一的共享存储中,完成应用瘦身打包。
5.根据权利要求1所述的国产CPU和OS环境中基于Docker的java应用瘦身部署方法,其特征在于,运用Docker容器进行部署具体如下:
使用docker命令将公共依赖创建一个数据卷容器;
使用统一的适用于国产CPU和OS架构的java环境镜像,每个应用使用此镜像将应用统一的共享存储目录挂载至容器中指定目录,并同时挂载公共依赖数据卷容器来创建对应的容器,挂载的数据卷容器并不需要保持在运行状态,将Docker容器设置为开机自启,完成Docker部署。
6.根据权利要求1所述的国产CPU和OS环境中基于Docker的java应用瘦身部署方法,其特征在于,持续集成工具采用Jenkins,Jenkins自动化部署具体如下:
在Jenkins中为每个应用创建对应的构建项目,并在Jenkins所在主机上从应用代码仓库上克隆项目;
每个应用构建项目与Jenkins所在主机的应用克隆目录、应用代码仓库关联,并配置好每个项目的部署命令,配置好后实现后续的自动化更新部署。
7.根据权利要求6所述的国产CPU和OS环境中基于Docker的java应用瘦身部署方法,其特征在于,自动化更新部署是指每个应用都对应一个构建项目,配置好每个应用的构建就能自动完成应用的打包、上传和容器重启的工作;对于应用的部署具体如下:
第一次基于Docker完成部署细节后,后续的运维部署使用持续集成工具实现对应用的自动更新部署;
每个应用在持续集成工具中都创建一个专属项目,项目与应用代码仓库关联;
在项目中配置好部署命令,后续的部署点击构建后持续集成工具就能使用应用的最新代码将应用打包;
将打包后的应用上传至服务器,重启应用容器完成应用的更新部署。
8.一种国产CPU和OS环境中基于Docker的java应用瘦身部署系统,其特征在于,该系统包括,
抽离单元,用于将java应用分离为公共依赖和业务代码两个部分,进而将应用进行抽离依赖,完成项目瘦身打包;
部署模块,用于运用Docker容器进行部署,即创建公共依赖数据卷容器,于将应用统一的共享存储目录挂载至容器中的指定位置并同时挂载公共依赖数据卷容器来创建每个应用容器;
更新模块,用于使用持续集成工具进行后期系统升级运维的自动化更新部署,即设置应用容器开机自启,后期系统的升级维护使用持续集成工具实现自动化更新部署。
9.根据权利要求8所述的国产CPU和OS环境中基于Docker的java应用瘦身部署系统,其特征在于,所述抽离单元应用于SpringBoot,包括,
引入子模块,用于在SpringBoot应用的配置文件中引入插件;
配置子模块一,用于配置项目引用依赖文件的位置,根据项目部署实际需求定义位置,能够让SpringBoot应用找到依赖所在的位置从而使用依赖;
配置子模块二,用于配置依赖jar抽离存放的目录,将依赖存放到指定目录,部署时直接将此目录放到服务器合适的位置即可;
打包子模块,用于使用maven命令打包项目,打包完毕后项目分为依赖文件和jar包,将依赖文件和jar包上传,公共依赖存放至同一个目录下,应用存放至统一的共享存储中,完成应用瘦身打包;
所述部署模块包括,
创建子模块,用于使用docker命令将公共依赖创建一个数据卷容器;
挂载子模块,用于使用统一的适用于国产CPU和OS架构的java环境镜像,每个应用使用此镜像将应用统一的共享存储目录挂载至容器中指定目录,并同时挂载公共依赖数据卷容器来创建对应的容器,挂载的数据卷容器并不需要保持在运行状态,将Docker容器设置为开机自启,完成Docker部署;
所述持续集成工具采用Jenkins,更新模块具体如下:
克隆子模块,用于在Jenkins中为每个应用创建对应的构建项目,并在Jenkins所在主机上从应用代码仓库上克隆项目;
关联子模块,用于每个应用构建项目与Jenkins所在主机的应用克隆目录、应用代码仓库关联,并配置好每个项目的部署命令,配置好后实现后续的自动化更新部署。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机程序,所述计算机程序可被处理器执行以实现如权利要求1至7中任一项所述的国产CPU和OS环境中基于Docker的java应用瘦身部署方法。
CN202110908563.0A 2021-08-09 2021-08-09 国产CPU和OS环境中基于Docker的java应用瘦身部署方法及系统 Pending CN113791862A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110908563.0A CN113791862A (zh) 2021-08-09 2021-08-09 国产CPU和OS环境中基于Docker的java应用瘦身部署方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110908563.0A CN113791862A (zh) 2021-08-09 2021-08-09 国产CPU和OS环境中基于Docker的java应用瘦身部署方法及系统

Publications (1)

Publication Number Publication Date
CN113791862A true CN113791862A (zh) 2021-12-14

Family

ID=79181564

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110908563.0A Pending CN113791862A (zh) 2021-08-09 2021-08-09 国产CPU和OS环境中基于Docker的java应用瘦身部署方法及系统

Country Status (1)

Country Link
CN (1) CN113791862A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116088921A (zh) * 2023-04-07 2023-05-09 深圳市联合信息技术有限公司 一种面向国产操作系统的自动化运维管理系统及方法
CN117519774A (zh) * 2023-11-01 2024-02-06 广州市玄武无线科技股份有限公司 一种flink的打包方法、装置、设备及存储介质

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116088921A (zh) * 2023-04-07 2023-05-09 深圳市联合信息技术有限公司 一种面向国产操作系统的自动化运维管理系统及方法
CN116088921B (zh) * 2023-04-07 2023-06-27 深圳市联合信息技术有限公司 一种面向国产操作系统的自动化运维管理系统及方法
CN117519774A (zh) * 2023-11-01 2024-02-06 广州市玄武无线科技股份有限公司 一种flink的打包方法、装置、设备及存储介质

Similar Documents

Publication Publication Date Title
CN111522628B (zh) 一种基于OpenStack的Kubernetes集群搭建部署方法、架构及存储介质
CN111666080B (zh) 微服务集群部署方法、装置、计算机设备及存储介质
CN107193615B (zh) 项目代码信息的更新部署方法及装置
US11068252B2 (en) System and method for dynamically determining applicable updates
CN106610839B (zh) 发布升级包的方法、轻量升级方法、装置及系统
CN113791862A (zh) 国产CPU和OS环境中基于Docker的java应用瘦身部署方法及系统
CN107566165B (zh) 一种发现及部署电力云数据中心可用资源的方法及系统
CN113296792B (zh) 存储方法、装置、设备、存储介质和系统
CN108897547B (zh) 一种软件自动化部署方法及装置
CN109240716B (zh) 一种大数据平台版本管理与快速迭代部署方法及系统
EP2807556A1 (en) Application installation
CN102937909B (zh) 一种部署和更新Linux系统的方法
CN115048205B (zh) Etl调度平台及其部署方法、计算机可读存储介质
CN111124286A (zh) 一种基于Libcloud的多云管理实现方法
CN104750528A (zh) 一种Android程序中的组件管理方法和装置
CN107911467B (zh) 一种脚本化操作的服务操作管理系统和方法
CN108268299A (zh) 一种基于OpenStack云平台的Docker共享存储解决方法
CN114253562A (zh) 一种服务器软件包的管理及部署方法及其系统
CN113918281A (zh) 一种提升容器云资源扩展效率的方法
CN112667711B (zh) 一种MySQL只读实例管理方法、系统及计算机可读介质
CN117112122A (zh) 一种集群部署方法和装置
US20200133709A1 (en) System and method for content - application split
CN116954752A (zh) 一种差异化系统配置、加载方法、装置及计算机设备
CN112379867B (zh) 一种基于模块化开发的嵌入式操作系统、方法及存储介质
CN113448609B (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