CN113434251B - 服务模块跨平台部署方法、装置及设备 - Google Patents
服务模块跨平台部署方法、装置及设备 Download PDFInfo
- Publication number
- CN113434251B CN113434251B CN202110712653.2A CN202110712653A CN113434251B CN 113434251 B CN113434251 B CN 113434251B CN 202110712653 A CN202110712653 A CN 202110712653A CN 113434251 B CN113434251 B CN 113434251B
- Authority
- CN
- China
- Prior art keywords
- yaml
- grammar
- target
- standard
- file
- 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.)
- Active
Links
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
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供了一种服务模块跨平台部署方法、装置及设备,方法包括以下步骤:获取各个容器管理平台的yaml语法关键字,并设置标准yaml语法关键字;设置一字典,包含各个容器管理平台的yaml语法关键字与标准yaml语法关键字的对应关系;获取各个容器管理平台的yaml模版文件;获取根据标准yaml语法关键字编写的源文件;利用所述字典和源文件对目标yaml模版文件进行渲染,得到适用于目标容器管理平台的目标文件。该方法使得只需要提供一套yaml文件,也可以实现跨平台使用。
Description
技术领域
本发明属于计算机应用技术领域,具体涉及服务模块跨平台部署方法、装置及设备。
背景技术
目前基于docker容器(docker是一个容器化集群管理工具)的容器管理平台方案呈现一超多强的局面,占有绝大多数市场份额的是kubernetes(kubernetes简称K8s,是用8代替8个字符“ubernete”而成的缩写,是一个开源的,管理云平台中多个主机上容器化的应用。Kubernetes的目标是让部署容器化的应用简单并且高效。Kubernetes提供了应用部署,规划,更新,维护等机制),其余占小份额的有swarm(swarm是docker公司开发的容器管理平台)、openshift(openshift是rehat(红帽)公司开发的容器管理平台)、rancher(rancher是rancher公司开发的容器管理平台),还有一些公有云厂商或者较大的企业基于kubernetes二次开发推出了自研的容器管理平台。
不同的容器管理平台虽然均采用yaml语法(yaml是一种文件书写格式,计算机程序容易通过这种格式文件识别到关键字)来对应用进行描述,但不同的平台中部署选项的关键字有差异,导致yaml文件无法跨平台使用。
因此用户公司在选型使用哪个产品时会出现困境,担心将来一旦选定某个产品会被其绑定,无法平滑切换到竞争对手的平台部署。
发明内容
针对现有技术中的缺陷,本发明提供一种服务模块跨平台部署方法、装置及设备,使得只需要提供一套yaml文件,也可以实现跨平台使用。
第一方面,一种服务模块跨平台部署方法,包括以下步骤:
获取各个容器管理平台的yaml语法关键字,并设置标准yaml语法关键字;
设置一字典,包含各个容器管理平台的yaml语法关键字与标准yaml语法关键字的对应关系;
获取各个容器管理平台的yaml模版文件;
获取根据标准yaml语法关键字编写的源文件;
利用所述字典和源文件对目标yaml模版文件进行渲染,得到适用于目标容器管理平台的目标文件。
优选地,所述设置标准yaml语法关键字,包括:
获取各个容器管理平台中yaml语法关键字的共性和差异;
根据所述共性和差异定义所述标准yaml语法关键字。
优选地,所述根据所述共性和差异定义所述标准yaml语法关键字,包括:
在所有共性的yaml语法关键字中,定义yaml语法关键字为所述标准yaml语法关键字;
在所有差异的yaml语法关键字中,定义字段长度最短且与其他标准yaml语法关键字不冲突的yaml语法关键字为所述标准yaml语法关键字。
优选地,所述字典中,多个yaml语法关键字同时对应同一个标准yaml语法关键字。
优选地,所述获取各个容器管理平台的yaml模版文件,包括:
接受编写指令,编写各个容器管理平台的yaml模版文件,所述yaml模版文件包括与yaml模版文件中yaml语法关键字的值位置相对应的占位符。
优选地,所述利用所述字典和源文件对目标yaml模版文件进行渲染前,包括:
接收选择指令,选择一容器管理平台作为目标容器管理平台;
调取目标容器管理平台对应的yaml模版文件作为目标yaml模版文件。
优选地,所述利用所述字典和源文件对目标yaml模版文件进行渲染,得到适用于目标容器管理平台的目标文件,包括:
使用目标yaml模版文件中的yaml语法关键字查找所述字典,得到字典中对应的标准yaml语法关键字;
使用字典中查找到的标准yaml语法关键字从所述源文件中提取标准yaml语法关键字的一个值;
使用提取到的一个值替换目标yaml模版文件中对应的占位符,得到所述目标文件。
优选地,所述利用所述字典和源文件对目标yaml模版文件进行渲染,得到适用于目标容器管理平台的目标文件,包括:
使用目标yaml模版文件中的yaml语法关键字查找所述字典,得到字典中对应的标准yaml语法关键字;
使用字典中查找到的标准yaml语法关键字从所述源文件中提取标准yaml语法关键字的多个值;
增加所述目标yaml模版文件中的占位符,直至所述占位符的数量与从所述源文件中提取到的值的数量相同;
使用提取到的多个值替换目标yaml模版文件中对应的占位符,得到所述目标文件。
第二方面,一种服务模块跨平台部署装置,包括:
关键字提取单元:用于获取各个容器管理平台的yaml语法关键字,并设置标准yaml语法关键字;
字典创建单元:用于设置一字典,包含各个容器管理平台的yaml语法关键字与标准yaml语法关键字的对应关系;
模板单元:用于获取各个容器管理平台的yaml模版文件;
转换单元:用于获取根据标准yaml语法关键字编写的源文件;利用所述字典和源文件对目标yaml模版文件进行渲染,得到适用于目标容器管理平台的目标文件。
第三方面,一种服务模块跨平台部署设备,包括处理器和存储器,所述处理器和存储器相互连接,其中,所述存储器用于存储计算机程序,所述计算机程序包括程序指令,所述处理器被配置用于调用所述程序指令,执行第一方面所述方法。
由上述技术方案可知,本发明提供的服务模块跨平台部署方法、装置及设备,定义了标准yaml语法关键字,并收录市场上绝大多数容器管理平台的yaml模版文件,建立两者关键字段的对应关系,使得只需要提供一套yaml文件,也可以实现跨平台使用。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍。在所有附图中,类似的元件或部分一般由类似的附图标记标识。附图中,各元件或部分并不一定按照实际的比例绘制。
图1为本发明实施例一提供的方法流程图。
图2为本发明实施例三提供的装置的模块框图。
图3为本发明实施例四提供的设备的模块框图。
具体实施方式
下面将结合附图对本发明技术方案的实施例进行详细的描述。以下实施例仅用于更加清楚地说明本发明的技术方案,因此只作为示例,而不能以此来限制本发明的保护范围。需要注意的是,除非另有说明,本申请使用的技术术语或者科学术语应当为本发明所属领域技术人员所理解的通常意义。
应当理解,当在本说明书和所附权利要求书中使用时,术语“包括”和“包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
还应当理解,在此本发明说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本发明。如在本发明说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。
如在本说明书和所附权利要求书中所使用的那样,术语“如果”可以依据上下文被解释为“当...时”或“一旦”或“响应于确定”或“响应于检测到”。类似地,短语“如果确定”或“如果检测到[所描述条件或事件]”可以依据上下文被解释为意指“一旦确定”或“响应于确定”或“一旦检测到[所描述条件或事件]”或“响应于检测到[所描述条件或事件]”。
实施例一:
一种服务模块跨平台部署方法,参见图1,包括以下步骤:
S1:获取各个容器管理平台的yaml语法关键字,并设置标准yaml语法关键字;其中,所述设置标准yaml语法关键字具体包括:
获取各个容器管理平台中yaml语法关键字的共性和差异;
在所有共性的yaml语法关键字中,定义yaml语法关键字为所述标准yaml语法关键字;
在所有差异的yaml语法关键字中,定义字段长度最短、且与其他标准yaml语法关键字不冲突的yaml语法关键字为所述标准yaml语法关键字。
在一个实施例中,该方法梳理市场上不同容器管理平台yaml语法关键字的共性和差异,并根据该共性和差异定义适用于该方法的标准yaml语法关键字。
S2:设置一字典,包含各个容器管理平台的yaml语法关键字与标准yaml语法关键字的对应关系;
在一个实施例中,字典可以纯人工编写,也可以在给定一定规则后,由机器自动编写。该字典中每一个项表示一个关键字映射关系(多个yaml语法关键字可以同时对应同一个标准yaml语法关键字),即表示市场上不同容器管理平台中yaml语法关键字对应的标准yaml语法关键字。
S3:获取各个容器管理平台的yaml模版文件,包括:
接受编写指令,编写各个容器管理平台的yaml模版文件,所述yaml模版文件包括与yaml模版文件中yaml语法关键字的值位置相对应的占位符。
yaml模版文件可以纯人工自行编写,也可以在给定一定规则后,由机器自动编写。用户使用时,可以根据标准yaml语法关键字编写源文件(即应用服务编排文件,yaml文件),该方法可以利用源文件对目标yaml模版文件进行渲染,得到目标文件。
S4:获取根据标准yaml语法关键字编写的源文件;
其中源文件的编写可以是机器按照标准yaml语法关键字自动编写。
S5:利用所述字典和源文件对目标yaml模版文件进行渲染,得到适用于目标容器管理平台的目标文件。
在一个实施例中,所述利用所述字典和源文件对目标yaml模版文件进行渲染前,包括:
接收选择指令,选择一容器管理平台作为目标容器管理平台;
调取目标容器管理平台对应的yaml模版文件作为目标yaml模版文件。
本发明实施例提供两种占位符的渲染方式。
1、普通占位符的渲染。
所述利用所述字典和源文件对目标yaml模版文件进行渲染,得到适用于目标容器管理平台的目标文件,包括:
使用目标yaml模版文件中的yaml语法关键字查找所述字典,得到字典中对应的标准yaml语法关键字;
使用字典中查找到的标准yaml语法关键字从所述源文件中提取标准yaml语法关键字的一个值;
使用提取到的一个值替换目标yaml模版文件中对应的占位符,得到所述目标文件。
在一个实施例中,用户使用时,首先选择市场上某个容器管理平台,自动载入该容器管理平台对应的yaml模版文件。然后编写的源文件。最后通过查找字典的方式,自动将yaml模版文件中占位符替换为源文件中对应的一个值,输出最终的匹配选定容器管理平台的目标文件,即目标yaml文件。
2、迭代占位符的渲染。
所述利用所述字典和源文件对目标yaml模版文件进行渲染,得到适用于目标容器管理平台的目标文件,包括:
使用目标yaml模版文件中的yaml语法关键字查找所述字典,得到字典中对应的标准yaml语法关键字;
使用字典中查找到的标准yaml语法关键字从所述源文件中提取标准yaml语法关键字的多个值;
增加所述目标yaml模版文件中的占位符,直至所述占位符的数量与从所述源文件中提取到的值的数量相同;
使用提取到的多个值替换目标yaml模版文件中对应的占位符,得到所述目标文件。
在一个实施例中,用户使用时,首先选择市场上某个容器管理平台,自动载入该容器管理平台对应的yaml模版文件。然后载入编写的源文件。最后通过查找字典的方式,查找到源文件中的多个值,然后在目标yaml模版文件中yaml语法关键字的位置增加多个占位符,将yaml模版文件中占位符替换为源文件查找到的多个值,输出最终的匹配选定容器管理平台的目标文件,即目标yaml文件。
该方法定义了标准yaml语法关键字,并收录市场上绝大多数容器管理平台的yaml模版文件,建立两者关键字段的对应关系,使得只需要提供一套yaml文件,也可以实现跨平台使用。
实施例二:
实施例二针对该方法,提供了一个实例进行说明。
1、如下为编写的一种演示程序的描述文件,包括源文件和各个各个容器管理平台的yaml模版文件。
1)源文件:
2)swarm容器管理平台的yaml模版文件:
3)kubernetes容器管理平台的yaml模版文件:
2、该方法定义的字典文件如下:
1#[services]:services
2#[services::image,spec:template:spec:containers:image]:[services::image]
3#[services::container_name,spec:template:spec:containers:name]:[services::container_name]
4#[services::restart,spec:template:spec:restartPolicy]:[services::restart]
5#[services::command,spec:template:spec:containers:command]:[services::command]
6#[services::environment,spec:template:spec:containers:env]:[services::environment]
7#[services::deploy:replicas,spec:replicas]:[services::replicas]
3、该方法通过查找字典,对源文件进行渲染,得到以下目标文件:
第一种渲染方法:普通占位符的渲染。
swarm容器管理平台的yaml模版文件中,${CONTAINER_NAME}这个占位符需要被填充,假设这个占位符录属于标准yaml语法关键字的services::container_name字段(其中两个冒号中间没有字段代表可以跨过任意一个字段)。那么通过在查找字典文件,发现字典文件中第3行第一个中括号[]内有一项标准yaml语法关键字匹配,取出对应第3行第二个中括号[]对应的字符串为services::container_name,通过取出的services::container_name查找源文件中对应匹配字段的值为my-busybox。最后把my-busybox填充swarm容器管理平台的yaml模版文件中${CONTAINER_NAME}这个占位符。
第二种渲染方法:迭代占位符的渲染。
kubernetes容器管理平台的yaml模版文件中,${ENV_KEY#}和${ENV_VALUE#}这两个占位符中的关键字带有#号后缀,说明该占位符属于可迭代关键字占位符,假设该占位符隶属于标准yaml语法关键字的spec:template:spec:containers:env字段。那么通过查找字典文件,发现字典文件中第6行第一个中括号[]内有一项标准yaml语法关键字匹配,取出第6行对应的第二个中括号[]对应的字符串为services::environment,通过字段services::environment可以索引到源文件中的两个键值对PORT=80和IP=0.0.0.0。最后把键值对<1>PORT=80中=两边的值分别替换kubernetes容器管理平台的yaml模版文件中可迭代占位符${ENV_KEY#}和${ENV_VALUE#},把键值对<2>IP=0.0.0.0中=两边的值再次替换可迭代占位符${ENV_KEY#}和${ENV_VALUE#}。
通过以上两种渲染占位符的方法,得到的目标文件如下:
通过渲染swarm容器管理平台的yaml模版文件生成的目标文件如下:
通过渲染kubernetes容器管理平台的yaml模版文件生成的目标文件如下:
实施例三:
一种服务模块跨平台部署装置,参见图2,包括:
关键字提取单元:用于获取各个容器管理平台的yaml语法关键字,并设置标准yaml语法关键字;
字典创建单元:用于设置一字典,包含各个容器管理平台的yaml语法关键字与标准yaml语法关键字的对应关系;
模板单元:用于获取各个容器管理平台的yaml模版文件;
转换单元:用于获取根据标准yaml语法关键字编写的源文件;利用所述字典和源文件对目标yaml模版文件进行渲染,得到适用于目标容器管理平台的目标文件。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个装置,或一些特征可以忽略,或不执行。另外,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口、装置或单元的间接耦合或通信连接,也可以是电的,机械的或其它的形式连接。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本发明实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以是两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
本发明实施例所提供的装置,为简要描述,实施例部分未提及之处,可参考前述实施例中相应内容。
实施例四:
一种服务模块跨平台部署设备,参见图3,包括处理器和存储器,所述处理器和存储器相互连接,其中,所述存储器用于存储计算机程序,所述计算机程序包括程序指令,所述处理器被配置用于调用所述程序指令,执行上述方法。
应当理解,在本发明实施例中,所称处理器可以是中央处理单元(CentralProcessing Unit,CPU),该处理器还可以是其他通用处理器、数字信号处理器(DigitalSignal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
该存储器可以包括只读存储器和随机存取存储器,并向处理器提供指令和数据。存储器的一部分还可以包括非易失性随机存取存储器。例如,存储器还可以存储设备类型的信息。
本发明实施例所提供的设备,为简要描述,实施例部分未提及之处,可参考前述实施例中相应内容。
实施例五:
一种计算机可读存储介质,所述计算机存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被处理器执行时使所述处理器执行上述方法。
所述计算机可读存储介质可以是前述任一实施例所述的终端的内部存储单元,例如终端的硬盘或内存。所述计算机可读存储介质也可以是所述终端的外部存储设备,例如所述终端上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(SecureDigital,SD)卡,闪存卡(Flash Card)等。进一步地,所述计算机可读存储介质还可以既包括所述终端的内部存储单元也包括外部存储设备。所述计算机可读存储介质用于存储所述计算机程序以及所述终端所需的其他程序和数据。所述计算机可读存储介质还可以用于暂时地存储已经输出或者将要输出的数据。
本发明实施例所提供的介质,为简要描述,实施例部分未提及之处,可参考前述实施例中相应内容。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围,其均应涵盖在本发明的权利要求和说明书的范围当中。
Claims (8)
1.一种服务模块跨平台部署方法,其特征在于,包括以下步骤:
获取各个容器管理平台的yaml语法关键字,并设置标准yaml语法关键字;
设置一字典,包含各个容器管理平台的yaml语法关键字与标准yaml语法关键字的对应关系;
获取各个容器管理平台的yaml模版文件;
获取根据标准yaml语法关键字编写的源文件;
利用所述字典和源文件对目标yaml模版文件进行渲染,得到适用于目标容器管理平台的目标文件;
所述设置标准yaml语法关键字,包括:
获取各个容器管理平台中yaml语法关键字的共性和差异;
根据所述共性和差异定义所述标准yaml语法关键字;
所述利用所述字典和源文件对目标yaml模版文件进行渲染,得到适用于目标容器管理平台的目标文件,包括:
使用目标yaml模版文件中的yaml语法关键字查找所述字典,得到字典中对应的标准yaml语法关键字;
使用字典中查找到的标准yaml语法关键字从所述源文件中提取标准yaml语法关键字的一个值;
使用提取到的一个值替换目标yaml模版文件中对应的占位符,得到所述目标文件。
2.根据权利要求1所述服务模块跨平台部署方法,其特征在于,所述根据所述共性和差异定义所述标准yaml语法关键字,包括:
在所有共性的yaml语法关键字中,定义yaml语法关键字为所述标准yaml语法关键字;
在所有差异的yaml语法关键字中,定义字段长度最短且与其他标准yaml语法关键字不冲突的yaml语法关键字为所述标准yaml语法关键字。
3.根据权利要求1所述服务模块跨平台部署方法,其特征在于,
所述字典中,多个yaml语法关键字同时对应同一个标准yaml语法关键字。
4.根据权利要求1所述的服务模块跨平台部署方法,其特征在于,所述获取各个容器管理平台的yaml模版文件,包括:
接受编写指令,编写各个容器管理平台的yaml模版文件,所述yaml模版文件包括与yaml模版文件中yaml语法关键字的值位置相对应的占位符。
5.根据权利要求4所述服务模块跨平台部署方法,其特征在于,所述利用所述字典和源文件对目标yaml模版文件进行渲染前,还包括
接收选择指令,选择一容器管理平台作为目标容器管理平台;
调取目标容器管理平台对应的yaml模版文件作为目标yaml模版文件。
6.根据权利要求5所述服务模块跨平台部署方法,其特征在于,所述利用所述字典和源文件对目标yaml模版文件进行渲染,得到适用于目标容器管理平台的目标文件,包括:
使用目标yaml模版文件中的yaml语法关键字查找所述字典,得到字典中对应的标准yaml语法关键字;
使用字典中查找到的标准yaml语法关键字从所述源文件中提取标准yaml语法关键字的多个值;
增加所述目标yaml模版文件中的占位符,直至所述占位符的数量与从所述源文件中提取到的值的数量相同;
使用提取到的多个值替换目标yaml模版文件中对应的占位符,得到所述目标文件。
7.一种服务模块跨平台部署装置,其特征在于,包括:
关键字提取单元:用于获取各个容器管理平台的yaml语法关键字,并设置标准yaml语法关键字;
字典创建单元:用于设置一字典,包含各个容器管理平台的yaml语法关键字与标准yaml语法关键字的对应关系;
模板单元:用于获取各个容器管理平台的yaml模版文件;
转换单元:用于获取根据标准yaml语法关键字编写的源文件;利用所述字典和源文件对目标yaml模版文件进行渲染,得到适用于目标容器管理平台的目标文件;
所述关键字提取单元具体用于:
获取各个容器管理平台中yaml语法关键字的共性和差异;
根据所述共性和差异定义所述标准yaml语法关键字;
所述转换单元具体用于:
使用目标yaml模版文件中的yaml语法关键字查找所述字典,得到字典中对应的标准yaml语法关键字;
使用字典中查找到的标准yaml语法关键字从所述源文件中提取标准yaml语法关键字的一个值;
使用提取到的一个值替换目标yaml模版文件中对应的占位符,得到所述目标文件。
8.一种服务模块跨平台部署设备,其特征在于,包括处理器和存储器,所述处理器和存储器相互连接,其中,所述存储器用于存储计算机程序,所述计算机程序包括程序指令,所述处理器被配置用于调用所述程序指令,执行如权利要求1-6任一项所述方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110712653.2A CN113434251B (zh) | 2021-06-25 | 2021-06-25 | 服务模块跨平台部署方法、装置及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110712653.2A CN113434251B (zh) | 2021-06-25 | 2021-06-25 | 服务模块跨平台部署方法、装置及设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113434251A CN113434251A (zh) | 2021-09-24 |
CN113434251B true CN113434251B (zh) | 2023-05-02 |
Family
ID=77754635
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110712653.2A Active CN113434251B (zh) | 2021-06-25 | 2021-06-25 | 服务模块跨平台部署方法、装置及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113434251B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114741082A (zh) * | 2022-04-21 | 2022-07-12 | 光大科技有限公司 | Yaml文件的转换方法及装置 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2014094332A1 (zh) * | 2012-12-21 | 2014-06-26 | 东莞中国科学院云计算产业技术创新与育成中心 | 一种突发事件应急管理的知识库引擎构建及其查询方法 |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8707252B1 (en) * | 2008-09-03 | 2014-04-22 | Emc Corporation | Techniques for automatic generation of parsing code |
US9213541B2 (en) * | 2009-04-17 | 2015-12-15 | ArtinSoft Corporation, S.A. | Creation, generation, distribution and application of self-contained modifications to source code |
US9361297B2 (en) * | 2009-07-30 | 2016-06-07 | Adobe Systems Incorporated | Web service-based, data binding abstraction method |
US20140047319A1 (en) * | 2012-08-13 | 2014-02-13 | Sap Ag | Context injection and extraction in xml documents based on common sparse templates |
CN105893056A (zh) * | 2016-04-25 | 2016-08-24 | 乐视控股(北京)有限公司 | 模版与模版逻辑的合并方法和系统 |
CN108052374B (zh) * | 2017-12-29 | 2021-08-31 | 郑州云海信息技术有限公司 | 一种部署容器微服务的方法及装置 |
CN108964968B (zh) * | 2018-03-27 | 2022-01-11 | 南方电网深圳数字电网研究院有限公司 | 一种容器云环境下的服务接入管理方法和系统 |
US11579941B2 (en) * | 2019-05-05 | 2023-02-14 | Mastercard International Incorporated | Control cluster for multi-cluster container environments |
CN112650522A (zh) * | 2019-09-26 | 2021-04-13 | 北京国双科技有限公司 | 平台动态配置的方法、装置、存储介质及设备 |
CN111444104B (zh) * | 2020-04-01 | 2023-04-07 | 山东汇贸电子口岸有限公司 | 一种OpenStack功能测试的方法 |
US11216265B1 (en) * | 2020-07-02 | 2022-01-04 | Ryan L. Hornbeck | Repeatable security hardening for virtualized hardware and infrastructure |
CN112130866A (zh) * | 2020-10-09 | 2020-12-25 | 腾讯科技(深圳)有限公司 | 一种应用部署方法和相关装置 |
-
2021
- 2021-06-25 CN CN202110712653.2A patent/CN113434251B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2014094332A1 (zh) * | 2012-12-21 | 2014-06-26 | 东莞中国科学院云计算产业技术创新与育成中心 | 一种突发事件应急管理的知识库引擎构建及其查询方法 |
Also Published As
Publication number | Publication date |
---|---|
CN113434251A (zh) | 2021-09-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102541638B (zh) | 资源管理系统和方法 | |
CN106648569B (zh) | 目标序列化实现方法和装置 | |
US11734341B2 (en) | Information processing method, related device, and computer storage medium | |
CN110399306B (zh) | 软件模块自动化测试方法及装置 | |
CN113434251B (zh) | 服务模块跨平台部署方法、装置及设备 | |
CN112015806A (zh) | 区块链存储数据的方法及装置 | |
CN113126986A (zh) | 基于动态数据的表单项渲染方法、系统、设备及存储介质 | |
EP3301603A1 (en) | Improved search for data loss prevention | |
CN115994232B (zh) | 在线多版本文献同一性鉴别方法、系统及计算机设备 | |
CN117216279A (zh) | Pdf文件的文本提取方法、装置、设备及存储介质 | |
US20220342849A1 (en) | System and method for managing a plurality of data storage devices | |
CN115208923A (zh) | 设备信息确定方法、装置及设备 | |
CN114169306A (zh) | 一种生成电子回执单的方法、装置、设备及可读存储介质 | |
WO2021103409A1 (zh) | 一种数据生成方法、装置、电子设备及存储介质 | |
CN113157960A (zh) | 相似数据获取的方法及装置、电子设备和计算机可读存储介质 | |
US20210349742A1 (en) | Multi-language scheduling method and apparatus, and embedded device | |
CN116580748B (zh) | 内存芯片测试治具的配置方法、装置、设备及存储介质 | |
CN104424238B (zh) | 一种海量文件生成的方法、装置 | |
CN116416629B (zh) | 电子档案生成方法、装置、设备和介质 | |
CN113568578B (zh) | 一种图片处理方法、装置、电子设备和可读存储介质 | |
CN110874195B (zh) | 一种打印语言识别方法、装置、电子设备、存储介质 | |
CN115587074A (zh) | 生成特效资源文件的方法、装置、直播系统、设备和介质 | |
CN113742773A (zh) | 一种隐私弹框检测方法、装置、设备及存储介质 | |
CN117973324A (zh) | 一种html表格转换为markdown文本的方法、系统及介质 | |
CN117573633A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |