CN113687854A - 一种兼容云原生应用的参数更新方法及装置 - Google Patents

一种兼容云原生应用的参数更新方法及装置 Download PDF

Info

Publication number
CN113687854A
CN113687854A CN202111244047.9A CN202111244047A CN113687854A CN 113687854 A CN113687854 A CN 113687854A CN 202111244047 A CN202111244047 A CN 202111244047A CN 113687854 A CN113687854 A CN 113687854A
Authority
CN
China
Prior art keywords
target
file
application
parameter
parameters
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
CN202111244047.9A
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.)
Beijing Xita Technology Co ltd
Original Assignee
Beijing Xita Technology 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 Beijing Xita Technology Co ltd filed Critical Beijing Xita Technology Co ltd
Priority to CN202111244047.9A priority Critical patent/CN113687854A/zh
Publication of CN113687854A publication Critical patent/CN113687854A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Stored Programmes (AREA)

Abstract

一种兼容云原生应用的参数更新方法及装置,所述方法包括:获取待更新至目标应用的目标参数,以及所述目标应用的类型;根据所述目标应用的类型,确定用于向所述目标应用提供运行参数的目标文件;其中,在所述目标应用为通过文件映射接口获取运行参数的云原生应用的情况下,所述目标文件为所述文件映射接口兼容的源文件;在所述目标应用为通过读取配置文件获取运行参数的非云原生应用的情况下,所述目标文件为所述非云原生应用可读取的配置文件;将所述目标参数写入所述目标文件,以使所述目标应用将其运行参数更新为所述目标文件中存储的所述目标参数。应用本方案,可以提高参数更新效率,并降低软件开发和维护的成本。

Description

一种兼容云原生应用的参数更新方法及装置
技术领域
本说明书涉及云原生技术领域,尤其涉及一种兼容云原生应用的参数更新方法及装置。
背景技术
通常,为了使计算机软件适应不同的运行环境或者业务需求,人们可以为计算机软件设计可配置项,并通过调整上述可配置项来调整计算机软件的运行状态;这些可配置项可以以JSON、toml、ini等配置文件形式存储,并被计算机软件读取、应用。
云原生应用,通常指基于云原生思想进行开发部署的计算机应用,相对传统计算机应用程序而言具备高弹性、易共享、高可用、迭代灵活等优势;但是,对于运行在云原生环境下的容器中的云原生应用而言,如果使用配置文件对其运行状态进行配置,若将配置文件打包在容器镜像中发布,则不利于灵活设置配置项,便捷性不佳;而若将配置文件通过NAS、NFS等持久性的共享存储服务向容器开放,则可能导致越权访问的情况,安全性不佳。
因此,现有技术中兼容云原生应用的参数更新方案难以兼顾安全性与便捷性。
发明内容
有鉴于此,本说明书公开了一种兼容云原生应用的参数更新方法和装置。
根据本说明书实施例的第一方面,公开了一种兼容云原生应用的参数更新方法,包括:
获取待更新至目标应用的目标参数,以及所述目标应用的类型;
根据所述目标应用的类型,确定用于向所述目标应用提供运行参数的目标文件;其中,在所述目标应用为通过文件映射接口获取运行参数的云原生应用的情况下,所述目标文件为所述文件映射接口兼容的源文件;在所述目标应用为通过读取配置文件获取运行参数的非云原生应用的情况下,所述目标文件为所述非云原生应用可读取的配置文件;
将所述目标参数写入所述目标文件,以使所述目标应用将其运行参数更新为所述目标文件中存储的所述目标参数。
可选的,所述获取待更新至目标应用的目标参数,包括:
获取批量配置标识,并获取与所述批量配置标识对应的目标参数组;其中,所述目标参数组中包括至少两个目标参数。
可选的,所述根据所述目标应用的类型,确定用于向所述目标应用提供运行参数的目标文件,包括:
获取所述目标参数组中包括的至少两个目标参数各自的参数类型;
根据所述目标应用的类型,以及所述目标参数组中各目标参数的参数类型,分别确定所述目标参数组中各目标参数对应的目标文件;
所述目标参数写入所述目标文件,包括:
将所述目标参数组中各目标参数,分别写入所述各目标参数对应的目标文件。
可选的,所述云原生应用包括基于Kubernetes平台的云原生有状态应用,所述源文件包括configmap文件和/或secret文件;
所述获取待更新至目标应用的目标参数,包括:
接收读取指令,读取所述读取指令指示的自定义资源中存储的目标参数;其中,所述自定义资源所属的自定义资源类型,与所述目标应用的运行参数的类型相匹配;
所述将所述目标参数写入所述目标文件,以使所述目标应用将其运行参数更新为所述目标文件中存储的所述目标参数,包括:
将所述目标参数写入所述configmap文件和/或secret文件,以使运行在Kubernetes平台的容器中的目标应用,通过所述configmap文件和/或secret文件在所述容器中的映射获取到所述目标参数,并将其运行参数更新为所述目标参数。
根据本说明书实施例的第二方面,公开了一种兼容云原生应用的参数更新装置,包括:
获取模块,获取待更新至目标应用的目标参数,以及所述目标应用的类型;
确定模块,根据所述目标应用的类型,确定用于向所述目标应用提供运行参数的目标文件;其中,在所述目标应用为通过文件映射接口获取运行参数的云原生应用的情况下,所述目标文件为所述文件映射接口兼容的源文件;在所述目标应用为通过读取配置文件获取运行参数的非云原生应用的情况下,所述目标文件为所述非云原生应用可读取的配置文件;
写入模块,将所述目标参数写入所述目标文件,以使所述目标应用将其运行参数更新为所述目标文件中存储的所述目标参数。
可选的,所述获取模块进一步:
获取批量配置标识,并获取与所述批量配置标识对应的目标参数组;其中,所述目标参数组中包括至少两个目标参数。
可选的,所述确定模块进一步:
获取所述目标参数组中包括的至少两个目标参数各自的参数类型;
根据所述目标应用的类型,以及所述目标参数组中各目标参数的参数类型,分别确定所述目标参数组中各目标参数对应的目标文件;
所述写入模块进一步:
将所述目标参数组中各目标参数,分别写入所述各目标参数对应的目标文件。
可选的,所述云原生应用包括基于Kubernetes平台的云原生有状态应用,所述源文件包括configmap文件和/或secret文件;
所述获取模块进一步:
接收读取指令,读取所述读取指令指示的自定义资源中存储的目标参数;其中,所述自定义资源所属的自定义资源类型,与所述目标应用的运行参数的类型相匹配;
所述写入模块进一步:
将所述目标参数写入所述configmap文件和/或secret文件,以使运行在Kubernetes平台的容器中的目标应用,通过所述configmap文件和/或secret文件在所述容器中的映射获取到所述目标参数,并将其运行参数更新为所述目标参数。
根据本说明书实施例的第三方面,公开了一种计算机设备,其至少包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其中,处理器执行所述程序时实现上述任一方面实施例所述的方法。
根据本说明书实施例的第四方面,公开了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任一方面实施例所述的方法。
以上技术方案中,一方面,由于在上述目标应用为通过文件映射接口获取运行参数的云原生应用的情况下,上述目标文件为上述文件映射接口兼容的源文件,在将目标参数写入上述目标文件之后,云原生应用类型的目标应用就可以通过文件映射接口读取到该目标文件并更新其运行参数;因此,该方案无需使用持久化存储服务,不会造成越权读取造成的安全性问题,又能够及时有效地更新目标文件中的目标参数,因此兼顾了安全性和便捷性。
另一方面,由于上述技术方案可以根据上述目标应用的类型,确定用于向上述目标应用提供运行参数的目标文件,因此既可以适配云原生应用的参数更新需求,也可以适配非云原生应用的参数更新需求,开发人员只需要维护一份代码即可对接上述两种应用,显著提高了计算机软件代码的生产和维护的效率。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本说明书的实施例,并与说明书文本一同用于解释原理。
图1是本说明书示出的一种现有技术中读取配置文件的情景示例图;
图2是本说明书示出的一种兼容云原生应用的参数更新方法的流程示例图;
图3是本说明书示出的一种生成包含目标参数的目标文件的逻辑示例图;
图4是本说明书示出的一种兼容云原生应用的参数更新装置的结构示例图;
图5是本说明书示出的一种用于兼容云原生应用的参数更新的计算机设备的结构示例图。
具体实施方式
为了使本技术领域的人员更好地理解本说明书一个或多个实施例中的技术方案,下面将结合本说明书一个或多个实施例中的附图,对本说明书一个或多个实施例中的技术方案进行清楚、完整地描述。显然,所描述的实施例仅仅是一部分实施例,而不是全部的实施例。基于本说明书一个或多个实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本说明书保护的范围。
下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本说明书相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本说明书的一些方面相一致的系统和方法的例子。
在本说明书使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书。在本说明书和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本说明书可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
通常,为了使计算机软件适应不同的运行环境或者业务需求,人们可以为计算机软件设计可配置项,并通过调整上述可配置项来调整计算机软件的运行状态;这些可配置项可以以JSON、toml、ini等配置文件形式存储,并被计算机软件读取、应用。
云原生应用,通常指基于云原生思想进行开发部署的计算机应用,相对传统计算机应用程序而言具备高弹性、易共享、高可用、迭代灵活等优势;但是,对于运行在云原生环境下的容器中的云原生应用而言,如果使用配置文件对其运行状态进行配置,若将配置文件打包在容器镜像中发布,则不利于灵活设置配置项,便捷性不佳;而若将配置文件通过NAS(Network Attached Storage,网络附属存储)、NFS(Network File System,网络文件系统)等持久性的共享存储服务向容器开放,则可能导致越权访问的情况,安全性不佳。
请参见图1,图1为本说明书示出的一种现有技术中读取配置文件的情景示例图;在该例中,运行在Docker中的云原生应用使用配置文件来更新运行参数,且配置文件通过上述Docker有权访问的NAS提供;其中,为了使得Docker中的云原生应用能够及时地获取到更新后的配置文件中携带的运行参数,保证运行参数配置过程的便捷性,上述NAS可以持久运行,且上述Docker对上述NAS的访问权限可以是长期权限;但在使用该方案的情况下,在上述集群中运行有数量较多的Docker的情况下,就可能需要为大量的Docker分别开通长期访问权限,不仅配置复杂,而且容易导致权限的滥用、隐私的泄露等等。
可见,现有技术中兼容云原生应用的参数更新方案难以兼顾安全性与便捷性。
基于此,本说明书提出一种根据目标用户的类型确定具体使用的目标文件,再将目标参数写入目标文件,从而使得参数更新方案可以兼容云原生应用以及非云原生应用两类计算机应用的技术方案。
在实现时,针对非云原生应用类型的目标应用,对应的目标文件可以使用上述非云原生应用可读取的配置文件;而针对通过文件映射接口获取运行参数的云原生应用类型的目标应用的情况下,所述目标文件为所述文件映射接口兼容的源文件;在根据上述目标应用的类型确定出所要使用的目标文件之后,即可将上述目标参数写入到上述目标文件当中,以使上述目标应用将其运行参数更新为所述目标文件中存储的所述目标参数。
以上技术方案中,一方面,由于在上述目标应用为通过文件映射接口获取运行参数的云原生应用的情况下,上述目标文件为上述文件映射接口兼容的源文件,在将目标参数写入上述目标文件之后,云原生应用类型的目标应用就可以通过文件映射接口读取到该目标文件并更新其运行参数;因此,该方案无需使用持久化存储服务,不会造成越权读取造成的安全性问题,又能够及时有效地更新目标文件中的目标参数,因此兼顾了安全性和便捷性。
另一方面,由于上述技术可以根据上述目标应用的类型,确定用于向上述目标应用提供运行参数的目标文件,因此既可以适配云原生应用的参数更新需求,也可以适配非云原生应用的参数更新需求,开发人员只需要维护一份代码即可对接上述两种应用,显著提高了计算机软件代码的生产和维护的效率。
下面通过具体实施例并结合具体的应用场景对本说明书进行描述。
请参考图2,图2是本说明书一实施例提供的一种兼容云原生应用的参数更新方法的流程示例图;该方法可以应用于任意用于更新应用的执行参数的计算机,该方法可以包括以下步骤:
S201,获取待更新至目标应用的目标参数,以及所述目标应用的类型;
S202,根据所述目标应用的类型,确定用于向所述目标应用提供运行参数的目标文件;其中,在所述目标应用为通过文件映射接口获取运行参数的云原生应用的情况下,所述目标文件为所述文件映射接口兼容的源文件;在所述目标应用为通过读取配置文件获取运行参数的非云原生应用的情况下,所述目标文件为所述非云原生应用可读取的配置文件;
S203,将所述目标参数写入所述目标文件,以使所述目标应用将其运行参数更新为所述目标文件中存储的所述目标参数。
上述云原生应用,可以包括任意依赖于云计算环境中的软件应用;通常,与传统软件应用相比,云原生应用的后端计算、可拓展性和并行处理都与云架构相匹配,由于运行在云端,云原生应用可以由多项云服务组成,每个服务都有伸缩性、弹性和组合性。而且,由于云原生应用往往在同一个计算集群中并行运行,因此对其进行参数配置的过程通常难以兼顾便捷性和安全性。而对于非云原生应用而言,其通常可以具备直接读取包含运行参数的配置文件的功能,可见上述两种应用更新运行参数的具体方式存在差异。
可以理解的是,在本说明书中主要关注应用的参数配置过程,而基本不涉及应用在实际运行中具体处理的业务,因此无需对应用的具体程序用途和场景进行限定,本领域普通技术人员可以将本说明书所述方案应用于任意需要对云原生应用以及非云原生应用两类应用进行兼容配置的应用情景。
上述参数,可以包括用于控制应用软件的运行状态的信息,例如,应用运行时使用的账户ID、密码、端口号、临时目录命名等等;可以理解的是,上述参数既可以是上述应用软件在启动时加载,也可以在上述应用软件在运行过程中加载;举例而言,对于部分应用程序而言,可以在通过命令行或者快捷方式中添加“-win”运行参数以使其以窗口化模式启动,或者通过“-freq”参数以使其使用指定的显示器刷新率启动,又例如,在应用程序的运行过程中,可以调用应用程序的加载配置文件功能,在应用执行的中途对运行参数进行更新,还可以起到模拟键盘输入等作用。因此,在本说明书中,上述参数可以广义理解为一个或者一组对应用程序的输入信息。
上述文件映射接口,可以指上述云原生应用所基于的云计算集群提供的文件映射接口;通常,文件映射接口的具体形式可能随云原生计算集群的种类而存在不同,但其通常可以实现如下功能:将集群中存储的文件以映射的方式映射到集群的容器中,使得容器化运行的云原生应用可以读取到映射出的文件,并从中获取到所需的信息;因此,本说明书无需全部列举全部的计算集群类型和文件映射接口的组合搭配,本领域技术人员可以根据具体业务需求,自行根据实际使用的云计算集群,确定上述文件映射接口具体指代的接口种类。
在本说明书中,上述计算机设备可以首先获取待更新至目标应用的目标参数,以及上述目标应用的类型。具体而言,上述待更新至目标应用的目标参数既可以通过键盘、鼠标、扫描仪等输入设备即时输入,也可以通过电子邮件、即时通讯软件、自动化办公软件等方式通过网络接收,或者,通过读取预先存储的参数存档文件获得,本领域技术人员可以自行选择上述目标参数的具体获取渠道,本说明书无需进行全部列举。
可以理解的是,在上述方案中支持的上述目标应用的类型,包括云原生应用以及非云原生应用两类;如前所述,上述两种应用类型在获取运行参数方面的一个主要区别在于,云原生应用可以通过文件映射接口获取运行参数,而非云原生应用则可以通过读取配置文件获取运行参数。在需要获取上述目标应用的类型时,既可以通过读取预设的应用标签的方式进行识别,也可以直接接收用户输入的、用于指示上述目标应用的类型的指令。由于云原生应用以及非云原生应用的实际运行环境、应用形式通常均存在较明显的差异,不易出现混淆的情况,因此本说明书无需进一步列举获取上述目标应用的类型的具体方式。
在示出的一种实施方式中,上述待更新至目标应用的目标参数的数量可以为多个,即,获取上述待更新至目标应用的目标参数时可以批量获取;为了提高上述批量获取的效率,可以将需要批量获取的若干个目标参数组预先编为目标参数组,并使用批量配置标识对上述目标参数组进行标记;在执行上述批量获取时,上述计算机即可首先获取批量配置标识,再根据批量配置标识获取对应的目标参数组;如此,即可以相对于逐个获取的普通方案而言更高的效率,获取到上述目标参数组中包含的至少两个目标参数。
举例而言,可以预设如下两组参数组:“user = admin; port = 8080;”“user =test; port = 80”,其中,前者用于使应用软件进入管理员模式,对应的批量配置标识为Tadmin,后者用于使应用软件进入测试模式,对应的批量配置标识为Ttest;由于目标参数以参数组的方式编组,因此可以降低参数管理的复杂度,而将用途相关的若干参数编为参数组,可以提高获取用途相关的多个参数时的效率。
在本说明书中,上述计算机设备可以根据上述目标应用的类型,确定用于向上述目标应用提供运行参数的目标文件;具体而言,上述确定过程可以分为如下两种情况:在上述目标应用为通过文件映射接口获取运行参数的云原生应用的情况下,上述目标文件可以为上述文件映射接口兼容的源文件;在上述目标应用为通过读取配置文件获取运行参数的非云原生应用的情况下,上述目标文件可以为上述非云原生应用可读取的配置文件。
举例而言,假设执行上述方案的计算机是一台专用于管理上述源文件或者配置文件的计算机,对接到该计算机的云计算集群A被预先配置了使用的源文件为configmap_A,对接到该计算机的单台计算机B被预先配置了使用的配置文件为bb.cfg,则如果在前一步骤中获取到目标应用的类型为运行在云计算集群A中的云原生应用,则确定出的目标文件可以是上述configmap_A;而如果在在前一步骤中获取到目标应用的类型为运行在单台计算机B中的非云原生应用,则确定出的目标文件可以是上述bb.cfg。
在本说明书中,上述计算机设备可以将上述目标参数写入上述目标文件,以使上述目标应用将其运行参数更新为上述目标文件中存储的上述目标参数。具体而言,在确定上述目标参数所对应的目标文件之后,就可以按照该对应关系将目标参数写入上述目标文件,从而使得上述目标应用以对应的方式(例如,云原生应用可以通过文件映射接口,非云原生应用可以直接读取)从上述目标文件中获取到目标参数,并使用获取到的目标参数对其运行参数进行更新。
在示出的一种实施方式中,可能某一次批量获取的目标参数不仅用于非云原生应用,也应用于云原生应用;举例而言,上述云原生应用和非云原生应用之间存在业务联系,在更新运行参数时可能需要同步更新,在这种情况下,某一次批量获取的多个目标参数中,就有可能既存在需要应用到非云原生应用的第一类目标参数,也可能存在需要应用到云原生应用的第二类目标参数,还可能存在需要应用到上述两种应用中的第三类目标参数,因此,在根据上述目标应用的类型,确定用于向上述目标应用提供运行参数的目标文件时,可以首先获取上述目标参数组中包括的至少两个目标参数各自的参数类型,再根据上述目标应用的类型,以及上述目标参数组中各目标参数的参数类型,分别确定上述目标参数组中各目标参数对应的目标文件;在需要将上述目标参数写入上述目标文件时,则可以将上述目标参数组中各目标参数,分别写入上述各目标参数对应的目标文件。
应用该方案,可以一次操作即向两类目标文件中写入需要更新到两类目标应用中的目标参数,进一步提高批量配置运行参数的效率。
在示出的一种实施方式中,上述云原生应用是运行在Kubernetes集群中的云原生应用,上述源文件则可以包括上述Kubernetes集群所支持的configmap文件和/或secret文件;在Kubernetes集群中,可以使用自定义资源CRD+控制器Operator的方式来管理“有状态应用”,具体来说,用户可以通过CRD 功能,根据自己的需求添加自定义的 Kubernetes 对象资源,并开发自定义控制器Operator来感知或者操作自定义资源的变化。也就是说,将本说明书所述的技术方案与Kubernetes集群对接时,在获取待更新至目标应用的目标参数时,则可以接收读取指令,读取上述读取指令指示的自定义资源中存储的目标参数;其中,上述自定义资源所属的自定义资源类型,与上述目标应用的运行参数的类型相匹配;在将上述目标参数写入上述目标文件,以使上述目标应用将其运行参数更新为上述目标文件中存储的上述目标参数时,则可以将上述目标参数写入上述configmap文件和/或secret文件,以使运行在Kubernetes平台的容器中的目标应用,通过上述configmap文件和/或secret文件在上述容器中的映射获取到上述目标参数,并将其运行参数更新为上述目标参数。
可以理解的是,虽然在Kubernetes集群中,configmap文件通常用于存储配置信息,secret文件通常用于存储密钥信息,但是,上述两种文件通过映射的方式将信息传入容器内的本质是近似的,因此本领域技术人员可以自行选用实际使用的源文件类型。
请参见图3,图3是本说明书示出的一种生成包含目标参数的目标文件的逻辑示例图;在该例中,分别展示了从指令中获取参数以及从自定义资源CRD中获取参数两种获取目标参数的方式,以及将目标参数写入CFG配置文件和configmap文件两种将目标参数推送至目标应用的方案;从该示例中可以看出,虽然非云原生应用与云原生应用的参数配置途径存在区别,但其中间过程可以通过本说明书所述的方案进行统一整合,既能够方便对运行参数的管理,也能够提高更新运行参数的效率。
上述内容即为本说明书针对所述兼容云原生应用的参数更新方法的全部实施例。根据以上实施例可知,应用上述技术方案,一方面,无需使用持久化存储服务,不会造成越权读取造成的安全性问题,又能够及时有效地更新目标文件中的目标参数,因此兼顾了安全性和便捷性。
另一方面,上述技术方案既可以适配云原生应用的参数更新需求,也可以适配非云原生应用的参数更新需求,开发人员只需要维护一份代码即可对接上述两种应用,显著提高了计算机软件代码的生产和维护的效率。
本说明书还提供了对应的兼容云原生应用的参数更新装置的实施例如下:
请参见图4,图4是本说明书示出的一种兼容云原生应用的参数更新装置的结构示例图;该兼容云原生应用的参数更新装置可以包括如下模块:
获取模块401,获取待更新至目标应用的目标参数,以及所述目标应用的类型;
确定模块402,根据所述目标应用的类型,确定用于向所述目标应用提供运行参数的目标文件;其中,在所述目标应用为通过文件映射接口获取运行参数的云原生应用的情况下,所述目标文件为所述文件映射接口兼容的源文件;在所述目标应用为通过读取配置文件获取运行参数的非云原生应用的情况下,所述目标文件为所述非云原生应用可读取的配置文件;
写入模块403,将所述目标参数写入所述目标文件,以使所述目标应用将其运行参数更新为所述目标文件中存储的所述目标参数。
在一种具体实施方式中,上述待更新至目标应用的目标参数的数量可以为多个,即,上述获取模块401获取上述待更新至目标应用的目标参数时可以批量获取;为了提高上述批量获取的效率,可以将需要批量获取的若干个目标参数组预先编为目标参数组,并使用批量配置标识对上述目标参数组进行标记;在执行上述批量获取时,上述上述获取模块401即可首先获取批量配置标识,再根据批量配置标识获取对应的目标参数组;如此,即可以相对于逐个获取的普通方案而言更高的效率,获取到上述目标参数组中包含的至少两个目标参数。
在一种具体实施方式中,可能某一次批量获取的目标参数不仅用于非云原生应用,也应用于云原生应用;上述确定模块402在根据上述目标应用的类型,确定用于向上述目标应用提供运行参数的目标文件时,可以首先获取上述目标参数组中包括的至少两个目标参数各自的参数类型,再根据上述目标应用的类型,以及上述目标参数组中各目标参数的参数类型,分别确定上述目标参数组中各目标参数对应的目标文件;在上述写入模块403需要将上述目标参数写入上述目标文件时,则可以将上述目标参数组中各目标参数,分别写入上述各目标参数对应的目标文件。
应用该方案,可以一次操作即向两类目标文件中写入需要更新到两类目标应用中的目标参数,进一步提高批量配置运行参数的效率。
在示出的一种实施方式中,上述云原生应用是运行在Kubernetes集群中的云原生应用,上述源文件则可以包括上述Kubernetes集群所支持的configmap文件和/或secret文件;上述获取模块401可以进一步接收读取指令,读取上述读取指令指示的自定义资源中存储的目标参数;其中,上述自定义资源所属的自定义资源类型,与上述目标应用的运行参数的类型相匹配;上述写入模块则可以进一步将上述目标参数写入上述configmap文件和/或secret文件,以使运行在Kubernetes平台的容器中的目标应用,通过上述configmap文件和/或secret文件在上述容器中的映射获取到上述目标参数,并将其运行参数更新为上述目标参数。
本说明书实施例还提供一种计算机设备,其至少包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其中,处理器执行所述程序时实现前述的兼容云原生应用的参数更新方法。
图5示出了本说明书实施例所提供的一种更为具体的计算设备硬件结构示意图,该设备可以包括:处理器1010、存储器1020、输入/输出接口1030、通信接口1040和总线1050。其中处理器1010、存储器1020、输入/输出接口1030和通信接口1040通过总线1050实现彼此之间在设备内部的通信连接。
处理器1010可以采用通用的CPU(Central Processing Unit,中央处理器)、微处理器、应用专用集成电路(Application Specific Integrated Circuit,ASIC)、或者一个或多个集成电路等方式实现,用于执行相关程序,以实现本说明书实施例所提供的技术方案。
存储器1020可以采用ROM(Read Only Memory,只读存储器)、RAM(Random AccessMemory,随机存取存储器)、静态存储设备,动态存储设备等形式实现。存储器1020可以存储操作系统和其他应用程序,在通过软件或者固件来实现本说明书实施例所提供的技术方案时,相关的程序代码保存在存储器1020中,并由处理器1010来调用执行。
输入/输出接口1030用于连接输入/输出模块,以实现信息输入及输出。输入输出/模块可以作为组件配置在设备中(图中未示出),也可以外接于设备以提供相应功能。其中输入设备可以包括键盘、鼠标、触摸屏、麦克风、各类传感器等,输出设备可以包括显示器、扬声器、振动器、指示灯等。
通信接口1040用于连接通信模块(图中未示出),以实现本设备与其他设备的通信交互。其中通信模块可以通过有线方式(例如USB、网线等)实现通信,也可以通过无线方式(例如移动网络、WIFI、蓝牙等)实现通信。
总线1050包括一通路,在设备的各个组件(例如处理器1010、存储器1020、输入/输出接口1030和通信接口1040)之间传输信息。
需要说明的是,尽管上述设备仅示出了处理器1010、存储器1020、输入/输出接口1030、通信接口1040以及总线1050,但是在具体实施过程中,该设备还可以包括实现正常运行所必需的其他组件。此外,本领域的技术人员可以理解的是,上述设备中也可以仅包含实现本说明书实施例方案所必需的组件,而不必包含图中所示的全部组件。
本说明书实施例还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现前述的兼容云原生应用的参数更新方法。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本说明书实施例可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本说明书实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本说明书实施例各个实施例或者实施例的某些部分所述的方法。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,在实施本说明书实施例方案时可以把各模块的功能在同一个或多个软件和/或硬件中实现。也可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
以上所述仅是本说明书实施例的具体实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本说明书实施例原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本说明书实施例的保护范围。

Claims (10)

1.一种兼容云原生应用的参数更新方法,包括:
获取待更新至目标应用的目标参数,以及所述目标应用的类型;
根据所述目标应用的类型,确定用于向所述目标应用提供运行参数的目标文件;其中,在所述目标应用为通过文件映射接口获取运行参数的云原生应用的情况下,所述目标文件为所述文件映射接口兼容的源文件;在所述目标应用为通过读取配置文件获取运行参数的非云原生应用的情况下,所述目标文件为所述非云原生应用可读取的配置文件;
将所述目标参数写入所述目标文件,以使所述目标应用将其运行参数更新为所述目标文件中存储的所述目标参数。
2.根据权利要求1所述的方法,
所述获取待更新至目标应用的目标参数,包括:
获取批量配置标识,并获取与所述批量配置标识对应的目标参数组;其中,所述目标参数组中包括至少两个目标参数。
3.根据权利要求2所述的方法,所述根据所述目标应用的类型,确定用于向所述目标应用提供运行参数的目标文件,包括:
获取所述目标参数组中包括的至少两个目标参数各自的参数类型;
根据所述目标应用的类型,以及所述目标参数组中各目标参数的参数类型,分别确定所述目标参数组中各目标参数对应的目标文件;
所述目标参数写入所述目标文件,包括:
将所述目标参数组中各目标参数,分别写入所述各目标参数对应的目标文件。
4.根据权利要求1所述的方法,所述云原生应用包括基于Kubernetes平台的云原生有状态应用,所述源文件包括configmap文件和/或secret文件;
所述获取待更新至目标应用的目标参数,包括:
接收读取指令,读取所述读取指令指示的自定义资源中存储的目标参数;其中,所述自定义资源所属的自定义资源类型,与所述目标应用的运行参数的类型相匹配;
所述将所述目标参数写入所述目标文件,以使所述目标应用将其运行参数更新为所述目标文件中存储的所述目标参数,包括:
将所述目标参数写入所述configmap文件和/或secret文件,以使运行在Kubernetes平台的容器中的目标应用,通过所述configmap文件和/或secret文件在所述容器中的映射获取到所述目标参数,并将其运行参数更新为所述目标参数。
5.一种兼容云原生应用的参数更新装置包括:
获取模块,获取待更新至目标应用的目标参数,以及所述目标应用的类型;
确定模块,根据所述目标应用的类型,确定用于向所述目标应用提供运行参数的目标文件;其中,在所述目标应用为通过文件映射接口获取运行参数的云原生应用的情况下,所述目标文件为所述文件映射接口兼容的源文件;在所述目标应用为通过读取配置文件获取运行参数的非云原生应用的情况下,所述目标文件为所述非云原生应用可读取的配置文件;
写入模块,将所述目标参数写入所述目标文件,以使所述目标应用将其运行参数更新为所述目标文件中存储的所述目标参数。
6.根据权利要求5所述的装置,所述获取模块进一步:
获取批量配置标识,并获取与所述批量配置标识对应的目标参数组;其中,所述目标参数组中包括至少两个目标参数。
7.根据权利要求6所述的装置,所述确定模块进一步:
获取所述目标参数组中包括的至少两个目标参数各自的参数类型;
根据所述目标应用的类型,以及所述目标参数组中各目标参数的参数类型,分别确定所述目标参数组中各目标参数对应的目标文件;
所述写入模块进一步:
将所述目标参数组中各目标参数,分别写入所述各目标参数对应的目标文件。
8.根据权利要求5所述的装置,所述云原生应用包括基于Kubernetes平台的云原生有状态应用,所述源文件包括configmap文件和/或secret文件;
所述获取模块进一步:
接收读取指令,读取所述读取指令指示的自定义资源中存储的目标参数;其中,所述自定义资源所属的自定义资源类型,与所述目标应用的运行参数的类型相匹配;
所述写入模块进一步:
将所述目标参数写入所述configmap文件和/或secret文件,以使运行在Kubernetes平台的容器中的目标应用,通过所述configmap文件和/或secret文件在所述容器中的映射获取到所述目标参数,并将其运行参数更新为所述目标参数。
9.一种计算机设备,其至少包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其中,处理器执行所述程序时实现权利要求1~4任一所述的方法。
10.一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1~4任一所述的方法。
CN202111244047.9A 2021-10-26 2021-10-26 一种兼容云原生应用的参数更新方法及装置 Pending CN113687854A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111244047.9A CN113687854A (zh) 2021-10-26 2021-10-26 一种兼容云原生应用的参数更新方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111244047.9A CN113687854A (zh) 2021-10-26 2021-10-26 一种兼容云原生应用的参数更新方法及装置

Publications (1)

Publication Number Publication Date
CN113687854A true CN113687854A (zh) 2021-11-23

Family

ID=78587947

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111244047.9A Pending CN113687854A (zh) 2021-10-26 2021-10-26 一种兼容云原生应用的参数更新方法及装置

Country Status (1)

Country Link
CN (1) CN113687854A (zh)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103377053A (zh) * 2012-04-16 2013-10-30 腾讯科技(深圳)有限公司 一种控制应用的方法、装置及系统
US20170289059A1 (en) * 2016-03-29 2017-10-05 Huazhong University Of Science And Technology Container-based mobile code offloading support system in cloud environment and offloading method thereof
CN110413346A (zh) * 2019-07-30 2019-11-05 中国工商银行股份有限公司 一种参数更新方法及装置
CN112463325A (zh) * 2020-11-25 2021-03-09 政采云有限公司 一种云原生参数映射方法、装置、设备及可读存储介质
CN112732412A (zh) * 2021-04-06 2021-04-30 浙江华创视讯科技有限公司 一种服务配置文件处理方法、装置、存储介质及电子设备

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103377053A (zh) * 2012-04-16 2013-10-30 腾讯科技(深圳)有限公司 一种控制应用的方法、装置及系统
US20170289059A1 (en) * 2016-03-29 2017-10-05 Huazhong University Of Science And Technology Container-based mobile code offloading support system in cloud environment and offloading method thereof
CN110413346A (zh) * 2019-07-30 2019-11-05 中国工商银行股份有限公司 一种参数更新方法及装置
CN112463325A (zh) * 2020-11-25 2021-03-09 政采云有限公司 一种云原生参数映射方法、装置、设备及可读存储介质
CN112732412A (zh) * 2021-04-06 2021-04-30 浙江华创视讯科技有限公司 一种服务配置文件处理方法、装置、存储介质及电子设备

