CN113504972A - 一种服务部署方法及装置、电子设备和存储介质 - Google Patents

一种服务部署方法及装置、电子设备和存储介质 Download PDF

Info

Publication number
CN113504972A
CN113504972A CN202110843525.1A CN202110843525A CN113504972A CN 113504972 A CN113504972 A CN 113504972A CN 202110843525 A CN202110843525 A CN 202110843525A CN 113504972 A CN113504972 A CN 113504972A
Authority
CN
China
Prior art keywords
service
dependency
dependent
component
application
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
CN202110843525.1A
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.)
Jingdong Technology Holding Co Ltd
Original Assignee
Jingdong Technology Holding 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 Jingdong Technology Holding Co Ltd filed Critical Jingdong Technology Holding Co Ltd
Priority to CN202110843525.1A priority Critical patent/CN113504972A/zh
Publication of CN113504972A publication Critical patent/CN113504972A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • 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
    • 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/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files
    • G06F9/4451User profiles; Roaming
    • 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
    • G06F2009/45562Creating, deleting, cloning virtual machine instances

Abstract

本发明提供一种服务部署方法及装置、电子设备和存储介质。其中,所述方法包括,部署应用集,提取应用集中的服务开发组件及服务依赖配置文件,并提取服务依赖配置文件的依赖开发组件及依赖服务信息;基于服务开发组件和依赖开发组件形成服务依赖组件集合,并基于依赖服务信息形成服务依赖集合;基于服务依赖组件集合和服务依赖集合,生成依赖图谱;基于依赖图谱,部署目标应用服务。本发明提供的服务部署方法,通过基于生成的依赖图谱,部署目标应用服务,避免了在进行双模应用的服务部署时,需要先梳理依赖关系,然后在部署服务的情况发生,提高了其通用性。

Description

