发明内容
基于此,有必要针对上述技术问题,提供一种不需要开发人员编写容器化部署文件,容器化部署时间短的容器化部署的方法、装置、计算机设备和存储介质。
第一方面,本申请提供了一种容器化部署的方法。所述方法包括:
获取修改代码,基于所述修改代码生成制品包,并根据所述制品包确定初始流水线;
根据所述制品包确定目标容器化组件,并根据所述目标容器化组件和所述初始流水线确定容器化流水线;
执行所述容器化流水线,以进行所述制品包的容器化部署。
在其中一个实施例中,所述根据所述制品包确定初始流水线,包括:
接收所述制品包的子系统类型;
根据所述子系统类型在多个预设流水线中,确定初始流水线。
在其中一个实施例中,所述根据所述子系统类型在多个预设流水线中,确定初始流水线,包括:
在多个预设流水线中,确定所述子系统类型对应的默认流水线,其中,所述默认流水线包括多个默认组件;
基于所述多个默认组件,新增若干预设组件,和/或删除若干默认组件,得到初始流水线。
在其中一个实施例中,所述根据所述制品包确定目标容器化组件,包括:
接收所述制品包的子系统类型;
在多个预设目标容器化组件中,选取所述子系统类型对应的目标容器化组件。
在其中一个实施例中,所述目标容器化组件包括:目标组合镜像组件;所述执行所述容器化流水线,进行所述制品包的容器化部署,包括:
执行所述目标组合镜像组件,将所述制品包写入基础镜像的运行目录中,得到完整镜像包;
运行所述完整镜像包,以进行所述制品包的容器化部署。
在其中一个实施例中,所述目标容器化组件还包括:目标推送镜像组件;所述执行所述目标组合镜像组件,将所述制品包写入基础镜像的运行目录中,得到完整镜像包之后,还包括:
根据所述完整镜像包和所述目标推送镜像组件,将所述完整镜像包推送至镜像仓库。
第二方面,本申请还提供了一种容器化部署的装置。所述装置包括:
初始流水线确定模块,用于获取修改代码,基于所述修改代码生成制品包,并根据所述制品包确定初始流水线;
容器化流水线确定模块,用于根据所述制品包确定目标容器化组件,并根据所述目标容器化组件和所述初始流水线确定容器化流水线;
容器化部署模块,用于执行所述容器化流水线,以进行所述制品包的容器化部署。
第三方面,本申请还提供了一种计算机设备。所述计算机设备包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
获取修改代码,基于所述修改代码生成制品包,并根据所述制品包确定初始流水线;
根据所述制品包确定目标容器化组件,并根据所述目标容器化组件和所述初始流水线确定容器化流水线;
执行所述容器化流水线,以进行所述制品包的容器化部署。
第四方面,本申请还提供了一种计算机可读存储介质。所述计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
获取修改代码,基于所述修改代码生成制品包,并根据所述制品包确定初始流水线;
根据所述制品包确定目标容器化组件,并根据所述目标容器化组件和所述初始流水线确定容器化流水线;
执行所述容器化流水线,以进行所述制品包的容器化部署。
第五方面,本申请还提供了一种计算机程序产品。所述计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现以下步骤:
获取修改代码,基于所述修改代码生成制品包,并根据所述制品包确定初始流水线;
根据所述制品包确定目标容器化组件,并根据所述目标容器化组件和所述初始流水线确定容器化流水线;
执行所述容器化流水线,以进行所述制品包的容器化部署。
上述容器化部署的方法、装置、计算机设备、存储介质和计算机程序产品,通过制品包对应的初始流水线,实现将应用部署至虚拟机,在初始流水线上增加目标容器化组件,目标容器化组件是预先编写的,通过目标容器化组件实现镜像的打包和部署,所述容器化部署的方法,开发人员不需要学习任何docker容器镜像、镜像仓库、kubernetes集群等知识,不需要执行构建镜像文件、配置文件等容器化操作,只需要调用目标容器化组件,就可以实现容器化部署,对开发人员的专业技能要求较低,并且省去了构建镜像文件、配置文件等容器化操作,缩短了容器化部署的时长,对于企业需要将大量的虚拟机部署转型至容器化部署的应用场景,只需要预先编写目标容器化组件的时间,极大减少了企业的容器化部署周期。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
在一个实施例中,如图1所示,提供了一种容器化部署的方法,本实施例以该方法应用于终端进行举例说明,可以理解的是,该方法也可以应用于服务器,还可以应用于包括终端和服务器的系统,并通过终端和服务器的交互实现。本实施例中,该方法包括以下步骤:
S101,获取修改代码,基于所述修改代码生成制品包,并根据所述制品包确定初始流水线。
其中,所述修改代码为应用开发过程中,开发人员提交的代码,所述修改代码可以为在保持原代码不变的基础上新增的代码,所述修改代码还可以用于替换原代码,以实现原代码所实现的功能。所述制品包可以是应用的全量包,也可以是应用的增量包。
具体地,获取修改代码,确定修改代码对应的应用,在数据库中获取应用的模块代码、安装脚本、接口定义和配置参数,根据应用的模块代码、安装脚本、接口定义和配置参数生成制品包。获取制品包的子系统类型,根据子系统类型确定初始流水线,执行所述初始流水线,用于实现将应用部署至虚拟机。
S102,根据所述制品包确定目标容器化组件,并根据所述目标容器化组件和所述初始流水线确定容器化流水线。
其中,所述目标容器化组件用于实现应用的容器化部署。
具体地,所述初始流水线包括用于将应用部署至虚拟机的多个组件,在初始流水线的基础上增加预设的目标容器化组件;根据所述制品包的子系统类型确定目标容器化组件;所述目标容器化组件可以由运维人员或者专业人员设计制作,所述目标容器化组件支持shell执行、http接口调用、输入输出接口定义,以及返回json格式,便于增加到初始流水线中,实现组件之间的前后的依赖。在忽视流水线的基础上增加预设的目标容器化组件,可以将部署至虚拟机的应用,无缝衔接到容器化部署。
S103,执行所述容器化流水线,以进行所述制品包的容器化部署。
具体地,执行所述容器化流水线,以将所述制品包写入基础镜像的运行目录中,得到完整镜像包,运行所述完整镜像包,以实现容器化部署。
上述容器化部署的方法中,通过制品包对应的初始流水线,实现将应用部署至虚拟机,在初始流水线上增加目标容器化组件,目标容器化组件是预先编写的,通过目标容器化组件实现镜像的打包和部署,所述容器化部署的方法,开发人员不需要学习任何docker容器镜像、镜像仓库、kubernetes集群等知识,不需要执行构建镜像文件、配置文件等容器化操作,只需要调用目标容器化组件,就可以实现容器化部署,对开发人员的专业技能要求较低,并且省去了构建镜像文件、配置文件等容器化操作,缩短了容器化部署的时长,对于企业需要将大量的虚拟机部署转型至容器化部署的应用场景,只需要预先编写目标容器化组件的时间,极大减少了企业的容器化部署周期。
在一个实施例中,S101中,所述根据所述制品包确定初始流水线,包括:
S111,接收所述制品包的子系统类型。
具体地,根据前端、后端和开发语言的种类确定子系统类型,子系统类型为Java后端。预先开发容器化部署页面,在容器化部署页面,可以接收开发人员输入的子系统类型。
S112,根据所述子系统类型在多个预设流水线中,确定初始流水线。
具体地,预先为多个子系统类型配置预设流水线,子系统类型对应的预设流水线中包括子系统对应的多个默认组件,多个默认组件用于实现将制品包部署至虚拟机的各个过程。
通过容器化部署页面,接收制品包的环境、子系统、编辑初始流水线名称、编辑初始流水线说明等,根据制品包的子系统,以及多个预设流水线,确定初始流水线。
在一个实施例中,S112包括:
S1121,在多个预设流水线中,确定所述子系统类型对应的默认流水线。
其中,所述默认流水线包括多个默认组件。
具体地,预先编写多个预设组件,所述多个预设组件包括:获取版本组件、代码扫描组件、版本比较组件、代码构建组件、执行DDL组件、执行DML组件、修改文件配置组件、执行shell组件、自动化测试组件、更新部署组件等用于将制品包部署至虚拟机的组件。对于任一子系统类型,在多个预设组件中确定任一子系统类型对应的若干组件,并得到任一子系统类型对应的预设流水线,得到与多个子系统类型一一对应的多个预设流水线。
通过容器化部署页面,接收制品包的子系统类型,在多个预设流水线中选取制品包的子系统类型对应的默认流水线,可以快速得到子系统类型对应的默认流水线。
S1122,基于所述多个默认组件,新增若干预设组件,和/或删除若干默认组件,得到初始流水线。
具体地,若需要对默认流水线进行修改,可以根据需求删除初始流水线中的若干默认组件,以及增加若干预设组件,得到初始流水线。
在一种实现方式中,如图2所示,通过容器化部署页面接收制品包的环境、子系统类型,初始流水线名称、初始流水线说明,根据子系统类型确定默认流水线,在容器化部署页面中展示默认流水线,具体为按照顺序展示默认流水线中包括的多个默认组件;所述容器化部署页面还显示组件列表,所述组件列表包括所有预设组件,所有预设组件可以按照执行顺序显示,处于默认流水线中的默认组件,可以区别显示于非默认组件(不处于默认流水线中的预设组件);通过容器化部署页面新增提若干预设组件,和/或删除若干默认组件;每个组件均携带有执行顺序,在新增预设组件时,根据预设组件的执行顺序,以及默认流水线中的执行顺序,将新增的预设组件加入默认流水线中。
在一个实施例中,S102中,所述根据所述制品包确定目标容器化组件,包括:
S211,接收所述制品包的子系统类型,在多个预设目标容器化组件中,选取所述子系统类型对应的目标容器化组件。
具体地,所述多个预设目标容器化组件,是运维人员或者其他专业人员,根据多个子系统类型进行适配开发得到;通过容器化部署页面,接收子系统类型,再在多个预设目标容器化组件中,选取所述制品包的子系统类型所对应的目标容器化组件。
在一个实施例中,所述预设的目标容器化组件包括:目标组合镜像组件;S103包括:
S311,执行所述目标组合镜像组件,将所述制品包写入基础镜像的运行目录中,得到完整镜像包。
具体地,所述目标组合镜像组件用于将所述制品包写入基础镜像的运行目录,组合打包得到完整镜像包。所述目标组合镜像组件包括基础镜像脚本,在所述基础镜像脚本存在安全漏洞,或者需要升级时,可以直接修改基础镜像脚本。而现有技术在基础镜像需要修改时,需要从代码层,重新构建打包新的镜像,比较耗时。
S312,运行所述完整镜像包,以进行所述制品包的容器化部署。
具体地,运行所述完整镜像包,以创建并运行应用的容器引擎,实现最终的容器化部署。开发人员不需要根据制品包编写代码,得到完整镜像包,相对于目前的容器化部署方法,少一次代码重新编译的过程,节约了时间,开发人员可以按照虚拟机部署的方式生成制品包,在初始流水线中增加目标组合镜像组件,则可以得到容器化部署所需的完整镜像包,也不要求开发人员掌握容器化部署相关的专业技能。
在一个实施例中,所述预设的目标容器化组件还包括:目标推送镜像组件;相应地,S311之后还包括:
S313,根据所述完整镜像包和所述目标推送镜像组件,将所述完整镜像包推送至镜像仓库。
具体地,所述目标推送镜像组件,用于实现将完整镜像包推送至镜像仓库。
本实施例中,通过制品包对应的初始流水线,实现将应用部署至虚拟机,在初始流水线上增加目标容器化组件,目标容器化组件是预先编写的,通过目标容器化组件实现镜像的打包和部署,所述容器化部署的方法,开发人员不需要学习任何docker容器镜像、镜像仓库、kubernetes集群等知识,不需要执行构建镜像文件、配置文件等容器化操作,只需要调用目标容器化组件,就可以实现容器化部署,对开发人员的专业技能要求较低,并且省去了构建镜像文件、配置文件等容器化操作,缩短了容器化部署的时长,对于企业需要将大量的虚拟机部署转型至容器化部署的应用场景,只需要预先编写目标容器化组件的时间,极大减少了企业的容器化部署周期。
应该理解的是,虽然如上所述的各实施例所涉及的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,如上所述的各实施例所涉及的流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
基于同样的发明构思,本申请实施例还提供了一种用于实现上述所涉及的容器化部署的方法的容器化部署的装置。该装置所提供的解决问题的实现方案与上述方法中所记载的实现方案相似,故下面所提供的容器化部署的装置实施例中的具体限定可以参见上文中对于容器化部署的方法的限定,在此不再赘述。
在一个实施例中,如图3所示,提供了一种容器化部署的装置,包括:
初始流水线确定模块,用于获取修改代码,基于所述修改代码生成制品包,并根据所述制品包确定初始流水线;
容器化流水线确定模块,用于根据所述制品包确定目标容器化组件,并根据所述目标容器化组件和所述初始流水线确定容器化流水线;
容器化部署模块,用于执行所述容器化流水线,以进行所述制品包的容器化部署。
在一个实施例中,所述初始流水线确定模块,包括:
子系统类型确定单元,用于接收所述制品包的子系统类型;
初始流水线确定单元,用于根据所述子系统类型在多个预设流水线中,确定初始流水线。
在一个实施例中,所述初始流水线确定单元,包括:
第一子单元,用于在多个预设流水线中,确定所述子系统类型对应的默认流水线,其中,所述默认流水线包括多个默认组件;
第二子单元,用于基于所述多个默认组件,新增若干预设组件,和/或删除若干默认组件,得到初始流水线。
在一个实施例中,所述容器化流水线确定模块,包括:
目标容器化组件确定单元,用于在多个预设目标容器化组件中,选取所述子系统类型对应的目标容器化组件。
在一个实施例中,所述目标容器化组件包括:目标组合镜像组件;所述容器化部署模块,包括:
完整镜像包确定单元,用于执行所述目标组合镜像组件,将所述制品包写入基础镜像的运行目录中,得到完整镜像包;
容器化部署单元,用于运行所述完整镜像包,以进行所述制品包的容器化部署。
在一个实施例中,所述目标容器化组件还包括:目标推送镜像组件,所述容器化部署模块,还包括:
推送单元,用于根据所述完整镜像包和所述目标推送镜像组件,将所述完整镜像包推送至镜像仓库。
上述容器化部署的装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是终端,其内部结构图可以如图4所示。该计算机设备包括通过系统总线连接的处理器、存储器、通信接口、显示屏和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的通信接口用于与外部的终端进行有线或无线方式的通信,无线方式可通过WIFI、移动蜂窝网络、NFC(近场通信)或其他技术实现。该计算机程序被处理器执行时以实现一种容器化部署的方法。该计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
本领域技术人员可以理解,图4中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现以下步骤:
获取修改代码,基于所述修改代码生成制品包,并根据所述制品包确定初始流水线;
根据所述制品包确定目标容器化组件,并根据所述目标容器化组件和所述初始流水线确定容器化流水线;
执行所述容器化流水线,以进行所述制品包的容器化部署。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:
所述根据所述制品包确定初始流水线,包括:
接收所述制品包的子系统类型;
根据所述子系统类型在多个预设流水线中,确定初始流水线。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:
所述根据所述子系统类型在多个预设流水线中,确定初始流水线,包括:
在多个预设流水线中,确定所述子系统类型对应的默认流水线,其中,所述默认流水线包括多个默认组件;
基于所述多个默认组件,新增若干预设组件,和/或删除若干默认组件,得到初始流水线。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:
所述根据所述制品包确定目标容器化组件,包括:
接收所述制品包的子系统类型;
在多个预设目标容器化组件中,选取所述子系统类型对应的目标容器化组件。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:
所述目标容器化组件包括:目标组合镜像组件;所述执行所述容器化流水线,进行所述制品包的容器化部署,包括:
执行所述目标组合镜像组件,将所述制品包写入基础镜像的运行目录中,得到完整镜像包;
运行所述完整镜像包,以进行所述制品包的容器化部署。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:
所述目标容器化组件还包括:目标推送镜像组件;所述执行所述目标组合镜像组件,将所述制品包写入基础镜像的运行目录中,得到完整镜像包之后,还包括:
根据所述完整镜像包和所述目标推送镜像组件,将所述完整镜像包推送至镜像仓库。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:
获取修改代码,基于所述修改代码生成制品包,并根据所述制品包确定初始流水线;
根据所述制品包确定目标容器化组件,并根据所述目标容器化组件和所述初始流水线确定容器化流水线;
执行所述容器化流水线,以进行所述制品包的容器化部署。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
所述根据所述制品包确定初始流水线,包括:
接收所述制品包的子系统类型;
根据所述子系统类型在多个预设流水线中,确定初始流水线。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
所述根据所述子系统类型在多个预设流水线中,确定初始流水线,包括:
在多个预设流水线中,确定所述子系统类型对应的默认流水线,其中,所述默认流水线包括多个默认组件;
基于所述多个默认组件,新增若干预设组件,和/或删除若干默认组件,得到初始流水线。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
所述根据所述制品包确定目标容器化组件,包括:
接收所述制品包的子系统类型;
在多个预设目标容器化组件中,选取所述子系统类型对应的目标容器化组件。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
所述目标容器化组件包括:目标组合镜像组件;所述执行所述容器化流水线,进行所述制品包的容器化部署,包括:
执行所述目标组合镜像组件,将所述制品包写入基础镜像的运行目录中,得到完整镜像包;
运行所述完整镜像包,以进行所述制品包的容器化部署。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
所述目标容器化组件还包括:目标推送镜像组件;所述执行所述目标组合镜像组件,将所述制品包写入基础镜像的运行目录中,得到完整镜像包之后,还包括:
根据所述完整镜像包和所述目标推送镜像组件,将所述完整镜像包推送至镜像仓库。
在一个实施例中,提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现以下步骤:
获取修改代码,基于所述修改代码生成制品包,并根据所述制品包确定初始流水线;
根据所述制品包确定目标容器化组件,并根据所述目标容器化组件和所述初始流水线确定容器化流水线;
执行所述容器化流水线,以进行所述制品包的容器化部署。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
所述根据所述制品包确定初始流水线,包括:
接收所述制品包的子系统类型;
根据所述子系统类型在多个预设流水线中,确定初始流水线。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
所述根据所述子系统类型在多个预设流水线中,确定初始流水线,包括:
在多个预设流水线中,确定所述子系统类型对应的默认流水线,其中,所述默认流水线包括多个默认组件;
基于所述多个默认组件,新增若干预设组件,和/或删除若干默认组件,得到初始流水线。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
所述根据所述制品包确定目标容器化组件,包括:
接收所述制品包的子系统类型;
在多个预设目标容器化组件中,选取所述子系统类型对应的目标容器化组件。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
所述目标容器化组件包括:目标组合镜像组件;所述执行所述容器化流水线,进行所述制品包的容器化部署,包括:
执行所述目标组合镜像组件,将所述制品包写入基础镜像的运行目录中,得到完整镜像包;
运行所述完整镜像包,以进行所述制品包的容器化部署。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
所述目标容器化组件还包括:目标推送镜像组件;所述执行所述目标组合镜像组件,将所述制品包写入基础镜像的运行目录中,得到完整镜像包之后,还包括:
根据所述完整镜像包和所述目标推送镜像组件,将所述完整镜像包推送至镜像仓库。
需要说明的是,本申请所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-OnlyMemory,ROM)、磁带、软盘、闪存、光存储器、高密度嵌入式非易失性存储器、阻变存储器(ReRAM)、磁变存储器(Magnetoresistive Random Access Memory,MRAM)、铁电存储器(Ferroelectric Random Access Memory,FRAM)、相变存储器(Phase Change Memory,PCM)、石墨烯存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器等。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic RandomAccess Memory,DRAM)等。本申请所提供的各实施例中所涉及的数据库可包括关系型数据库和非关系型数据库中至少一种。非关系型数据库可包括基于区块链的分布式数据库等,不限于此。本申请所提供的各实施例中所涉及的处理器可为通用处理器、中央处理器、图形处理器、数字信号处理器、可编程逻辑器、基于量子计算的数据处理逻辑器等,不限于此。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请的保护范围应以所附权利要求为准。