本发明涉及计算机技术领域,尤其是涉及集成部署方法、装置、电子设备和可读存储介质。
背景技术:
开发单个应用作为一系列小型服务的套件,其中每个服务都运行在自己的进程中,并且通过轻量级的机制实现彼此间的通信,这通常采用HTTP资源API,这些服务是围绕着业务功能构建的,并且可以通过完全自动化的部署机制进行独立部署。这些服务的集中式管理做到了最小化,每一种服务都可以通过不同的编程语言进行编写,并且可以使用不同的数据存储技,利用容器开服部署是比较节约资源的方式。但是小型服务数量多部署繁琐,即使使用虚拟机作为部署资源,也是较大的浪费。容器技术无疑成为最有效最可取的方案。
目前许多企业的IT运维已经实现从人工运维到计算机管理,但延展咨询在同客户的交流中发现其中很多企业的IT运维管理还只是处在“半自动化”的运维状态。因为这种IT运维仍然是等到IT故障出现后再由运维人员采取相应的补救措施。这些传统式被动、孤立、半自动式的IT运维管理模式经常让IT部门疲于应对。由于环境的差异,导致人工运维的成本增加,部署程序复杂繁琐。
技术实现要素:
有鉴于此,本发明的目的在于提供集成部署方法、装置、电子设备和可读存储介质,可迅速部署项目,减少人工参与,避免人为失误,提高运维效率。
第一方面,本发明实施例提供了集成部署方法,包括:
持续集成工具从代码库拉取与项目参数相匹配的项目代码,所述代码库包括所述项目代码和脚本代码;
通过所述与项目参数相匹配的项目代码制作业务镜像;
按照所述脚本代码运行所述业务镜像。
结合第一方面,本发明实施例提供了第一方面的第一种可能的实施方式,其中,,所述通过所述与项目参数相匹配的项目代码制作业务镜像包括:
将系统镜像按照所述与项目参数相匹配的项目代码进行制作,得到业务镜像;
将所述业务镜像同步到目标服务器,通过所述脚本代码,从所述目标服务器的镜像库中拉取所述业务镜像。
结合第一方面,本发明实施例提供了第一方面的第二种可能的实施方式,其中,所述通过所述与项目参数相匹配的项目代码制作业务镜像包括:
将系统镜像同步到目标服务器,通过所述脚本代码,从所述目标服务器的镜像库中拉取所述系统镜像;
将系统镜像按照所述与项目参数相匹配的项目代码进行制作,得到业务镜像,所述业务镜像的数目包括至少一个。
结合第一方面,本发明实施例提供了第一方面的第三种可能的实施方式,其中,所述将系统镜像按照所述与项目参数相匹配的项目代码进行制作,得到业务镜像包括:
从所述项目参数代码中获取代码配置文件;
通过容器外部接口命令,将所述代码配置文件打入系统镜像,生成所述业务镜像。
结合第一方面,本发明实施例提供了第一方面的第四种可能的实施方式,其中,将所述业务镜像同步到目标服务器包括:
将所述业务镜像上传至主服务器,从服务器同步所述主服务器中的所述业务镜像,其中,所述从服务器包括预先配置的所述目标服务器。
结合第一方面,本发明实施例提供了第一方面的第五种可能的实施方式,其中,将所述系统镜像同步到目标服务器包括:
将所述系统镜像上传至主服务器,从服务器同步所述主服务器中的所述系统镜像,其中,所述从服务器包括预先配置的所述目标服务器。
结合第一方面,本发明实施例提供了第一方面的第六种可能的实施方式,其中,在所述持续集成工具从代码库拉取与项目参数相匹配的项目代码之前,还包括:
持续集成工具运行项目代码和脚本代码;
根据所述脚本代码配置目标服务器。
第二方面,本发明实施例提供了集成部署方法装置,所述装置包括:
代码拉取模块,用于持续集成工具从代码库拉取与项目参数相匹配的项目代码,所述代码库包括所述项目代码和脚本代码;
镜像制作模块,用于通过所述与项目参数相匹配的项目代码制作业务镜像;
镜像运行模块,用于按照所述脚本代码运行所述业务镜像。
结合第一方面,本发明实施例提供了第一方面的第八种可能的实施方式,其中,
第三方面,本发明实施例还提供电子设备,所述电子设备包括:
存储介质;
处理器;以及
集成部署装置,所述装置存储于所述存储介质中并包括由所述处理器执行的软件功能模块,所述装置包括:
代码拉取模块,用于持续集成工具从代码库拉取与项目参数相匹配的项目代码,所述代码库包括所述项目代码和脚本代码;
镜像制作模块,用于通过所述与项目参数相匹配的项目代码制作业务镜像;
镜像运行模块,用于按照所述脚本代码运行所述业务镜像。
第四方面,本发明实施例提供了可读存储介质,其中,所述可读存储介质中存储有计算机程序,所述计算机程序被执行时实现如上所述的集成部署方法。
本发明实施例提供了集成部署方法、装置、电子设备和可读存储介质,包括持续集成工具从代码库拉取与项目参数相匹配的项目代码,代码库包括项目代码和脚本代码;通过与项目参数相匹配的项目代码制作业务镜像;按照脚本代码运行业务镜像,本申请可迅速部署项目,减少人工参与,避免人为失误,提高运维效率。
本发明的其他特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。
为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的集成部署方法流程图;
图2为本发明实施例提供的集成部署方法中步骤S120方法流程图之一;
图3为本发明实施例提供的集成部署方法中步骤S120方法流程图之二;
图4为本发明实施例提供的用于实现上述集成部署方法的电子设备的方框示意图。
图标:100-电子设备;110-存储介质;120-处理器;200-集成部署装置;210-代码拉取模块;220-镜像制作模块;230-镜像运行模块。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合附图对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
目前互联网领域需要越来越合理的模式来保障IT服务能灵活便捷、安全稳定地持续保障,这种模式中的保障因素就是IT运维(其他因素是更加优越的IT架构等)。从初期的几台服务器发展到庞大的数据中心,单靠人工已经无法满足在技术、业务、管理等方面的要求,那么标准化、自动化、架构优化、过程优化等降低IT服务成本的因素越来越被人们所重视。其中,自动化最开始作为代替人工操作为出发点的诉求被广泛研究和应用。所以自动化容器部署能代替繁琐的人工。
基于此,本发明实施例提供的集成部署方法、装置、电子设备和可读存储介质,可迅速部署项目,减少人工参与,避免人为失误,提高运维效率。
为便于对本实施例进行理解,首先对本发明实施例所公开的集成部署方法、装置、电子设备和可读存储介质进行详细介绍;
图1为本发明实施例提供的集成部署方法流程图。
参照图1,集成部署方法包括以下步骤:
步骤S110,持续集成工具从代码库拉取与项目参数相匹配的项目代码,代码库包括项目代码和脚本代码;
需要说明的是,代码库中包括多种项目参数,持续集成工具根据需要适应的环境,选择与环境相对应的项目参数,再拉取与项目参数相匹配的项目代码;
步骤S120,通过与项目参数相匹配的项目代码制作业务镜像;
步骤S130,按照脚本代码运行业务镜像。
这里,业务镜像包括至少一个,多个业务镜像按照脚本代码设定的顺序运行业务镜像;
具体地,本发明实施例通过持续集成工具,运行技术人员事先拟定的脚本,自动化发布结合容器外部接口操作,自动化运行业务镜像、启动容器,实现互联网领域项目自动化高效率低成本的集成部署;
这里,持续集成工具(Jenkins)是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能;
其中,Jenkins作为项目代码拉动和项目启动执行开关,承担代码打包和部署,控制,执行者,通过脚本或者纯机器命令执行参数或非参数项目启动令;
进一步的,如图2所示,上述实施例提供的步骤S120还可用以下步骤实现,包括:
步骤S210,将系统镜像按照与项目参数相匹配的项目代码进行制作,得到业务镜像;
步骤S220,将业务镜像同步到目标服务器,通过脚本代码,从目标服务器的镜像库中拉取业务镜像。
其中,上述实施例的实现方式针对单个业务镜像,先制作业务镜像,再将生成的业务镜像进行拉取;
进一步的,如图3所示,上述实施例提供的步骤S120还可用以下步骤实现,还包括:
步骤S310,将系统镜像同步到目标服务器,通过脚本代码,从目标服务器的镜像库中拉取系统镜像;
步骤S320,将系统镜像按照与项目参数相匹配的项目代码进行制作,得到业务镜像,业务镜像的数目包括至少一个。
这里,上述实施例的实现方式针对一个或多个业务镜像,先将系统镜像进行拉取,再根据一个或多个配置文件制作一个或多个业务镜像;
进一步的,上述实施例中提供的步骤S210、步骤S320中将系统镜像按照与项目参数相匹配的项目代码进行制作,得到业务镜像,可用以下步骤实现,包括:
步骤S410,从项目参数代码中获取代码配置文件;
步骤S420,通过容器外部接口命令,将代码配置文件打入系统镜像,生成业务镜像;
这里,系统镜像是前期准备好的,为了达到快速部署的目的,本发明实施例将代码和配置文件打入镜像,做到机器替代人力配置环境,通过容器外部接口命令(Application Programming Interface,API)将项目代码制作成容器镜像;
其中,持续集成工具会在预先设定的时间,启动项目,应用本发明实施例提供的集成部署方法制作镜像,以达到快速部署的目的;
进一步的,步骤S220中将业务镜像同步到目标服务器,包括:
步骤S510,将业务镜像上传至主服务器,从服务器同步主服务器中的业务镜像,其中,从服务器包括预先配置的目标服务器。
进一步的,步骤S310中将系统镜像同步到目标服务器,包括:
步骤S610,将系统镜像上传至主服务器,从服务器同步主服务器中的系统镜像,其中,从服务器包括预先配置的目标服务器。
进一步的,在步骤S110之前还包括以下步骤,具体如下:
步骤S102,持续集成工具运行项目代码和脚本代码;
步骤S104,根据脚本代码配置目标服务器。
这里,自动化运维人员通过拟写项目代码,创建jenkins项目做一些服务器配置,就能够免去了中间各个配置环境,添加配置文件的繁琐事项;
其中,针对不同的环境需要不同的配置文件,系统镜像通过打入不同配置文件可生成应用于不同环境的业务镜像;
本申请通过持续集成工具拉取合并代码,能够改变人力运维人工进行代码合并的弊端,并快速配置环境;
例如,人力运维需要从选择主机搭配运行环境来配置,本申请启动新环境只需3秒;
进一步地,如图4所示,是本发明实施例提供的用于实现所述集成部署的电子设备100的示意图。本实施例中,所述电子设备100可以是,但不限于,个人电脑(Personal Computer,PC)、笔记本电脑、监控设备、服务器等具备集成部署及处理能力的计算机设备。
所述电子设备100还包括集成部署装置200、存储介质110以及处理器120。本发明较佳实施例中,集成部署装置200包括至少一个可以软件或固件(Firmware)的形式存储于所述存储介质110中或固化在所述电子设备100的操作系统(Operating System,OS)中的软件功能模块。所述处理器120用于执行所述存储介质110中存储的可执行软件模块,例如,所述集成部署装置200所包括的软件功能模块及计算机程序等。本实施例中,所述集成部署装置200也可以集成于所述操作系统中,作为所述操作系统的一部分。具体地,所述集成部署装置200包括:
代码拉取模块210,用于持续集成工具从代码库拉取与项目参数相匹配的项目代码,所述代码库包括所述项目代码和脚本代码;
镜像制作模块220,用于通过所述与项目参数相匹配的项目代码制作业务镜像;
镜像运行模块230,用于按照所述脚本代码运行所述业务镜像。
可以理解的是,本实施例中的各功能模块的具体操作方法可参照上述方法实施例中相应步骤的详细描述,在此不再重复赘述。
综上所述,本发明实施例提供了集成部署方法、装置、电子设备和可读存储介质,包括持续集成工具从代码库拉取与项目参数相匹配的项目代码,代码库包括项目代码和脚本代码;通过与项目参数相匹配的项目代码制作业务镜像;按照脚本代码运行业务镜像,本申请可迅速部署项目,减少人工参与,避免人为失误,提高运维效率。
在本发明所提供的实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置和方法实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
另外,在本发明各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
需要说明的是,在本文中,术语\"包括\"、\"包含\"或者其任何其它变体意在涵盖非排它性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其它要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句\"包括一个……\"限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其它的具体形式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化囊括在本发明内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。