一种服务部署方法及装置、电子设备和存储介质
技术领域
本发明涉及计算机软件技术领域,尤其涉及一种服务部署方法及装置、电子设备和存储介质。
背景技术
随着以Docker和CNCF Kubernetes容器化编排平台为代表的云原生技术不断成熟和广泛应用,越来越多的企业应用技术架构开始向云原生技术架构转型,其实质是,应用容器相关技术体系。
常见的云原生技术架构的应用形态,无论是开发态还是运行态都在不断变化和演进,企业应用开发架构向微服务架构和云原生架构演进的过程中,导致业务应用的交付形态由单一技术栈集中式部署方式演化为多语言多服务分散式异构环境,随着业务应用被拆分为众多细粒度服务,应用内部构成与依赖关系更加复杂。
上述常见的云原生技术架构的应用形态存在的缺点或不足包括,在双模应用模式下,存在通用性差的问题。
发明内容
针对现有技术中存在的问题,本发明的实施例提供一种服务部署方法及装置、电子设备和存储介质。
本发明提供一种服务部署方法,包括:
部署应用集,提取所述应用集中的服务开发组件及服务依赖配置文件,并提取所述服务依赖配置文件的依赖开发组件及依赖服务信息;
基于所述服务开发组件和所述依赖开发组件形成服务依赖组件集合,并基于所述依赖服务信息形成服务依赖集合;
基于所述服务依赖组件集合和所述服务依赖集合,生成依赖图谱;
基于所述依赖图谱,部署目标应用服务。
根据本发明提供的一种服务部署方法,所述方法还包括:
判断所述应用集中是否包含所述服务依赖配置文件;
若所述应用集中包含所述服务依赖配置文件,继续执行提取所述应用集中的所述服务依赖配置文件;
若所述应用集中不包含所述服务依赖配置文件,结束执行提取所述应用集中的所述服务依赖配置文件。
根据本发明提供的一种服务部署方法,所述基于所述服务开发组件和所述依赖开发组件形成服务依赖组件集合,包括:
处理所述服务开发组件和所述依赖开发组件,形成开发组件集合;
创建开发组件映射库,基于所述开发组件映射库,将所述开发组件集合转换为所述服务依赖组件集合。
根据本发明提供的一种服务部署方法,所述基于所述服务依赖组件集合和所述服务依赖集合,生成依赖图谱,包括:
判断所述服务依赖组件集合是否存在任一服务包含目标组件的多个版本信息;
若所述服务依赖组件集合中存在任一服务包含目标组件的多个版本信息,确定所述目标组件及其对应的目标版本信息,形成目标组件集合,并聚合所述目标组件集合和所述服务依赖集合,生成服务依赖关系聚类;
若所述服务依赖组件集合中不存在任一服务包含目标组件的多个版本信息,聚合所述服务依赖组件集合和所述服务依赖集合,生成服务依赖关系聚类;
基于所述服务依赖关系聚类,生成所述依赖图谱。
根据本发明提供的一种服务部署方法,所述基于所述服务依赖关系聚类,生成所述依赖图谱,包括:
基于所述服务依赖关系聚类,确定所述应用集中服务依赖的依赖关系,并标识所述服务依赖的依赖冲突和依赖部署顺序;
基于所述依赖关系、所述依赖冲突和所述依赖部署顺序,生成所述依赖图谱。
本发明还提供一种服务部署装置,包括:
部署模块,用于部署应用集,提取所述应用集中的服务开发组件及服务依赖配置文件,并提取所述服务依赖配置文件的依赖开发组件及依赖服务信息;
基础模块,用于基于所述服务开发组件和所述依赖开发组件形成服务依赖组件集合,并基于所述依赖服务信息形成服务依赖集合;
生成模块,用于基于所述服务依赖组件集合和所述服务依赖集合,生成依赖图谱;
目标模块,用于基于所述依赖图谱,部署目标应用服务。
根据本发明提供的一种服务部署装置,所述装置还包括:
判断模块,用于判断所述应用集中是否包含所述服务依赖配置文件;
提取模块,用于若所述应用集中包含所述服务依赖配置文件,继续执行提取所述应用集中的所述服务依赖配置文件;
执行模块,用于若所述应用集中不包含所述服务依赖配置文件,结束执行提取所述应用集中的所述服务依赖配置文件。
根据本发明提供的一种服务部署装置,所述基础模块,包括:
处理子模块,用于处理所述服务开发组件和所述依赖开发组件,形成开发组件集合;
转换子模块,用于创建开发组件映射库,基于所述开发组件映射库,将所述开发组件集合转换为所述服务依赖组件集合。
根据本发明提供的一种服务部署装置,所述生成模块,包括:
判断子模块,用于判断所述服务依赖组件集合是否存在任一服务包含目标组件的多个版本信息;
确定子模块,用于若所述服务依赖组件集合中存在任一服务包含目标组件的多个版本信息,确定所述目标组件及其对应的目标版本信息,形成目标组件集合,并聚合所述目标组件集合和所述服务依赖集合,生成服务依赖关系聚类;
聚合子模块,用于若所述服务依赖组件集合中不存在任一服务包含目标组件的多个版本信息,聚合所述服务依赖组件集合和所述服务依赖集合,生成服务依赖关系聚类;
生成子模块,用于基于所述服务依赖关系聚类,生成所述依赖图谱。
根据本发明提供的一种服务部署装置,所述生成子模块,具体用于:
基于所述服务依赖关系聚类,确定所述应用集中服务依赖的依赖关系,并标识所述服务依赖的依赖冲突和依赖部署顺序;
基于所述依赖关系、所述依赖冲突和所述依赖部署顺序,生成所述依赖图谱。
本发明还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述任一种所述服务部署方法的步骤。
本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述任一种所述服务部署方法的步骤。
本发明提供的一种服务部署方法及装置、电子设备和存储介质,通过部署应用集,提取应用集中的服务开发组件及服务依赖配置文件,并提取服务依赖配置文件中的依赖开发组件及依赖服务信息;基于服务开发组件和依赖开发组件形成服务依赖组件集合,并基于依赖服务信息形成服务依赖集合;基于服务依赖组件集合和服务依赖集合,生成依赖图谱;基于依赖图谱,部署目标应用服务。本发明提供的服务部署方法及装置,通过基于生成的依赖图谱,部署目标应用服务,避免了在进行双模应用的服务部署时,需要先梳理依赖关系,然后在部署服务的情况发生,提高了其通用性。
附图说明
为了更清楚地说明本发明或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的服务部署方法的流程示意图;
图2是本发明实施例提供的服务部署方法中形成服务依赖组件集合和服务依赖集合的示例图;
图3是本发明实施例提供的服务部署方法中形成服务依赖组件集合的流程示意图;
图4是本发明实施例提供的服务部署方法中形成服务依赖组件集合的示例图;
图5是本发明实施例提供的服务部署方法中基于服务依赖组件集合和服务依赖集合生成依赖图谱的流程示意图;
图6是本发明实施例提供的服务部署方法中生成服务依赖关系聚类的示例图;
图7是本发明实施例提供的服务部署方法中基于服务依赖关系聚类生成依赖图谱的流程示意图;
图8是本发明实施例提供的服务部署方法中生成的依赖图谱的示例图;
图9是本发明实施例提供的服务部署方法的细化流程示意图;
图10是本发明实施例提供的服务部署装置的结构示意图;
图11是本发明实施例提供的电子设备的硬件结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
附图仅为示例而并非严格按比例绘制。如在本文中使用的,用语“优选”以及类似的用语,用作表近似,而不用作表程度,并且旨在说明将由本领域普通技术人员认识到的、测量值或计算值中的固有偏差。应注意,在本说明书中,“第一”、“第二”、“第三”等的表述仅用于将一个特征与另一个特征区分开来,而不表示对特征的任何限制,尤其不表示任何的先后顺序。
还应理解的是,诸如“包括”、“包括有”、“包含”和/或“包含有”等表述在本说明书中是开放性而非封闭性的表述,其表示存在所陈述的特征、元件和/或部件,但不排除一个或多个其它特征、元件、部件和/或它们的组合的存在。此外,当描述本申请的实施方式时,使用“可”表示“本申请的一个或多个实施方式”。并且,用语“示例性的”旨在指代示例或举例说明。
除非另外限定,否则本文中使用的所有措辞(包括工程术语和科技术语)均具有与本申请所属领域普通技术人员的通常理解相同的含义。还应理解的是,除非本申请中有明确的说明,否则在常用词典中定义的词语应被解释为具有与它们在相关技术的上下文中的含义一致的含义,而不应以理想化或过于形式化的意义解释。
为了解决现有技术中存在的问题,本发明的实施例提供一种服务部署方法及装置、电子设备和存储介质。
首先,对本发明一个或多个实施例涉及的名词术语进行解释。
应用集,又称应用程序集,是在功能上密切相关的一组应用程序。
应用服务,是指为集中管理的组织中提供应用的部署、供应、管理以及应用出租访问的契约性服务。
图1是根据本发明的一个实施例提供的服务部署方法的流程示意图。如图1所示,该方法包括:
步骤101,部署应用集,提取应用集中的服务开发组件及服务依赖配置文件,并提取服务依赖配置文件的依赖开发组件及依赖服务信息。
具体地,在步骤101中,部署应用集,是指部署功能上密切相关的一组应用程序集合。
对应地,服务开发组件是指,服务SDK(软件开发工具包)。服务依赖配置文件,是指通过自主研发得到并配置于应用集之中服务于各依赖的相关配置文件。
进一步地,依赖开发组件是指,依赖的SDK(软件开发工具包)。依赖服务信息是指,支持各依赖存续的服务的详细信息。
步骤102,基于服务开发组件和依赖开发组件形成服务依赖组件集合,并基于依赖服务信息形成服务依赖集合。
其中,服务依赖组件集合是指,在支持各依赖存续的服务中服务组件的集合。服务依赖集合是指,通过自主研发得到的支持各依赖存续的服务信息的集合。
具体地,基于服务开发组件和依赖开发组件形成服务依赖组件集合是指,先将服务SDK和依赖的SDK进行结合,再基于经结合的服务SDK和依赖的SDK,形成服务依赖组件集合。
基于依赖服务信息形成服务依赖集合是指,将支持各依赖存续的服务的详细信息存储于特定集合,进而,该集合就是服务依赖集合。
步骤103,基于服务依赖组件集合和服务依赖集合,生成依赖图谱。
具体地,步骤103中依赖图谱是指,表证程序中依赖关系的带有标记的有向多重图。
其中,依赖图谱包含依赖关系、依赖冲突及依赖部署顺序。
对应地,依赖关系亦称“逻辑关系”,是指表示在两个活动中一个活动的变更将会影响到另一个活动的关系。依赖冲突是指,两个活动因发生变更时均影响到了某一特定活动,而产生的冲突行为。依赖部署顺序是指,在一些活动中部署任一活动的变更影响到另一个活动的关系的顺序。
步骤104,基于依赖图谱,部署目标应用服务。
综上所述,需要说明的是,基于以上实施例,部署应用集后,会循环提取应用集中的服务依赖配置文件,直至应用集中没有服务依赖配置文件为止。
对应地,服务部署方法,还包括:
步骤S1,判断应用集中是否包含服务依赖配置文件。
步骤S2,若应用集中包含服务依赖配置文件,继续执行提取应用集中的服务依赖配置文件。
步骤S3,若应用集中不包含服务依赖配置文件,结束执行提取应用集中的服务依赖配置文件。
基于以上实施例,概括而言,本发明的实施例提供的服务部署方法,通过基于生成的依赖图谱,部署目标应用服务,避免了在进行双模应用的服务部署时,需要先梳理依赖关系,然后在部署服务的情况发生,同时,降低了依赖关系的复杂性,提高了其通用性。
优选地,可以结合具体实例对上述实施例记载的服务部署方法中形成服务依赖组件集合和服务依赖集合进行说明。
基于以上实施例,图2是根据本发明的一个实施例提供的服务部署方法中形成服务依赖组件集合和服务依赖集合的示例图。图2显示了应用集201、中间组件集合202以及服务依赖集合203。
示例地,部署应用集201,提取应用集201中所有服务的SDK(软件开发工具包)以及dependency.json文件(服务依赖配置文件),直至应用集201中没有dependency.json文件,结束提取应用集201中的dependency.json文件。
同时,循环提取dependency.json文件中的依赖的SDK(软件开发工具包)和依赖服务信息。
进一步的,将所有服务的SDK和进行结合,形成中间组件集合202,在基于中间组件集合202,形成服务依赖组件集合。
将依赖服务信息存储于特定集合,进而,该集合就是服务依赖集合203。
基于以上实施例,图3是根据本发明的一个实施例提供的服务部署方法中形成服务依赖组件集合的流程示意图。如图3所示,形成服务依赖组件集合,包括:
步骤301,处理服务开发组件和依赖开发组件,形成开发组件集合。
具体地,步骤301是指,先将服务开发组件和依赖开发组件进行结合,再将其存储于特定集合,进而,该集合就是开发组件集合。
步骤302,创建开发组件映射库,基于开发组件映射库,将开发组件集合转换为服务依赖组件集合。
具体地,在步骤302中,创建开发组件映射库是指,创建将开发组件分为坐标及版本号以及将可使用的组件与其版本号进行对应的组件映射集合。
示例性地,若某一服务中使用了mysql-connector-java-8.0.20组件,其坐标对应为mysql-connector-java,其版本号对应为8.0.20,另外,若mysql-connector-java-8.0.*均使用该mysql组件,且可能除了应用8.0版本,还会用到其5.6和5.7版本,则对应创建一条数据,参见:
mysql-connector-java#8.0.*:{mysql:[5.6,5.7,8.0]}
进而,由类似以上数据的多条数据组合形成开发组件映射库。
优选地,可以结合具体实例对上述实施例记载的服务部署方法中形成服务依赖组件集合进行说明。
基于以上实施例,图4是根据本发明的一个实施例提供的服务部署方法中形成服务依赖组件集合的示例图。图4显示了开发组件集合401、开发组件映射库402以及服务依赖组件集合403。
示例性地,若处理服务开发组件和依赖开发组件,形成开发组件集合401,且创建的开发组件映射库为开发组件映射库402;则对应的开发组件集合401会由开发组件映射库402转换为服务依赖组件集合403。
基于以上实施例,概括而言,本发明提供的服务部署方法中通过形成服务依赖组件集合,降低了依赖关系的复杂性。
基于以上实施例,图5是根据本发明的一个实施例提供的服务部署方法中基于服务依赖组件集合和服务依赖集合生成依赖图谱的流程示意图。如图5所示,基于服务依赖组件集合和服务依赖集合生成依赖图谱,包括:
步骤501,判断服务依赖组件集合是否存在任一服务包含目标组件的多个版本信息;若是,执行步骤502,若否,执行步骤503。
示例性地,步骤501是指若服务依赖组件集合中的一个服务包含目标组件mysql,则判断在服务依赖组件集合中的该服务中是否包含mysql组件的多个版本信息。
步骤502,若服务依赖组件集合中存在任一服务包含目标组件的多个版本信息,确定目标组件及其对应的目标版本信息,形成目标组件集合,并聚合目标组件集合和服务依赖集合,生成服务依赖关系聚类。
具体地,聚合目标组件集合和服务依赖集合,是指将目标组件集合和服务依赖集合中的所有个体聚集在一起。
对应地,服务依赖关系聚类是指,将服务依赖关系中抽象对象的集合划分为由类似的对象组成的多个类的分析过程。
示例性地,若确定服务依赖组件集合中存在任一服务包含某一目标组件mysql的1.2、3.4、4.4、5.6、5.7、7.1、8.0、9.2、9.3、9.5和9.9等多个版本信息,并将可供使用的mysql-connector-java组件,及其对应可供使用的5.6、5.7和8.0等版本信息列出;再将mysql-connector-java组件对应的8.0版本作为推荐版本,以供选择确定,最后确定目标组件为mysql-connector-java,其对应的目标版本信息为8.0版本。重复前述确定目标组件及其对应的目标版本信息的步骤,可以得到多个目标组件,及多个目标组件分别对应的目标版本信息。由多个目标组件及其分别对应的目标版本信息形成目标组件集合。聚合目标组件集合和服务依赖集合,生成服务依赖关系聚类。
步骤503,若服务依赖组件集合中不存在任一服务包含目标组件的多个版本信息,聚合服务依赖组件集合和服务依赖集合,生成服务依赖关系聚类。
具体地,聚合服务依赖组件集合和服务依赖集合,是指将服务依赖组件集合和服务依赖集合中的所有个体聚集在一起。
对应地,服务依赖关系聚类是指,将服务依赖关系中抽象对象的集合划分为由类似的对象组成的多个类的分析过程。
步骤504,基于服务依赖关系聚类,生成依赖图谱。
优选地,可以结合具体实例对上述实施例记载的服务部署方法中生成服务依赖关系聚类进行说明。
基于以上实施例,图6是根据本发明的一个实施例提供的服务部署方法中生成服务依赖关系聚类的示例图。图6显示了服务依赖组件集合601、服务依赖集合602和服务依赖关系聚类603。
示例性地,判断服务依赖组件集合601是否存在任一服务包含目标组件的多个版本信息。
若服务依赖组件集合601中存在任一服务包含目标组件的多个版本信息,确定目标组件及其对应的目标版本信息,形成目标组件集合,并聚合目标组件集合和服务依赖集合602,生成服务依赖关系聚类603。
若服务依赖组件集合601中不存在任一服务包含目标组件的多个版本信息,聚合服务依赖组件集合601和服务依赖集合602,生成服务依赖关系聚类603。
基于以上实施例,概括而言,本发明提供的服务部署方法中通过生成服务依赖关系聚类,避免了在进行服务部署时,需要先梳理依赖关系的情况发生。
基于以上实施例,图7是根据本发明的一个实施例提供的服务部署方法中基于服务依赖关系聚类生成依赖图谱的流程示意图。如图7所示,基于服务依赖关系聚类生成依赖图谱,包括:
步骤701,基于服务依赖关系聚类,确定应用集中服务依赖的依赖关系,并标识服务依赖的依赖冲突和依赖部署顺序。
具体地,在步骤701中,服务依赖关系聚类是指,将服务依赖关系中抽象对象的集合划分为由类似的对象组成的多个类的分析过程。服务依赖是指,各服务之间的依赖关系。
步骤702,基于依赖关系、依赖冲突和依赖部署顺序,生成依赖图谱。
优选地,可以结合具体实例对上述实施例记载的服务部署方法中生成的依赖图谱进行说明。
基于以上实施例,图8是根据本发明的一个实施例提供的服务部署方法中生成的依赖图谱的示例图。如图8所示,为基于服务依赖关系聚类生成的依赖图谱。
具体地,依赖图谱中的应用包括:Service D_2.1.1(2)、Service F_1.2.1(3)、Service A_1.1.3(4)、Service C_3.6.2(5)、Service B_4.2.1(6)、Service G_1.6.2(7)和Service E_1.5.3(8)。
依赖图谱中的服务依赖配置文件包括:auth_1.6.2(1)、Service D_2.1.5(2)和Service F_1.2.3(3)。
依赖图谱中的组件包括:kafka_2.3.1(1)、redis_3.2(1)、MongoDB_3.4(1)、elasticsearch_7.12.0(1)和mysql_8.0(1)。
对应地,依赖图谱中各应用分别与服务依赖配置文件和组件之间的关系为:
Service D_2.1.1(2)依赖auth_1.6.2(1),且与Service D_2.1.5(2)冲突;
Service F_1.2.1(3)与Service F_1.2.3(3)冲突;
Service A_1.1.3(4)分别依赖kafka_2.3.1(1)、mysql_8.0(1)、Service D_2.1.1(2)和Service F_1.2.1(3);
Service C_3.6.2(5)依赖MongoDB_3.4(1);
Service B_4.2.1(6)分别依赖elasticsearch_7.12.0(1)、mysql_8.0(1)、Service D_2.1.5(2)和Service C_3.6.2(5);
Service E_1.5.3(8)分别依赖Service C_3.6.2(5)、Service G_1.6.2(7)、redis_3.2(1)和Service F_1.2.3(3)。
基于以上实施例,概括而言,本发明提供的服务部署方法中基于服务依赖关系聚类生成依赖图谱,可应用于多种编程语言的开发环境之中。
基于上述实施例,图9是根据本发明的一个实施例提供的服务部署方法的细化流程示意图。如图9所示,该方法包括:
步骤901,部署应用集,提取应用集中的服务开发组件及服务依赖配置文件。
步骤902,提取服务依赖配置文件的依赖开发组件及依赖服务信息。
步骤903,判断应用集中是否包含服务依赖配置文件;若是,执行步骤904,若否,执行步骤905。
步骤904,继续执行提取应用集中的服务依赖配置文件。
步骤905,结束执行提取应用集中的服务依赖配置文件。
步骤906,处理服务开发组件和依赖开发组件,形成开发组件集合。
步骤907,基于依赖服务信息形成服务依赖集合。
步骤908,创建开发组件映射库,基于开发组件映射库,将开发组件集合转换为服务依赖组件集合。
步骤909,判断服务依赖组件集合是否存在任一服务包含目标组件的多个版本信息;若是,执行步骤910,若否,执行步骤911。
步骤910,确定目标组件及其对应的目标版本信息,形成目标组件集合,并聚合目标组件集合和服务依赖集合,生成服务依赖关系聚类。
步骤911,聚合服务依赖组件集合和服务依赖集合,生成服务依赖关系聚类。
步骤912,基于服务聚类,确定应用集中服务依赖的依赖关系,并标识服务依赖的依赖冲突和依赖部署顺序。
步骤913,基于依赖关系、依赖冲突和依赖部署顺序,生成依赖图谱。
步骤914,基于依赖图谱,部署目标应用服务。
基于以上实施例,概括而言,本发明的实施例提供的服务部署方法,通过基于生成的依赖图谱,部署目标应用服务,避免了在进行双模应用的服务部署时,需要先梳理依赖关系,然后在部署服务的情况发生,同时,降低了依赖关系的复杂性,进而,可将其应用于多种编程语言的开发环境之中,提高了其通用性。
基于上述实施例,图10是根据本发明的一个实施例提供的服务部署装置的结构示意图。如图10所示,服务部署装置包括:部署模块1010、基础模块1020、生成模块1030和目标模块1040。
部署模块1010,用于部署应用集,提取应用集中的服务开发组件及服务依赖配置文件,并提取服务依赖配置文件的依赖开发组件及依赖服务信息。
基础模块1020,用于基于服务开发组件和依赖开发组件形成服务依赖组件集合,并基于依赖服务信息形成服务依赖集合。
其中,基础模块1020包括:处理子模块和转换子模块。
处理子模块,用于处理服务开发组件和依赖开发组件,形成开发组件集合。
转换子模块,用于创建开发组件映射库,基于开发组件映射库,将开发组件集合转换为服务依赖组件集合。
生成模块1030,用于基于服务依赖组件集合和服务依赖集合,生成依赖图谱;
其中,生成模块1030包括:判断子模块、确定子模块、聚合子模块和生成子模块。
判断子模块,用于判断服务依赖组件集合是否存在任一服务包含目标组件的多个版本信息。
确定子模块,用于若服务依赖组件集合中存在任一服务包含目标组件的多个版本信息,确定目标组件及其对应的目标版本信息,形成目标组件集合,并聚合目标组件集合和服务依赖集合,生成服务依赖关系聚类。
聚合子模块,用于若服务依赖组件集合中不存在任一服务包含目标组件的多个版本信息,聚合服务依赖组件集合和服务依赖集合,生成服务依赖关系聚类。
生成子模块,用于基于服务依赖关系聚类,生成依赖图谱。
进一步地,生成子模块,具体用于:基于服务依赖关系聚类,确定应用集中服务依赖的依赖关系,并标识服务依赖的依赖冲突和依赖部署顺序;基于依赖关系、依赖冲突和依赖部署顺序,生成依赖图谱。
目标模块1040,用于基于依赖图谱,部署目标应用服务。
需要说明的是,服务部署装置,还包括:判断模块、提取模块和执行模块。
判断模块,用于判断应用集中是否包含服务依赖配置文件。
提取模块,用于若应用集中包含服务依赖配置文件,继续执行提取应用集中的服务依赖配置文件。
执行模块,用于若应用集中不包含服务依赖配置文件,结束执行提取应用集中的服务依赖配置文件。
基于以上实施例,概括而言,本发明的实施例提供的服务部署装置,通过基于生成的依赖图谱,部署目标应用服务,避免了在进行双模应用的服务部署时,需要先梳理依赖关系,然后在部署服务的情况发生,同时,降低了依赖关系的复杂性,提高了其通用性。
图11是根据本发明的一个实施例提供的电子设备的硬件结构示意图。如图11所示,该电子设备可以包括:处理器(processor)1110、通信接口(CommunicationsInterface)1120、存储器(memory)1130和通信总线1140,其中,处理器1110,通信接口1120,存储器1130通过通信总线1140完成相互间的通信。处理器1110可以调用存储器1130中的逻辑指令,以执行服务部署方法,该方法包括:部署应用集,提取所述应用集中的服务开发组件及服务依赖配置文件,并提取所述服务依赖配置文件的依赖开发组件及依赖服务信息;基于所述服务开发组件和所述依赖开发组件形成服务依赖组件集合,并基于所述依赖服务信息形成服务依赖集合;基于所述服务依赖组件集合和所述服务依赖集合,生成依赖图谱;基于所述依赖图谱,部署目标应用服务。
此外,上述的存储器1130中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
另一方面,本发明还提供一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各方法所提供的服务部署方法,该方法包括:部署应用集,提取所述应用集中的服务开发组件及服务依赖配置文件,并提取所述服务依赖配置文件的依赖开发组件及依赖服务信息;基于所述服务开发组件和所述依赖开发组件形成服务依赖组件集合,并基于所述依赖服务信息形成服务依赖集合;基于所述服务依赖组件集合和所述服务依赖集合,生成依赖图谱;于所述依赖图谱,部署目标应用服务。
又一方面,本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各方法提供的服务部署方法,该方法包括:部署应用集,提取所述应用集中的服务开发组件及服务依赖配置文件,并提取所述服务依赖配置文件的依赖开发组件及依赖服务信息;基于所述服务开发组件和所述依赖开发组件形成服务依赖组件集合,并基于所述依赖服务信息形成服务依赖集合;基于所述服务依赖组件集合和所述服务依赖集合,生成依赖图谱;基于所述依赖图谱,部署目标应用服务。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

