CN111679890A - 服务镜像的生成方法、装置及电子设备 - Google Patents
服务镜像的生成方法、装置及电子设备 Download PDFInfo
- Publication number
- CN111679890A CN111679890A CN202010526560.6A CN202010526560A CN111679890A CN 111679890 A CN111679890 A CN 111679890A CN 202010526560 A CN202010526560 A CN 202010526560A CN 111679890 A CN111679890 A CN 111679890A
- Authority
- CN
- China
- Prior art keywords
- service
- virtual machine
- image
- code
- target virtual
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 86
- 238000004891 communication Methods 0.000 claims description 30
- 230000008569 process Effects 0.000 description 16
- 238000007906 compression Methods 0.000 description 2
- 230000006835 compression Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000008439 repair process Effects 0.000 description 2
- 238000004590 computer program Methods 0.000 description 1
- 238000013144 data compression Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000000802 evaporation-induced self-assembly Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 230000003252 repetitive effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45562—Creating, deleting, cloning virtual machine instances
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45595—Network integration; Enabling network access in virtual machine instances
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本发明提供了一种服务镜像的生成方法、装置及电子设备,首先接收服务镜像的生成指令,然后根据生成指令中的第一地址信息获取服务镜像对应服务代码,将服务代码保存至预设的目标虚拟机中;进而根据保存有服务代码的目标虚拟机,生成服务镜像。本发明中,接收到服务镜像的生成指令后,通过指令中的地址信息获取服务镜像对应的服务代码,并基于保存该服务代码的目标虚拟机生成服务镜像,该过程无需人工操作,降低了生成服务镜像过程的人力成本及时间成本,避免了人工操作而可能产生的错误,提高了服务镜像的可靠性。
Description
技术领域
本发明涉及云计算技术领域,尤其是涉及一种服务镜像的生成方法、装置及电子设备。
背景技术
私有云环境中可以提供各种类型的服务。以数据库服务为例,在具体实现时,可以使用已经定制好的数据库镜像创建虚拟机,虚拟机创建成功后,用户登陆该虚拟机就可以使用数据库服务。
服务在使用过程中,需要经常进行升级更新或问题修复,此时需要重新生成服务镜像。在生成服务镜像时,首先需要工作人员使用当前的服务镜像创建并登录虚拟机,再使用更新的服务代码替换当前的服务代码,进而生成新的服务镜像。但是,这种生成服务镜像的过程较为繁琐,并且其中的很多步骤需要人工手动操作,费时费力,同时还可能引入人为操作导致的错误,使得生成的服务镜像可靠性较低。
发明内容
有鉴于此,本发明的目的在于提供一种服务镜像的生成方法、装置及电子设备,以降低生成服务镜像过程的人力成本及时间成本,提高服务镜像的可靠性。
第一方面,本发明实施例提供了一种服务镜像的生成方法,该方法包括:接收服务镜像的生成指令;其中,生成指令中包括第一地址信息;第一地址信息用于获取服务镜像对应的服务代码;根据第一地址信息获取服务代码,将服务代码保存至预设的目标虚拟机中;根据保存有服务代码的目标虚拟机,生成服务镜像。
结合第一方面,本发明实施例提供了第一方面的第一种可能的实施方式,其中,上述生成指令还包括第二地址信息;第二地址信息用于与目标虚拟机建立通信连接;上述将服务代码保存至目标虚拟机中的步骤,包括:根据预设的虚拟机模板,启动目标虚拟机;根据第二地址信息,与目标虚拟机建立通信连接;通信连接建立成功后,将服务代码保存至目标虚拟机中。
结合第一方面,本发明实施例提供了第一方面的第二种可能的实施方式,其中,根据保存有服务代码的目标虚拟机,生成服务镜像的步骤,包括:关闭目标虚拟机;将保存有服务代码的目标虚拟机,转换为服务镜像。
结合第一方面,本发明实施例提供了第一方面的第三种可能的实施方式,其中,上述生成指令还包括第三地址信息;第三地址信息用于保存生成的服务镜像;上述生成服务镜像的步骤之后,上述方法还包括:将生成的服务镜像保存至第三地址信息对应的位置。
结合第一方面,本发明实施例提供了第一方面的第四种可能的实施方式,其中,在将服务代码保存至预设的目标虚拟机中的步骤之前,上述方法还包括:查询预设的目标虚拟机中是否保存有服务代码对应的历史版本代码;如果保存有服务代码对应的历史版本代码,从目标虚拟机中删除历史版本代码。
结合第一方面,本发明实施例提供了第一方面的第五种可能的实施方式,其中,在生成服务镜像的步骤之后,上述方法还包括:获取生成的服务镜像;基于服务镜像创建服务虚拟机;其中,该服务虚拟机中运行有服务镜像对应的服务。
结合第一方面,本发明实施例提供了第一方面的第六种可能的实施方式,其中,在基于服务镜像创建服务虚拟机的步骤之后,上述方法还包括:通过服务虚拟机接收来自用户的服务请求,并向用户提供服务。
第二方面,本发明实施例还提供一种服务镜像的生成装置,该装置包括:指令接收模块,用于接收服务镜像的生成指令;其中,生成指令中包括第一地址信息;第一地址信息用于获取服务镜像对应的服务代码;服务代码保存模块,用于根据第一地址信息获取服务代码,将服务代码保存至预设的目标虚拟机中;服务镜像生成模块,用于根据保存有服务代码的目标虚拟机,生成服务镜像。
结合第二方面,本发明实施例提供了第二方面的第一种可能的实施方式,其中,上述生成指令还包括第二地址信息;第二地址信息用于与目标虚拟机建立通信连接;上述服务代码保存模块还用于:根据预设的虚拟机模板,启动目标虚拟机;根据第二地址信息,与目标虚拟机建立通信连接;通信连接建立成功后,将服务代码保存至目标虚拟机中。
结合第二方面,本发明实施例提供了第二方面的第二种可能的实施方式,其中,上述服务镜像生成模块还用于:关闭目标虚拟机;将保存有服务代码的目标虚拟机,转换为服务镜像。
结合第二方面,本发明实施例提供了第二方面的第三种可能的实施方式,其中,上述生成指令还包括第三地址信息;第三地址信息用于保存生成的服务镜像;上述装置还包括:服务镜像保存模块,用于将生成的服务镜像保存至第三地址信息对应的位置。
结合第二方面,本发明实施例提供了第二方面的第四种可能的实施方式,其中,上述装置还包括:代码查询模块,用于查询目标虚拟机中是否保存有服务代码对应的历史版本代码;代码删除模块,用于如果保存有服务代码对应的历史版本代码,从目标虚拟机中删除历史版本代码。
第三方面,本发明实施例还提供一种电子设备,包括处理器和存储器,存储器存储有能够被处理器执行的机器可执行指令,处理器执行机器可执行指令以实现上述方法。
第四方面,本发明实施例还提供一种机器可读存储介质,机器可读存储介质存储有机器可执行指令,机器可执行指令在被处理器调用和执行时,机器可执行指令促使处理器实现上述方法。
上述一种服务镜像的生成方法、装置及电子设备,首先接收服务镜像的生成指令,然后根据生成指令中的第一地址信息获取服务镜像对应服务代码,将服务代码保存至预设的目标虚拟机中;进而根据保存有服务代码的目标虚拟机,生成服务镜像。该方式中,接收到服务镜像的生成指令后,通过指令中的地址信息获取服务镜像对应的服务代码,并基于保存该服务代码的目标虚拟机生成服务镜像,该过程无需人工操作,降低了生成服务镜像过程的人力成本及时间成本,避免了人工操作而可能产生的错误,提高了服务镜像的可靠性。
本发明的其他特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。
为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种服务镜像的生成方法的流程图;
图2为本发明实施例提供的另一种服务镜像的生成方法的流程图;
图3为本发明实施例提供的一种服务镜像的生成装置的结构示意图;
图4为本发明实施例提供的一种电子设备的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合附图对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为了便于理解,首先对服务镜像进行介绍。服务镜像主要包括可以实现某种服务的系统的文件,这些文件通常以镜像文件的形式存储。常见的镜像文件格式有ISO(由国际标准化组织“International Organization for Standardization”指定的文件格式)、BIN(二进制文件)、IMG(一种文件压缩格式)等,其性质和ZIP(一种数据压缩和文档储存的文件格式)压缩包类似。
例如,针对于数据库服务的服务镜像为数据库镜像;数据库镜像是数据库管理员根据数据库管理系统的要求,把整个数据库或其中的关键数据复制到另一个磁盘上;每当主数据库更新时,数据库管理员会把更新后的数据复制过去,即保证镜像数据与主数据的一致性。通过数据库镜像可以提供软件代码,生成虚拟机,以使用户通过虚拟机(VirtualMachine)使用数据库服务。
私有云是一种为一个客户单独使用而构建的云服务;在私有云环境中可以提供各种类型的服务,如上述数据库服务;在具体实现时,可以使用已经定制好的数据库镜像创建虚拟机,虚拟机创建成功后,用户登陆该虚拟机就可以使用数据库服务。
服务在使用过程中,需要经常进行升级更新或问题修复,此时需要重新生成服务镜像。在生成服务镜像时,首先需要工作人员(如上述数据库管理员)使用当前的服务镜像创建并登录虚拟机,再使用更新的服务代码替换当前的服务代码,进而生成新的服务镜像,并将新的服务镜像上传至预设镜像服务器进行保存。但是,这种生成服务镜像的过程较为繁琐,并且其中的很多步骤需要人工手动操作,费时费力,同时还可能引入人为操作导致的错误,使得生成的服务镜像可靠性较低。
基于上述,本发明实施例提供的一种服务镜像的生成方法、装置以及电子设备,可以应用于各种系统的服务镜像的生成过程,如数据库系统、金融业务系统等。
首先,参见图1所示的一种服务镜像的生成方法流程图,该方法包括以下步骤:
步骤S100,接收服务镜像的生成指令;其中,生成指令中包括第一地址信息;第一地址信息用于获取服务镜像对应的服务代码。
上述生成指令可以包括待生成的服务镜像的标识,以表明该生成指令针对于哪个服务镜像。上述生成指令中还可以包括保存有服务镜像对应的服务代码的存储位置的地址信息。上述服务代码可以由相关工作人员预先编写后保存到上述存储位置中。上述存储地址可以为预先设置的数据库,如常见的Git代码库等。Git代码库中可以包括多个git分支,不同的git分支的命名不同,可以通过git分支的名称获取到对应的git分支保存的服务代码。如果Git代码库中包括多个保存有不同服务代码分支时,上述地址信息还需要包括保存有生成命令对应的服务镜像的服务代码的git分支的名称。可以理解的是,本发明对于存储位置并不限于上述举例。
上述服务代码可以为生成服务镜像所需要的所有的代码,也可以为对已有的部分具有错误的代码进行修复而生成的代码,也可以为增加服务镜像的服务内容而生成的代码,与已有的服务代码作为两个不同的服务代码版本。由于生成设定的服务镜像的部分代码已经固定,为了使存储代码具有重复性,上述服务代码通常为修复代码或更新代码。
步骤S102,根据第一地址信息获取服务代码,将服务代码保存至预设的目标虚拟机中。
具体而言,可以按照第一地址信息中指示的保存服务代码的数据库的地址,以及对应的服务代码的保存位置,读取生成指令中的服务镜像对应的服务代码。
上述目标虚拟机可以为模拟上述服务镜像对应的服务系统环境的虚拟机。该目标虚拟机可以通过预先确定的代码模板(也称为虚拟机模板)生成,该代码模板通常为生成设定的服务镜像的代码中已经固定的部分代码。在一些情形下,如对对应的服务系统的基础结构进行更新时,获取到的服务代码的历史版本可能已经保存在上述代码模板中;需要首先删除代码模板中的该服务代码的历史版本,再生成目标虚拟机。
在生成目标虚拟机后,可以通过运行该目标虚拟机的物理机(也称为宿主机)与目标虚拟机建立通信连接,以确保该虚拟机是正常运行的。当确定虚拟机能够正常运行后,可以将获取到的服务代码保存到目标虚拟机中,保存位置可以预先设定。
步骤S104,根据保存有服务代码的目标虚拟机,生成服务镜像。
具体而言,首先需要关闭已经生成的目标虚拟机,然后将保存有服务代码的目标虚拟机转换为镜像文件的格式,如ISO、BIN或IMG,并将生成的镜像文件确定为生成指令所对应的服务镜像。最后,还可以把生成的服务镜像保存至预设的镜像服务器中,以便于其他用户通过镜像服务器获取该服务镜像。
上述一种服务镜像的生成方法,首先接收服务镜像的生成指令,然后根据生成指令中的第一地址信息获取服务镜像对应服务代码,将服务代码保存至预设的目标虚拟机中;进而根据保存有服务代码的目标虚拟机,生成服务镜像。该方式中,接收到服务镜像的生成指令后,通过指令中的地址信息获取服务镜像对应的服务代码,并基于保存该服务代码的目标虚拟机生成服务镜像,该过程无需人工操作,降低了生成服务镜像过程的人力成本及时间成本,避免了人工操作而可能产生的错误,提高了服务镜像的可靠性。
本发明实施例还提供了另一种服务镜像的生成方法,该方法在上述方法实施例的基础上实现;该方法重点描述当生成指令中包括用于与目标虚拟机建立通信连接的第二地址信息时,将服务代码保存至预设的目标虚拟机中的具体实现过程(通过下述步骤S208-S212实现),以及根据保存有服务代码的目标虚拟机,生成服务镜像的具体实现过程(通过下述步骤S214-S216实现);如图2所示,该方法包括以下步骤:
步骤S200,接收服务镜像的生成指令;其中,生成指令中包括第一地址信息、第二地址信息及第三地址信息;第一地址信息用于获取服务镜像对应的服务代码;第二地址信息用于与目标虚拟机建立通信连接;第三地址信息用于保存生成的服务镜像。
上述第一地址信息、第二地址信息及第三地址信息均可以为相关人员提前设定的。上述第二地址信息可以为预先设置的目标虚拟机的IP(Internet Protocol,网际互连协议)地址;上述第三地址信息可以为保存服务镜像的数据库或者服务器的IP地址。
步骤S202,根据第一地址信息获取服务代码。
步骤S204,查询预设的目标虚拟机中是否保存有服务代码对应的历史版本代码;如果保存有服务代码对应的历史版本代码,执行步骤S206;如果没有保存服务代码对应的历史版本代码,执行步骤S208。
当上述服务代码用于对某些旧代码进行修复或替换时,这些旧代码(即上述历史版本代码)可能已经存在于预设的目标虚拟机中。上述第一地址信息中可以包括服务代码的版本信息,根据该版本信息可以查找目标虚拟机中是否保存有服务代码对应的历史版本代码。
步骤S206,从目标虚拟机中删除历史版本代码;当在目标虚拟机中查找到上述服务代码对应的历史版本代码时,删除目标虚拟机中的历史版本代码。
步骤S208,根据预设的虚拟机模板,启动目标虚拟机。
上述虚拟机模板可以包括生成服务镜像对应的服务的系统的代码,这些代码通常为服务镜像对应的代码中已经固定的部分,可以通过这些代码生成目标虚拟机。
步骤S210,根据第二地址信息,与目标虚拟机建立通信连接;当第二地址信息为预先设置的目标虚拟机的IP地址时,可以通过执行当前方法的设备与目标虚拟机建立通信连接;运行目标虚拟机的物理机也可以作为执行当前方法的设备,此时通过该物理机与目标虚拟机进行通信连接。
步骤S212,通信连接建立成功后,将服务代码保存至目标虚拟机中。
当与目标虚拟机通信连接建立成功后,可以确定目标虚拟机在正常运行,此时可以将服务代码保存至目标虚拟机中的设定位置。
步骤S214,关闭目标虚拟机。
步骤S216,将保存有服务代码的目标虚拟机,转换为服务镜像;该过程通常为:将目标虚拟机的所有代码保存为镜像文件的格式,将生成的镜像文件确定为服务镜像。
步骤S218,将生成的服务镜像保存至第三地址信息对应的位置;第三地址信息可以为相关技术人员预先设定的,通常为数据库地址或者镜像服务器地址。
步骤S220,获取生成的服务镜像,并基于该服务镜像创建服务虚拟机。其中,该服务虚拟机中运行有服务镜像对应的服务。
在具体实现时,可以从第三地址信息中获取当前生成的服务镜像,并根据该服务镜像创建服务虚拟机,用户登录该虚拟服务机后,可以通过该服务虚拟机接收来自用户的服务请求,并向用户提供相应的服务,该服务也即是服务虚拟机中运行的服务镜像对应的服务。
上述一种服务镜像的生成方法,在接收服务镜像的生成指令后,查询预设的目标虚拟机中是否保存有服务代码对应的历史版本代码,如果有,则删除历史版本代码;然后根据第一地址信息获取服务代码,并根据预设的虚拟机模板,启动目标虚拟机,与目标虚拟机成功建立通信连接后,将服务代码保存至该目标虚拟机中;再关闭目标虚拟机,将保存有服务代码的目标虚拟机,转换为服务镜像,并将服务镜像保存至预设的地址。该方式通过地址信息获取服务镜像对应的服务代码,并通过现有的与该服务镜像对应的目标虚拟机保存服务代码,从而生成包括该服务代码的服务镜像,降低了生成服务镜像过程的人力成本及时间成本,减少了人为错误的产生,从而提高了服务镜像的可靠性。
本发明实施例还提供了另一种服务镜像的生成方法,该方法在上述方法实施例的基础上实现。该方法利用Jenkins开源工具创建任务流,只需要第一次相关工作人员配置好任务流,后期可以通过点击可以激发任务流运行的按钮就能用最新的服务代码生成一个新镜像,对人员技术水平无要求,同时也避免手动替换代码人为失误引入问题。
在实现该方法之前,相关人员需要进行编程操作:
(1)首先在Jenkins中构建start_build_database作为任务流的开始;
在Jekins中构建工作流start_build_database作为任务流的开始,并配置任务流主要的参数,例如:镜像自动生成后最终地址(在代码中可以以UPLOAD_PATH表示)、代码库的git地址(在代码中可以以TROVE_GIT_URL表示)、代码所在git分支(在代码中可以以BUILD_PROJECT_BRANCH表示)、制作镜像时生成虚拟机IP地址(在代码中可以以TROVE_INSTANCE表示)。
进一步,可以定义build_database_image_248_job作为最终的镜像制作任务,并通过下述代码将这些参数传递至镜像制作任务中:
String folderPath=“image/strove-images/”+new Data().format(‘yyyyMMddHHmmss’);
parallel(
{build(“build_database_image_248_job”,
TROVE_GIT_URL:“git@newgit.op.ksyun.com:kingstack/trove.git”
MONITOR__GIT_URL:“git@newgit.op.ksyun.com:kingstack/monitor_service.git”
BUILD_PROJECT_BRANCH:“master”,
TROVE_INSTANCE:“172.16.12.5”,
UP LOAD_PATH:folderPath)}
)
(2)配置工作流build_database_image_248(即上述镜像制作任务)的参数:
指定任务流指定运行的服务器地址(也可以运行虚拟机上)这里选择的是build_database_image_248节点,填写节点IP地址、账户以及密码,主要内容如下表1所示:
表1
Name(名称) | build_database_image_248_job |
描述 | |
#of excutors | 1 |
远程工作目录 | /jenkins/workspace |
标签 | build_database_image_248_job |
用法 | 只允许运行绑定到这台机器的job |
启动方法 | Launch slave agents on Unix machines via SSH |
3、编写build_database_image_248_job任务需要执行的代码流程,通过该代码实现的服务镜像生成过程即为本发明实施例提供的服务镜像的生成方法;该代码流程具体如下:
(1)首先判断是否有服务镜像对应的旧代码(相当于上述实施例中的历史版本服务代码),如果有,删除该旧代码。
(2)从git代码库下载指定git分支最新代码;在该过程中用到了git代码库的地址TROVE_GIT_URL的配置值和最新代码所在git分支BUILD_PROJECT_BRANCH的配置值(相当于上述实施例中的第一地址消息)。上述最新代码还可以为想要指定的git分支的历史版本的代码,可以通过将BUILD_PROJECT_BRANCH的配置值设定为对应历史版本的代码的git分支来实现。
(3)根据已经定义好的虚拟机模板启动虚拟机;该虚拟机模板可以为可以实现服务镜像的系统的基础模板,通过该虚拟机模板可以创建实现服务镜像的系统的虚拟机。
(4)等待60s后,通过运行该虚拟机的物理机(也称为宿主机)Ping该虚拟机的IP(相当于上述实施例中的与目标虚拟机建立通信连接步骤)。上述虚拟机的IP为在配置任务流参数时,配置的制作镜像时生成虚拟机IP地址(相当于上述实施例的第二地址信息)。如果能够与该虚拟机建立通信连接(即Ping通),说明该虚拟机可用;如果不能与该虚拟机建立通信连接(即Ping不通),可以以预设的频率多次Ping该虚拟机的IP,如果在预设的次数后,仍无法与该虚拟机建立通信连接,需要结束当前操作,执行对连接网络进行检查等操作。
(5)当与该虚拟机建立通信连接后,可以将下载的git分支的最新代码拷贝到创建好的虚拟机的对应的代码位置(虚拟机的代码可以由Python编程语言编写)。
(6)关闭虚拟机。
(7)等待虚拟机关机成功后,将虚拟机转化为新镜像模板,即生成新的服务镜像。
(8)将新镜像模板保存拷贝到存放镜像的位置;该位置可以对应与上述镜像自动生成后最终地址UP LOAD_PATH的配置值(相当于上述实施例的第三地址消息)。
在上述代码流程实现后,当使用者需要生成新的服务镜像时,仅需要点击生成按钮(通常按钮标志为build),可以生成新的服务镜像。
上述方法利用Jenkins开源工具便捷提供图形界面,编写自己要实现的代码流程,编程者无需书写所有代码,通知配置了任务流参数及逻辑,便可以提供一个省时便捷的图形界面用于生成镜像工具;并且,该方法将多个版本的git分支保存在git数据库中,如果需要将服务镜像回退到之前版本,只需要修改git分支参数即可。
对应于上述服务镜像的生成方法实施例,本发明实施例还提供一种服务镜像的生成装置,如图3所示,该装置包括:
指令接收模块300,用于接收服务镜像的生成指令;其中,生成指令中包括第一地址信息;第一地址信息用于获取服务镜像对应的服务代码;
服务代码保存模块302,用于根据第一地址信息获取服务代码,将服务代码保存至预设的目标虚拟机中;
服务镜像生成模块304,用于根据保存有服务代码的目标虚拟机,生成服务镜像。
上述一种服务镜像的生成装置,首先接收服务镜像的生成指令,然后根据生成指令中的第一地址信息获取服务镜像对应服务代码,将服务代码保存至预设的目标虚拟机中;进而根据保存有服务代码的目标虚拟机,生成服务镜像。该方式通过地址信息获取服务镜像对应的服务代码,并基于保存该服务代码的目标虚拟机生成服务镜像,该过程无需人工操作,降低了生成服务镜像过程的人力成本及时间成本,同时提高了服务镜像的可靠性。
进一步地,上述生成指令还包括第二地址信息;第二地址信息用于与目标虚拟机建立通信连接;上述服务代码保存模块还用于:根据预设的虚拟机模板,启动目标虚拟机;根据第二地址信息,与目标虚拟机建立通信连接;通信连接建立成功后,将服务代码保存至目标虚拟机中。
进一步地,上述服务镜像生成模块还用于:关闭目标虚拟机;将保存有服务代码的目标虚拟机,转换为服务镜像。
进一步地,上述生成指令还包括第三地址信息;第三地址信息用于保存生成的服务镜像;上述装置还包括:服务镜像保存模块,用于将生成的服务镜像保存至第三地址信息对应的位置。
进一步地,上述装置还包括:代码查询模块,用于查询目标虚拟机中是否保存有服务代码对应的历史版本代码;代码删除模块,用于如果保存有服务代码对应的历史版本代码,从目标虚拟机中删除历史版本代码。
进一步地,上述装置还包括虚拟机创建模块,用于:获取生成的服务镜像;基于该服务镜像创建服务虚拟机;其中,服务虚拟机中运行有服务镜像对应的服务。
具体地,上述装置还包括服务提供模块,用于:通过服务虚拟机接收来自用户的服务请求,并向用户提供服务。
本发明实施例所提供的服务镜像的生成装置,其实现原理及产生的技术效果和前述服务镜像的生成方法实施例相同,为简要描述,服务镜像的生成装置实施例部分未提及之处,可参考前述服务镜像的生成方法实施例中相应内容。
本发明实施例还提供了一种电子设备,参见图4所示,该电子设备包括处理器130和存储器131,该存储器131存储有能够被处理器130执行的机器可执行指令,该处理器130执行机器可执行指令以实现服务镜像的生成方法。
进一步地,图4所示的电子设备还包括总线132和通信接口133,处理器130、通信接口133和存储器131通过总线132连接。
其中,存储器131可能包含高速随机存取存储器(RAM,Random Access Memory),也可能还包括非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。通过至少一个通信接口133(可以是有线或者无线)实现该系统网元与至少一个其他网元之间的通信连接,可以使用互联网,广域网,本地网,城域网等。总线132可以是ISA总线、PCI总线或EISA总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图4中仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。
处理器130可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器130中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器130可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(DigitalSignal Processing,简称DSP)、专用集成电路(Application Specific IntegratedCircuit,简称ASIC)、现成可编程门阵列(Field-Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器131,处理器130读取存储器131中的信息,结合其硬件完成前述实施例的方法的步骤。
本发明实施例还提供了一种机器可读存储介质,该机器可读存储介质存储有机器可执行指令,该机器可执行指令在被处理器调用和执行时,该机器可执行指令促使处理器实现上述服务镜像的生成方法,具体实现可参见方法实施例,在此不再赘述。
本发明实施例所提供的服务镜像的生成方法及装置和电子设备的计算机程序产品,包括存储了程序代码的计算机可读存储介质,所述程序代码包括的指令可用于执行前面方法实施例中所述的方法,具体实现可参见方法实施例,在此不再赘述。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上所述实施例,仅为本发明的具体实施方式,用以说明本发明的技术方案,而非对其限制,本发明的保护范围并不局限于此,尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的精神和范围,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。
Claims (10)
1.一种服务镜像的生成方法,其特征在于,所述方法包括:
接收服务镜像的生成指令;其中,所述生成指令中包括第一地址信息;所述第一地址信息用于获取所述服务镜像对应的服务代码;
根据所述第一地址信息获取所述服务代码,将所述服务代码保存至预设的目标虚拟机中;
根据保存有所述服务代码的所述目标虚拟机,生成所述服务镜像。
2.根据权利要求1所述的方法,其特征在于,所述生成指令还包括第二地址信息;所述第二地址信息用于与所述目标虚拟机建立通信连接;
所述将所述服务代码保存至预设的目标虚拟机中的步骤,包括:
根据预设的虚拟机模板,启动所述目标虚拟机;
根据所述第二地址信息,与所述目标虚拟机建立通信连接;
所述通信连接建立成功后,将所述服务代码保存至所述目标虚拟机中。
3.根据权利要求1所述的方法,其特征在于,根据保存有所述服务代码的所述目标虚拟机,生成所述服务镜像的步骤,包括:
关闭所述目标虚拟机;
将保存有所述服务代码的所述目标虚拟机,转换为所述服务镜像。
4.根据权利要求1所述的方法,其特征在于,所述生成指令还包括第三地址信息;所述第三地址信息用于保存生成的所述服务镜像;
所述生成所述服务镜像的步骤之后,所述方法还包括:将生成的所述服务镜像保存至所述第三地址信息对应的位置。
5.根据权利要求1所述的方法,其特征在于,所述将所述服务代码保存至预设的目标虚拟机中步骤之前,所述方法还包括:
查询预设的目标虚拟机中是否保存有所述服务代码对应的历史版本代码;
如果保存有所述服务代码对应的历史版本代码,从所述目标虚拟机中删除所述历史版本代码。
6.根据权利要求1所述的方法,其特征在于,生成所述服务镜像的步骤之后,所述方法还包括:
获取生成的所述服务镜像;
基于所述服务镜像创建服务虚拟机;其中,所述服务虚拟机中运行有所述服务镜像对应的服务。
7.根据权利要求6所述的方法,其特征在于,基于所述服务镜像创建服务虚拟机的步骤之后,所述方法还包括:
通过所述服务虚拟机接收来自用户的服务请求,并向所述用户提供所述服务。
8.一种服务镜像的生成装置,其特征在于,所述装置包括:
指令接收模块,用于接收服务镜像的生成指令;其中,所述生成指令中包括第一地址信息;所述第一地址信息用于获取所述服务镜像对应的服务代码;
服务代码保存模块,用于根据所述第一地址信息获取所述服务代码,将所述服务代码保存至预设的目标虚拟机中;
服务镜像生成模块,用于根据保存有所述服务代码的所述目标虚拟机,生成所述服务镜像。
9.一种电子设备,其特征在于,包括处理器和存储器,所述存储器存储有能够被所述处理器执行的机器可执行指令,所述处理器执行所述机器可执行指令以实现权利要求1至7任一项所述的方法。
10.一种机器可读存储介质,其特征在于,所述机器可读存储介质存储有机器可执行指令,所述机器可执行指令在被处理器调用和执行时,所述机器可执行指令促使所述处理器实现权利要求1至7任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010526560.6A CN111679890A (zh) | 2020-06-10 | 2020-06-10 | 服务镜像的生成方法、装置及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010526560.6A CN111679890A (zh) | 2020-06-10 | 2020-06-10 | 服务镜像的生成方法、装置及电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111679890A true CN111679890A (zh) | 2020-09-18 |
Family
ID=72435333
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010526560.6A Pending CN111679890A (zh) | 2020-06-10 | 2020-06-10 | 服务镜像的生成方法、装置及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111679890A (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107766126A (zh) * | 2017-11-15 | 2018-03-06 | 腾讯科技(深圳)有限公司 | 容器镜像的构建方法、系统、装置及存储介质 |
CN109358858A (zh) * | 2018-09-19 | 2019-02-19 | 网易(杭州)网络有限公司 | 自动化部署方法、装置、介质及电子设备 |
CN109688180A (zh) * | 2017-10-19 | 2019-04-26 | 阿里巴巴集团控股有限公司 | 一种基于镜像的云服务软件升级方法和装置 |
CN110825399A (zh) * | 2019-11-07 | 2020-02-21 | 郑州悉知信息科技股份有限公司 | 一种应用程序的部署方法及装置 |
-
2020
- 2020-06-10 CN CN202010526560.6A patent/CN111679890A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109688180A (zh) * | 2017-10-19 | 2019-04-26 | 阿里巴巴集团控股有限公司 | 一种基于镜像的云服务软件升级方法和装置 |
CN107766126A (zh) * | 2017-11-15 | 2018-03-06 | 腾讯科技(深圳)有限公司 | 容器镜像的构建方法、系统、装置及存储介质 |
CN109358858A (zh) * | 2018-09-19 | 2019-02-19 | 网易(杭州)网络有限公司 | 自动化部署方法、装置、介质及电子设备 |
CN110825399A (zh) * | 2019-11-07 | 2020-02-21 | 郑州悉知信息科技股份有限公司 | 一种应用程序的部署方法及装置 |
Non-Patent Citations (1)
Title |
---|
丁俊 等: "《计算机操作系统安装与维护》", 成都:西南交通大学出版社, pages: 34 - 35 * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4524113B2 (ja) | ソフトウェア配布方法およびシステム | |
CN113127347B (zh) | 一种接口测试方法、装置、设备及可读存储介质 | |
CN111158674A (zh) | 组件管理方法、系统、设备及存储介质 | |
CN109284106A (zh) | 业务规则的发布管理方法、电子装置及可读存储介质 | |
CN109753289B (zh) | 一种美术资源合并方法、装置、电子设备和存储介质 | |
CN111932207A (zh) | 项目数据处理方法、装置、计算机设备和存储介质 | |
CN111459509A (zh) | 容器镜像的构建方法、装置和服务器 | |
CN110727575A (zh) | 一种信息处理方法、系统、装置、以及存储介质 | |
JP4601632B2 (ja) | 仕様の追跡可能性を根拠とするプロジェクト管理システム及び仕様変更管理プログラム | |
CN111158730A (zh) | 系统更新方法、装置、电子设备和可读存储介质 | |
CN111651358A (zh) | 生成测试用例的方法、软件测试方法、装置和服务器 | |
CN117312270A (zh) | 一种数据库自动化构建和部署的变更管理方法 | |
CN115509515A (zh) | 一种组件重用方法、装置、电子设备和存储介质 | |
CN111522729A (zh) | 规则发布的确定方法、装置及系统 | |
CN110737426B (zh) | 程序块创建方法、装置、计算机设备和存储介质 | |
WO2017036197A1 (zh) | 一种网元模型管理方法及装置 | |
CN111679890A (zh) | 服务镜像的生成方法、装置及电子设备 | |
US8612964B2 (en) | Migrating unified modeling language models across unified modeling language profiles | |
CN111338644A (zh) | 任务脚本部署方法及系统 | |
CN113672269B (zh) | 数据处理方法、系统、电子设备及程序产品 | |
CN110874316A (zh) | 扫描代码的方法、装置和系统 | |
CN112367205B (zh) | 一种对http调度请求的处理方法及调度系统 | |
JPWO2018174223A1 (ja) | 運用管理サーバ、開発運用支援システム、それらの方法及びプログラム | |
JP6677345B2 (ja) | 開発運用支援システム、開発管理サーバ、運用管理サーバ、それらの方法及びプログラム | |
JP2006302066A (ja) | リモート実行機能を備えたメンテナンスシステムおよびその方法 |
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 |
Application publication date: 20200918 |
|
RJ01 | Rejection of invention patent application after publication |