Similar Documents

Publication Publication Date Title
USRE48311E1 (en) Apparatus and method for running multiple instances of a same application in mobile devices
US10261844B2 (en) Generic language application programming interface interpreter
CN105809028B (zh) 在移动设备中运行相同应用的多个实例的装置和方法
CN109359118B (zh) 一种数据写入方法及装置
CN109271211B (zh) 应用程序的分身方法、装置、设备和介质
US20160092887A1 (en) Application license distribution and management
US20170337560A1 (en) System for providing and employing recommended resolution paths
WO2021066904A1 (en) Automated software generation through mutation and artificial selection
KR20150099440A (ko) 런타임 시의 안드로이드 애플리케이션들을 경량 컨테이너로 샌드박싱하는 방법 및 장치
US20210405987A1 (en) Dynamic driver selection based on firmware for a hardware component
CN110968333B (zh) 配置信息替换方法和装置、机器可读存储介质及处理器
CN108667902B (zh) iOS设备的远程控制系统、方法、装置及设备
CN116628773A (zh) 数据处理方法、装置、电子设备及存储介质
CN111049883A (zh) 分布式表格系统的数据读取方法、装置及系统
CN113687854A (zh) 一种兼容云原生应用的参数更新方法及装置
US10579373B2 (en) Seamless extension porting
US10303462B2 (en) Windows support of a pluggable ecosystem for universal windows application stores
US11836503B2 (en) Electronic device for executing heterogeneous operating systems and method therefor
CN114358936A (zh) 一种基于微服务区块链的智能合约运行方法
CN113986476A (zh) 传感器设备虚拟化的方法、装置、电子设备和存储介质
CN110069417B (zh) A/b测试方法和装置
US9146720B1 (en) Binary file application processing
US11093041B2 (en) Computer system gesture-based graphical user interface control
US11995422B2 (en) Microservice deployment in integration and API layers using Augmented Reality
CN111813379B (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