Claims (10)

1.一种服务部署方法,其特征在于,包括:
部署应用集,提取所述应用集中的服务开发组件及服务依赖配置文件,并提取所述服务依赖配置文件的依赖开发组件及依赖服务信息;
基于所述服务开发组件和所述依赖开发组件形成服务依赖组件集合,并基于所述依赖服务信息形成服务依赖集合;
基于所述服务依赖组件集合和所述服务依赖集合,生成依赖图谱;
基于所述依赖图谱,部署目标应用服务。
2.根据权利要求1所述的服务部署方法,其特征在于,所述方法还包括:
判断所述应用集中是否包含所述服务依赖配置文件;
若所述应用集中包含所述服务依赖配置文件,继续执行提取所述应用集中的所述服务依赖配置文件;
若所述应用集中不包含所述服务依赖配置文件,结束执行提取所述应用集中的所述服务依赖配置文件。
3.根据权利要求1所述的服务部署方法,其特征在于,所述基于所述服务开发组件和所述依赖开发组件形成服务依赖组件集合,包括:
处理所述服务开发组件和所述依赖开发组件,形成开发组件集合;
创建开发组件映射库,基于所述开发组件映射库,将所述开发组件集合转换为所述服务依赖组件集合。
4.根据权利要求1所述的服务部署方法,其特征在于,所述基于所述服务依赖组件集合和所述服务依赖集合,生成依赖图谱,包括:
判断所述服务依赖组件集合是否存在任一服务包含目标组件的多个版本信息;
若所述服务依赖组件集合中存在任一服务包含目标组件的多个版本信息,确定所述目标组件及其对应的目标版本信息,形成目标组件集合,并聚合所述目标组件集合和所述服务依赖集合,生成服务依赖关系聚类;
若所述服务依赖组件集合中不存在任一服务包含目标组件的多个版本信息,聚合所述服务依赖组件集合和所述服务依赖集合,生成服务依赖关系聚类;
基于所述服务依赖关系聚类,生成所述依赖图谱。
5.根据权利要求4所述的服务部署方法,其特征在于,所述基于所述服务依赖关系聚类,生成所述依赖图谱,包括:
基于所述服务依赖关系聚类,确定所述应用集中服务依赖的依赖关系,并标识所述服务依赖的依赖冲突和依赖部署顺序;
基于所述依赖关系、所述依赖冲突和所述依赖部署顺序,生成所述依赖图谱。
6.一种服务部署装置,其特征在于,包括:
部署模块,用于部署应用集,提取所述应用集中的服务开发组件及服务依赖配置文件,并提取所述服务依赖配置文件的依赖开发组件及依赖服务信息;
基础模块,用于基于所述服务开发组件和所述依赖开发组件形成服务依赖组件集合,并基于所述依赖服务信息形成服务依赖集合;
生成模块,用于基于所述服务依赖组件集合和所述服务依赖集合,生成依赖图谱;
目标模块,用于基于所述依赖图谱,部署目标应用服务。
7.根据权利要求6所述的服务部署装置,其特征在于,所述装置还包括:
判断模块,用于判断所述应用集中是否包含所述服务依赖配置文件;
提取模块,用于若所述应用集中包含所述服务依赖配置文件,继续执行提取所述应用集中的所述服务依赖配置文件;
执行模块,用于若所述应用集中不包含所述服务依赖配置文件,结束执行提取所述应用集中的所述服务依赖配置文件。
8.根据权利要求6所述的服务部署装置,其特征在于,所述基础模块,包括:
处理子模块,用于处理所述服务开发组件和所述依赖开发组件,形成开发组件集合;
转换子模块,用于创建开发组件映射库,基于所述开发组件映射库,将所述开发组件集合转换为所述服务依赖组件集合。
9.一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至5任一项所述的服务部署方法的步骤。
10.一种非暂态计算机可读存储介质,所述存储介质中存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至5任一项所述的服务部署方法的步骤。
CN202110843525.1A 2021-07-26 2021-07-26 一种服务部署方法及装置、电子设备和存储介质 Pending CN113504972A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110843525.1A CN113504972A (zh) 2021-07-26 2021-07-26 一种服务部署方法及装置、电子设备和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110843525.1A CN113504972A (zh) 2021-07-26 2021-07-26 一种服务部署方法及装置、电子设备和存储介质

Publications (1)

Publication Number Publication Date
CN113504972A true CN113504972A (zh) 2021-10-15

Family

ID=78014706

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110843525.1A Pending CN113504972A (zh) 2021-07-26 2021-07-26 一种服务部署方法及装置、电子设备和存储介质

Country Status (1)

Country Link
CN (1) CN113504972A (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114003312A (zh) * 2021-10-29 2022-02-01 广东智联蔚来科技有限公司 大数据服务组件管理方法、计算机装置及存储介质
CN115016832A (zh) * 2022-08-08 2022-09-06 北京安普诺信息技术有限公司 一种深度分析软件组件依赖关系的方法及相关装置、平台
CN115190010A (zh) * 2022-07-01 2022-10-14 北京友友天宇系统技术有限公司 基于软件服务依赖关系的分布推荐方法和装置

Citations (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101957794A (zh) * 2010-09-21 2011-01-26 中国科学院软件研究所 Web应用部署约束自动检测方法
US20130232497A1 (en) * 2012-03-02 2013-09-05 Vmware, Inc. Execution of a distributed deployment plan for a multi-tier application in a cloud infrastructure
US8624898B1 (en) * 2009-03-09 2014-01-07 Pixar Typed dependency graphs
CN103559025A (zh) * 2013-10-21 2014-02-05 沈阳建筑大学 一种采用聚类方式进行软件重构的方法
CN105704188A (zh) * 2014-11-27 2016-06-22 华为软件技术有限公司 应用与服务的部署方法和装置
CN107870845A (zh) * 2017-10-19 2018-04-03 北京工业大数据创新中心有限公司 面向微服务架构应用的管理方法及系统
CN108475360A (zh) * 2015-12-31 2018-08-31 微软技术许可有限责任公司 分布式计算依赖管理系统
CN109491763A (zh) * 2018-11-14 2019-03-19 北京奇艺世纪科技有限公司 一种系统部署方法、装置及电子设备
CN110391938A (zh) * 2019-07-26 2019-10-29 北京百度网讯科技有限公司 用于部署服务的方法和装置
CN110609732A (zh) * 2019-08-13 2019-12-24 平安普惠企业管理有限公司 应用程序部署方法、装置、计算机设备和存储介质
CN111782523A (zh) * 2020-06-29 2020-10-16 平安国际智慧城市科技股份有限公司 云端服务部署测试方法、装置、电子设备和存储介质
CN111783103A (zh) * 2020-07-03 2020-10-16 Oppo广东移动通信有限公司 基于Maven的依赖管理方法、装置、电子装置及存储介质
CN111914098A (zh) * 2020-07-19 2020-11-10 中信银行股份有限公司 一种知识图谱构建方法、装置、电子设备和可读存储介质

Patent Citations (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8624898B1 (en) * 2009-03-09 2014-01-07 Pixar Typed dependency graphs
CN101957794A (zh) * 2010-09-21 2011-01-26 中国科学院软件研究所 Web应用部署约束自动检测方法
US20130232497A1 (en) * 2012-03-02 2013-09-05 Vmware, Inc. Execution of a distributed deployment plan for a multi-tier application in a cloud infrastructure
CN103559025A (zh) * 2013-10-21 2014-02-05 沈阳建筑大学 一种采用聚类方式进行软件重构的方法
CN105704188A (zh) * 2014-11-27 2016-06-22 华为软件技术有限公司 应用与服务的部署方法和装置
CN108475360A (zh) * 2015-12-31 2018-08-31 微软技术许可有限责任公司 分布式计算依赖管理系统
CN113094242A (zh) * 2015-12-31 2021-07-09 微软技术许可有限责任公司 分布式计算依赖管理系统
CN107870845A (zh) * 2017-10-19 2018-04-03 北京工业大数据创新中心有限公司 面向微服务架构应用的管理方法及系统
CN109491763A (zh) * 2018-11-14 2019-03-19 北京奇艺世纪科技有限公司 一种系统部署方法、装置及电子设备
CN110391938A (zh) * 2019-07-26 2019-10-29 北京百度网讯科技有限公司 用于部署服务的方法和装置
CN110609732A (zh) * 2019-08-13 2019-12-24 平安普惠企业管理有限公司 应用程序部署方法、装置、计算机设备和存储介质
CN111782523A (zh) * 2020-06-29 2020-10-16 平安国际智慧城市科技股份有限公司 云端服务部署测试方法、装置、电子设备和存储介质
CN111783103A (zh) * 2020-07-03 2020-10-16 Oppo广东移动通信有限公司 基于Maven的依赖管理方法、装置、电子装置及存储介质
CN111914098A (zh) * 2020-07-19 2020-11-10 中信银行股份有限公司 一种知识图谱构建方法、装置、电子设备和可读存储介质

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114003312A (zh) * 2021-10-29 2022-02-01 广东智联蔚来科技有限公司 大数据服务组件管理方法、计算机装置及存储介质
CN115190010A (zh) * 2022-07-01 2022-10-14 北京友友天宇系统技术有限公司 基于软件服务依赖关系的分布推荐方法和装置
CN115016832A (zh) * 2022-08-08 2022-09-06 北京安普诺信息技术有限公司 一种深度分析软件组件依赖关系的方法及相关装置、平台

Similar Documents

Publication Publication Date Title
CN113504972A (zh) 一种服务部署方法及装置、电子设备和存储介质
CN108614726B (zh) 虚拟机创建方法及装置
CN102546946B (zh) 移动终端处理任务的方法及装置
JP7394211B2 (ja) スマートコントラクトの並行実行の方法、装置、機器、及び媒体
US20220413846A1 (en) System and method for software architecture redesign
CN110389903B (zh) 测试环境部署方法和装置、电子设备和可读存储介质
CN111031133A (zh) 业务引擎的运行方法和装置、存储介质、电子装置
CN112181419B (zh) 一种界面生成方法、装置及存储介质
CN111966597B (zh) 测试数据生成方法及装置
CN114816170A (zh) 规则方案生成方法、装置、介质及电子设备
CN112306452A (zh) 归并排序算法处理业务数据的方法、装置及系统
CN114968603A (zh) 一种支持多档负载平衡的容量检测方法及装置
CN114546424A (zh) 应用发布方法、装置、设备
CN114721801A (zh) 批量任务执行时间的动态调度方法及装置
CN113127005A (zh) 一种可执行文件生成的方法、装置以及计算机存储介质
CN112083952A (zh) 一种基于spring架构的异常处理方法及系统
CN116594769A (zh) 一种微服务的请求响应方法、系统、计算机设备及介质
CN110928876A (zh) 资信数据存储的方法和装置
CN111124424B (zh) 一种算法复杂度分析的方法和装置
CN116522002B (zh) 一种基于机器学习的通航服务系统的容器推荐方法及系统
CN115082286A (zh) 边缘节点的gpu运行方法、装置、电子设备及介质
CN113656268B (zh) 业务服务的性能测试方法、装置、电子设备和存储介质
US8271406B2 (en) Computing mixed-integer program solutions using multiple starting vectors
CN113204396A (zh) 业务处理系统、方法及装置
De Almeida et al. Designing domain-specific software architecture (DSSA): Towards a new approach

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