CN116755799A - 一种服务编排系统和方法 - Google Patents
一种服务编排系统和方法 Download PDFInfo
- Publication number
- CN116755799A CN116755799A CN202310744262.8A CN202310744262A CN116755799A CN 116755799 A CN116755799 A CN 116755799A CN 202310744262 A CN202310744262 A CN 202310744262A CN 116755799 A CN116755799 A CN 116755799A
- Authority
- CN
- China
- Prior art keywords
- service
- arrangement
- processed
- user
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 68
- 230000000007 visual effect Effects 0.000 claims abstract description 26
- 238000012545 processing Methods 0.000 claims description 43
- 238000003860 storage Methods 0.000 claims description 14
- 238000006243 chemical reaction Methods 0.000 claims description 9
- 230000004044 response Effects 0.000 claims description 7
- 238000010200 validation analysis Methods 0.000 claims description 5
- 238000012800 visualization Methods 0.000 claims 1
- 230000000694 effects Effects 0.000 abstract description 5
- 239000008186 active pharmaceutical agent Substances 0.000 description 31
- 230000006870 function Effects 0.000 description 14
- 238000004891 communication Methods 0.000 description 13
- 238000013461 design Methods 0.000 description 13
- 238000004590 computer program Methods 0.000 description 12
- 238000010586 diagram Methods 0.000 description 11
- 239000003795 chemical substances by application Substances 0.000 description 10
- 230000008569 process Effects 0.000 description 10
- 238000005516 engineering process Methods 0.000 description 7
- 230000005540 biological transmission Effects 0.000 description 6
- 238000011161 development Methods 0.000 description 5
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000009826 distribution Methods 0.000 description 3
- 238000012423 maintenance Methods 0.000 description 3
- 239000000047 product Substances 0.000 description 3
- 239000007795 chemical reaction product Substances 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 239000000463 material Substances 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000000750 progressive effect Effects 0.000 description 2
- 108010001267 Protein Subunits Proteins 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 230000002776 aggregation Effects 0.000 description 1
- 238000004220 aggregation Methods 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000013475 authorization Methods 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000001364 causal effect Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
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/445—Program loading or initiating
- G06F9/44505—Configuring for program initiating, e.g. using registry, configuration files
Abstract
本申请提供了一种服务编排系统和方法,其中,该方法包括:接收用户通过可视化界面输入服务编排规则;将所述服务编排规则转换为服务边车可处理的配置项,并将所述服务边车可处理的配置项分发到对应的服务边车;服务边车对所述可处理的配置项进行解析处理生成可用于业务应用调用的组合式接口。通过上述方案解决了现有的中心化的服务编排所存在的单点故障和性能瓶颈的问题,达到了避免单点故障和性能瓶颈的技术效果。
Description
技术领域
本申请属于互联网技术领域,尤其涉及一种服务编排系统和方法。
背景技术
随着互联网技术的不断发展和普及,越来越多的企业和组织开始采用分布式架构和微服务架构来构建自己的业务系统和应用程序。在这种分布式的环境下,不同的服务之间需要通过API接口进行通信和协作,而这种通信和协作往往需要进行一定的编排和管理,以确保整个系统的高效稳定运行。
基于API接口的服务编排技术就是针对这种需求而产生的,它是通过对服务接口进行编排和管理,以将不同的服务组合起来,形成一个完整的应用程序或业务流程,以便实现更高效的业务操作和数据流转。
现有的API接口的服务编排技术大都是采用中心化的架构方式,例如,无论是基于API网关扩展、或者是基于开放API平台扩展、或者是基于独立的产品形态等,最终提供的组合后的API都是通过一个中心化的组件通过暴露特定规则的接口方式来实现的。
然而,基于中心化的API接口的服务编排方式存在如下问题:
1)单点故障:中心化的组件有可能出现故障,例如:API网关成为服务的唯一入口,如果该API网关出现故障,那么所有服务都将无法访问。因此,需要在API网关前面添加负载均衡器和冗余部署,以确保高可用性。
2)性能瓶颈:中心化组件需要处理整个系统内的业务流量,例如:API网关需要处理所有服务的请求和响应,这可能会成为性能瓶颈。另外,对于企业而言,服务编排可能会有多个规则,在一些组织较大企业可能需要处理的规则更多,导致资源负荷较大。
3)复杂性:中心化的组件,例如:API网关需要集成多个服务,并将它们组合成一个统一的服务,这就需要对多个服务进行配置和管理,势必会增加系统的复杂性。
4)安全性:API网关需要保护服务的安全性,包括对请求进行身份验证和授权,以及对响应进行加密和签名。在API网关或者一些开放平台上做一些自定义的编排设计,可能会采用一些动态语法或者脚本实现,这增加了系统的安全风险和管理成本。
5)难以扩展:基于中心化的组件,例如:API网关是一个全局的重要组件,在后续有新的业务需求变更的时候,无法高效地对现有的组件进行扩展设计,一方面是升级、变更会有风险,第二是由于现有架构设计一般而言比较稳定,二次开发或者增强会比较难,导致整个系统的可扩展性比较差。
针对基于中心化的API接口的服务编排方式所存在的上述问题,目前尚未提出有效的解决方案。
发明内容
本申请目的在于提供一种服务编排系统和方法,可以解决现有的服务编排所存在的单点故障和性能瓶颈的问题。
本申请提供一种服务编排系统和方法是这样实现的:
一种服务编排系统,包括:
用户控制台,用于用户通过可视化界面输入服务编排规则;
服务编排引擎服务端,与所述用户控制台相连,用于接收所述服务编排规则,将所述服务编排规则转换为服务边车可处理的配置项,并将所述服务边车可处理的配置项分发到对应的服务边车;
多个微服务组成的服务网格,每个微服务旁设置有一个服务边车,在服务边车内设置有服务编排客户端模块,用于接收处理来自所述服务编排引擎服务端的可处理的配置项,并对所述可处理的配置项进行解析处理得到可用于业务应用调用的组合式接口。
在一个实施方式中,上述系统还包括:服务网格的管控组件,用于对服务网格中每个微服务的服务边车进行管理,并对服务网格中的流量路由、安全、遥测和策略进行控制。
在一个实施方式中,上述系统还包括:业务应用,与所述服务网格进行通信,用于向服务网格发出请求,并从服务网格接收响应。
一种基于上述服务编排系统进行服务编排的方法,包括:
接收用户通过可视化界面输入服务编排规则;
将所述服务编排规则转换为服务边车可处理的配置项,并将所述服务边车可处理的配置项分发到对应的服务边车;
服务边车对所述可处理的配置项进行解析处理生成可用于业务应用调用的组合式接口。
在一个实施方式中,所述服务编排规则中携带有应用范围,相应的,将所述服务边车可处理的配置项分发到对应的服务边车,包括:
获取应用范围;
根据所述应用范围,确定所述服务边车可处理的配置项所需分发到的微服务组;
将确定出的微服务组中的微服务对应的服务边车作为目标服务边车,将所述服务边车可处理的配置项分发到所述目标服务边车。
在一个实施方式中,所述应用范围包括:全局生效,或者,指定微服务生效。
在一个实施方式中,接收用户通过可视化界面输入服务编排规则之前,还包括:
接收用户在用户控制台上通过可视化界面创建的编排规则,其中,所述服务编排规则中携带有转换逻辑;
在所述转换逻辑中添加数据合并逻辑和数据去重逻辑,得到一个JSON格式的数组对象;
将所述JSON格式的数组对象作为所述服务编排规则。
在一个实施方式中,服务边车对所述可处理的配置项进行解析处理生成可用于业务应用调用的组合式接口,包括:
从所述可处理的配置项中提取出需处理的数据和处理逻辑;
根据所述处理逻辑,对所述需处理的数据进行合并和去重处理,得到处理结果数据;
生成并暴露所述组合式接口,以使用户可通过所述组合式接口访问所述处理结果数据。一种电子设备,包括处理器以及用于存储处理器可执行指令的存储器,所述处理器执行所述指令时实现上述方法的步骤。
一种计算机可读存储介质,其上存储有计算机指令,所述指令被处理器执行时实现上述方法的步骤。
本申请提供的服务编排系统和方法,接收用户通过可视化界面输入服务编排,然后,将服务编排规则转换为服务边车可处理的配置项,并将所述服务边车可处理的配置项分发到对应的服务边车;服务边车对所述可处理的配置项进行解析处理得到可用于业务应用调用的组合式接口。即,通过服务网格中各个微服务的服务边车进行服务编排形成新的接口,而不需要进行中心化布设,从而解决了现有的中心化的服务编排所存在的单点故障和性能瓶颈的问题,达到了避免单点故障和性能瓶颈的技术效果。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本申请提供的服务编排系统的架构示意图;
图2是本申请提供的服务编排系统的一个应用场景示意图;
图3是本申请提供的服务编排方法一种实施例的方法流程图;
图4是本申请提供的一种服务编排方法的电子设备的硬件结构框图;
图5是本申请提供的服务编排装置一种实施例的模块结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本申请中的技术方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
考虑到中心化的API网关是一个单独的组件,作为整个系统的入口和出口,它接收所有客户端的请求并将请求转发到后端服务,由于API网关作为单点的组件,因此,如果API网关本身出现故障或者不可用,那么整个系统的流量将会被阻塞或者无法处理,即产生单点故障问题。即使API网关部署在集群环境中,当一个集群节点出现故障或者需要进行升级或维护时,整个API网关集群可能会发生故障或不可用,导致整个系统出现问题,在这种情况下,即使集群中还有其他可用节点,那也无法避免整个系统的流量被阻塞或者无法处理的情况发生,仍会存在单点故障的问题。
基于此,在本例中,通过分布式的服务编排架构设计,来替代中心化架构服务编排方式,从而解决单点故障的问题。具体的,基于服务网格的边车代理模式,在每个服务实例上部署一个轻量级的代理,代理负责将请求发送到目标服务,同时可以提供负载均衡、故障恢复、流量控制、安全认证等功能。每个服务实例都可以独立地对请求进行处理,这样可以避免中心化的网关成为系统瓶颈和单点故障,同时也能够提高系统的可靠性和弹性。此外,服务网格还可以提供一些高级功能,例如:A/B测试、灰度发布、服务拆分等,能够更加灵活地管理和控制流量。
通过这种方式,系统内任何一个服务的边车出现故障,只会影响到本身服务调用不可用,而不会影响到其他的服务的正常调用,通过分布式的服务编排架构设计,将原本需要中心化组件去承载的流量分散到不同的边车上,计算资源的分摊可以有效解决原架构中的大规模业务场景下的中心组件的性能瓶颈的问题。进一步的,通过服务网格边车式的代理提供,可以解决现有的服务编排技术可能独立组件部署的远程调用方式,中间需要增强跨机器或者跨机房额外引入的网络调用的开销的问题,从而提升整体的访问性能。基于服务网格边车的分布式的服务编排架构,因为可以按照应用维度单独对边车进行升级操作,因此,可以解决中心化架构下的组件的升级运维难题,尤其针对类似API网关等链路核心重要组件,可以降低因为升级、变更引入的运维风险。
考虑到中心化的网关模式是将所有的请求都经过一个中心化的网关进行处理,网关负责对请求进行路由、负载均衡、安全认证等功能,然后将请求发送到目标服务。这种模式的优点在于能够提供统一的入口和出口,并且可以进行集中的管理和监控。但是,中心化的网关容易成为系统的瓶颈和单点故障,同时也增加了系统的复杂度和维护成本。为此,在本例中,基于服务网格的边车来实现API编排的能力,通过控制面根据业务应用的需求按照需求下载不同的API编排实现,从而实现将服务编排的能力分散到应用上来解决单点故障的问题。
为了在边车上扩展实现一个API编排引擎,可以在服务网格边车上实现可以解析服务端下发规则并根据规则生成新的API组合的能力,为此,可以对边车进行二次开发,以在Envoy上实现这部分能力。
进一步的,需要开发一个服务编排引擎的服务端,即,设置一个用于连接和管理服务边车上的编排引擎客户端的组件或者模块,服务端通过HTTP的形式暴露能力接口,并且可以通过一些长连接的方式来实现数据的推送。在实现的时候,可以开发一个用于操作的控制台,以方便用户进行可视化操作,例如,可以通过HTML/CSS,以及JavaScript等前端开发框架进行开发。
在本例中,提供了一种服务编排系统,如图1所示,可以包括如下模块:
1)用于管理和操作的用户控制台,是一个可视化的UI组件或者服务,为用户提供可操作的管理平台,可以通过一些拖拽等方式来生成对应的服务编排的配置项,并且可以提交给服务编排引擎的后端服务。
2)单独部署的服务编排引擎服务端,用于对接控制台,以接收用户操作设定的API编排规则,并将其转换成边车内编排引擎可处理的配置项,其中,该服务编排引擎的服务端是一个中心化的全局组件,在一个微服务系统中可以通过集群方式部署以提供服务。
3)服务边车(Sidecar),是部署在每个微服务实例(服务A、服务B)旁边的代理程序,负责拦截流量并将其路由到正确的微服务实例,服务边车还可以处理微服务实例的故障和超时等情况,并在必要时将请求路由到备用实例或返回错误响应,服务设置在节点(POD)上。
其中,在服务边车内设置有服务编排客户端模块,用于接收处理来自服务编排引擎服务端的规则配置,并在内部解析按照用户的期望生成可用于业务应用调用的组合式的接口。不同的应用对应的边车处理接收到的规则和配置往往是不同的,根据用户的实际需求按需生成,并按需分发到对应的边车,从而可以降低集中式的配置膨胀等问题。
其中,业务应用,指的是微服务架构中的最终应用程序,是与最终用户直接交互的应用程序。在服务网格系统中,业务应用通常作为最终服务的消费者,向服务网格发出请求,并从服务网格接收响应。
进一步的,还可以设置有服务网格的管控组件,是用于对服务网格中每个服务的边车进行管理的管控程序,负责管理和控制整个网格中的流量路由、安全、遥测和策略等方面。
上述用户管理控制台是整个系统的辅助模块,因为对于用户而言,无法直接理解服务边车数据面比如Envoy上的配置的格式,也无法通过编写自定义配置的方式来实现配置规则的下发,并使其生效。上述服务编排引擎服务端和服务网格的管控组件是整个方案中的辅助模块,因为基于服务网格边车的服务编排的方法实现依赖于服务网格系统的正常运行,因为需要设置服务编排引擎服务端来正确解析来自用户操作生成的配置规则,将其转换成数据面(例如:Envoy)可以理解并处理的xds协议。
在实现的时候,用户控制台组件和服务编排引擎服务端组件可以合并成一个组件从而可以减少一定的资源部署的开销,或者,也可以将前端的页面模块内嵌在了后端组件中,但是,后端的资源要求会高一点,前端资源要求更少,通过拆分的方式有利于资源的分别控制。
在实现的时候,还可以将上述的服务编排引擎服务端内嵌在服务网格的管控组件中,从一个独立组件的形态变成一个模块的实现,这样将减少资源部署的开销,但是,无法满足解耦的需求。
在实现的时候,服务边车可以采用Poxyless mesh的理念,通过Java Agent或者SDK等方式实现。
以图2所示的业务场景为例,服务C和服务D上各提供了一个接口,服务A上有个业务需求需要同时访问服务C和服务D以获取各自对应的数据,并且基于数据的组合使用。按照现有的处理方式,服务A先访问服务C上的接口1,以获取数据d1,然后,再访问服务D上的接口2,以获取数据d2,在应用内再将这两份数据进行整合。例如:简单的聚合或者去重之类的。
在本例中,提供了一种服务编排方法,可以包括如下步骤:
S1:用户在控制台上通过可视化的设置方式创建一个服务编排规则,该编排规则的对应逻辑可以是:基于服务C的接口1和基于服务D的接口2作为输入,在转换逻辑里添加数据的合并和去重逻辑,输出为一个JSON格式的数组对象。
进一步的,可以配置这个新生成的接口的应用范围,例如,可以指定某个消费方(例如:服务A)作为使用方,或者可全局使用,点击应用或者发布按钮,使得该规则立即生效。
S2:将用户的操作提交到后端,用户控制台在接收到用户提交的操作之后,可以将其转换成后端可识别的配置数据,并通过内部组件之间的HTTP调用的方式将数据提交到服务编排引擎服务端。
S3:服务编排引擎的服务端在接收到前端提交的用户配置项之后,对配置项进行规则解析,以转换成边车内的服务编排引擎可理解的配置数据,此处的配置数据与上述步骤S2中用户界面的配置数据格式是存在区别的,此处是需要基于边车可理解的配置格式实现,例如:基于grpc通信的XDS协议等。
进一步的,还需要根据用户配置的规则生效范围对目标服务的分发进行选择和过滤,例如:如果是全局生效的,则对所有服务的边车推送该规则,如果是仅对服务A生效,则只推送到服务A上的边车。
S4:服务A上的边车在收到编排引擎服务端的规则数据之后,对该规则数据进行解析处理,并根据用户的API编排逻辑生成一段处理逻辑,这段处理的逻辑包含了步骤S1中的从服务C和服务D中获取两个接口数据,并将处理进行合并和去重处理。与此同时,在固定的端口上按照用户的配置暴露了一个新的接口3。
S5:在业务应用的时候,上述服务A可以直接通过调用本地边车代理上的接口3,即可获取到一个编排好之后的可直接用于上层业务开发的完整数据结果。
即,通过暴露一个全新的可供用户访问的API接口传递给用户可使用的结果数据。
在上例中,基于一个中心化的管控组件或者模块(即,服务编排引擎服务端),再外加分布式的客户端服务编排引擎(服务边车)实现服务编排,通过管控组件下发规则给边车,在边车内部解析规则并生成全新可暴露的API接口。增加了用户管理控制台这个单独的组件,该组件主要负责提供一个前端页面的展示,以及处理用户的可视化的操作,通过可视化的控制台设计,使得用户可以直接通过填写表单或拖拽等方式方便地进行服务编排。进一步的,由于服务编排大部分的应用场景是为用户提供可复用的接口,因此需要在设计的时候需要能够快速响应用户的请求,处理大量的数据和流量。
在上例中,通过服务网格边车代理的设计理念,采用了分布式的架构设计解决了集中式单点的设计问题,且可以提高服务编排的灵活性,使用基于服务网格边车代理的方法来进行服务API编排,这种方法可以更加灵活地组合和管理服务,从而提高服务编排的编排灵活性。服务网格本身基于边车代理可以实现服务的负载均衡和故障转移等功能,并且单一的边车故障不会影响到其它业务的正常运行,从而提高了业务的可靠性。边车代理可以自动发现新的服务和节点,并对其进行注册和管理,这可以提高服务编排的可扩展性,使其能够处理更多的服务和节点,且由于是按照应用维度进行拆分的,因此可以更好地进行资源的分配和控制。由于是分散式的编排机制,使得每个业务应用对应的Sidecar只负责处理当前应用上的服务编排API的接收请求,在一些数据处理逻辑相对比较复杂的场景下,有利于提升服务的访问性能。通过服务网格边车进行API的编排,可以实现一些例如基于业务的安全控制能力,这可以增强服务网格的安全性,保护服务和数据的机密性和完整性。
在本例中,提供了一种服务编排系统,可以包括:
1)用户控制台,用于用户通过可视化界面输入服务编排规则;
2)服务编排引擎服务端,与所述用户控制台相连,用于接收所述服务编排规则,将所述服务编排规则转换为服务边车可处理的配置项,并将所述服务边车可处理的配置项分发到对应的服务边车;
3)多个微服务组成的服务网格,每个微服务旁设置有一个服务边车,在服务边车内设置有服务编排客户端模块,用于接收处理来自所述服务编排引擎服务端的可处理的配置项,并对所述可处理的配置项进行解析处理得到可用于业务应用调用的组合式接口。
在实现的时候,上述服务编排系统还可以包括:服务网格的管控组件,用于对服务网格中每个微服务的服务边车进行管理,并对服务网格中的流量路由、安全、遥测和策略进行控制。
在一个实施方式中,上述服务编排系统还可以包括:业务应用,与所述服务网格进行通信,用于向服务网格发出请求,并从服务网格接收响应。
图3是本申请提供的服务编排方法一种实施例的方法流程图。虽然本申请提供了如下述实施例或附图所示的方法操作步骤或装置结构,但基于常规或者无需创造性的劳动在所述方法或装置中可以包括更多或者更少的操作步骤或模块单元。在逻辑性上不存在必要因果关系的步骤或结构中,这些步骤的执行顺序或装置的模块结构不限于本申请实施例描述及附图所示的执行顺序或模块结构。所述的方法或模块结构的在实际中的装置或终端产品应用时,可以按照实施例或者附图所示的方法或模块结构连接进行顺序执行或者并行执行(例如并行处理器或者多线程处理的环境,甚至分布式处理环境)。
具体的,如图3所示,上述的服务编排方法可以包括如下步骤:
步骤301:接收用户通过可视化界面输入服务编排规则;
具体的,在接收用户通过可视化界面输入服务编排规则之前,还可以接收用户在用户控制台上通过可视化界面创建的编排规则,其中,所述服务编排规则中携带有转换逻辑;在所述转换逻辑中添加数据合并逻辑和数据去重逻辑,得到一个JSON格式的数组对象;将所述JSON格式的数组对象作为所述服务编排规则。
步骤302:将所述服务编排规则转换为服务边车可处理的配置项,并将所述服务边车可处理的配置项分发到对应的服务边车;
具体的,所述服务编排规则中携带有应用范围,相应的,将所述服务边车可处理的配置项分发到对应的服务边车,可以包括:获取应用范围;根据所述应用范围,确定所述服务边车可处理的配置项所需分发到的微服务组;将确定出的微服务组中的微服务对应的服务边车作为目标服务边车,将所述服务边车可处理的配置项分发到所述目标服务边车。
其中,上述应用范围了可以包括:全局生效,或者,指定微服务生效。例如,根据用户配置的规则生效范围对目标服务的分发进行选择和过滤,例如:如果是全局生效的,则对所有服务的边车推送该规则,如果是仅对服务A生效,则只推送到服务A上的边车。
步骤303:服务边车对所述可处理的配置项进行解析处理生成可用于业务应用调用的组合式接口。
在实现的时候,服务边车对所述可处理的配置项进行解析处理生成可用于业务应用调用的组合式接口,可以包括:从所述可处理的配置项中提取出需处理的数据和处理逻辑;根据所述处理逻辑,对所述需处理的数据进行合并和去重处理,得到处理结果数据;生成并暴露所述组合式接口,以使用户可通过所述组合式接口访问所述处理结果数据。
在上例中,基于服务网格边车代理模式来实现服务编排,从而解决现有的集中式的服务编排技术所存在的性能瓶颈和单点故障的问题。基于服务网格边车和控制面的通信基础设计,可以结合控制台使得用户可以基于可视化的操作实时设计编排规则,并实时下发到各个业务应用上进行生效。通过控制台的生效目标的可选配置,有效降低了全量配置推送在业务规模较大的场景下的资源瓶颈的问题,提升了系统的整体可用性和稳定性。基于分布式的服务编排能力设计,可以在云原生架构演进的过程中,直接复用服务网格的微服务架构设计,从而快速实现服务编排的能力,帮助业务快速开发提效。
本申请上述实施例所提供的方法实施例可以在移动终端、计算机终端或者类似的运算装置中执行。以运行在电子设备上为例,图4是本申请提供的一种服务编排方法的电子设备的硬件结构框图。如图4所示,电子设备10可以包括一个或多个(图中仅示出一个)处理器02(处理器02可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)、用于存储数据的存储器04、以及用于通信功能的传输模块06。本领域普通技术人员可以理解,图4所示的结构仅为示意,其并不对上述电子装置的结构造成限定。例如,电子设备10还可包括比图4中所示更多或者更少的组件,或者具有与图4所示不同的配置。
存储器04可用于存储应用软件的软件程序以及模块,如本申请实施例中的服务编排方法对应的程序指令/模块,处理器02通过运行存储在存储器04内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的应用程序的服务编排方法。存储器04可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器04可进一步包括相对于处理器02远程设置的存储器,这些远程存储器可以通过网络连接至电子设备10。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输模块06用于经由一个网络接收或者发送数据。上述的网络具体实例可包括电子设备10的通信供应商提供的无线网络。在一个实例中,传输模块06包括一个网络适配器(Network Interface Controller,NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输模块06可以为射频(Radio Frequency,RF)模块,其用于通过无线方式与互联网进行通讯。
在软件层面,上述服务编排装置可以如图5所示,包括:
接收模块501,用于接收用户通过可视化界面输入服务编排规则;
分发模块502,用于将所述服务编排规则转换为服务边车可处理的配置项,并将所述服务边车可处理的配置项分发到对应的服务边车;
边车模块503,用于对所述可处理的配置项进行解析处理生成可用于业务应用调用的组合式接口。
在一个实施方式中,上述服务编排规则中携带有应用范围,相应的,上述分发模块502具体可以用于获取应用范围;根据所述应用范围,确定所述服务边车可处理的配置项所需分发到的微服务组;将确定出的微服务组中的微服务对应的服务边车作为目标服务边车,将所述服务边车可处理的配置项分发到所述目标服务边车。
在一个实施方式中,上述应用范围可以包括:全局生效,或者,指定微服务生效。
在一个实施方式中,接收模块501在接收用户通过可视化界面输入服务编排规则之前,可以接收用户在用户控制台上通过可视化界面创建的编排规则,其中,所述服务编排规则中携带有转换逻辑;在所述转换逻辑中添加数据合并逻辑和数据去重逻辑,得到一个JSON格式的数组对象;将所述JSON格式的数组对象作为所述服务编排规则。
在一个实施方式中,边车模块503具体可以用于从所述可处理的配置项中提取出需处理的数据和处理逻辑;根据所述处理逻辑,对所述需处理的数据进行合并和去重处理,得到处理结果数据;生成并暴露所述组合式接口,以使用户可通过所述组合式接口访问所述处理结果数据。
本申请的实施例还提供能够实现上述实施例中的服务编排方法中全部步骤的一种电子设备的具体实施方式,所述电子设备具体包括如下内容:处理器(processor)、存储器(memory)、通信接口(Communications Interface)和总线;其中,所述处理器、存储器、通信接口通过所述总线完成相互间的通信;所述处理器用于调用所述存储器中的计算机程序,所述处理器执行所述计算机程序时实现上述实施例中的服务编排方法中的全部步骤,例如,所述处理器执行所述计算机程序时实现下述步骤:
步骤1:接收用户通过可视化界面输入服务编排规则;
步骤2:将所述服务编排规则转换为服务边车可处理的配置项,并将所述服务边车可处理的配置项分发到对应的服务边车;
步骤3:服务边车对所述可处理的配置项进行解析处理生成可用于业务应用调用的组合式接口。
从上述描述可知,本申请实施例服务编排系统和方法,接收用户通过可视化界面输入服务编排,然后,将服务编排规则转换为服务边车可处理的配置项,并将所述服务边车可处理的配置项分发到对应的服务边车;服务边车对所述可处理的配置项进行解析处理得到可用于业务应用调用的组合式接口。即,通过服务网格中各个微服务的服务边车进行服务编排形成新的接口,而不需要进行中心化布设,从而解决了现有的中心化的服务编排所存在的单点故障和性能瓶颈的问题,达到了避免单点故障和性能瓶颈的技术效果。
本申请的实施例还提供能够实现上述实施例中的服务编排方法中全部步骤的一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述实施例中的服务编排方法的全部步骤,例如,所述处理器执行所述计算机程序时实现下述步骤:
步骤1:接收用户通过可视化界面输入服务编排规则;
步骤2:将所述服务编排规则转换为服务边车可处理的配置项,并将所述服务边车可处理的配置项分发到对应的服务边车;
步骤3:服务边车对所述可处理的配置项进行解析处理生成可用于业务应用调用的组合式接口。
从上述描述可知,本申请实施例服务编排系统和方法,接收用户通过可视化界面输入服务编排,然后,将服务编排规则转换为服务边车可处理的配置项,并将所述服务边车可处理的配置项分发到对应的服务边车;服务边车对所述可处理的配置项进行解析处理得到可用于业务应用调用的组合式接口。即,通过服务网格中各个微服务的服务边车进行服务编排形成新的接口,而不需要进行中心化布设,从而解决了现有的中心化的服务编排所存在的单点故障和性能瓶颈的问题,达到了避免单点故障和性能瓶颈的技术效果。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于硬件+程序类实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
虽然本申请提供了如实施例或流程图所述的方法操作步骤,但基于常规或者无创造性的劳动可以包括更多或者更少的操作步骤。实施例中列举的步骤顺序仅仅为众多步骤执行顺序中的一种方式,不代表唯一的执行顺序。在实际中的装置或客户端产品执行时,可以按照实施例或者附图所示的方法顺序执行或者并行执行(例如并行处理器或者多线程处理的环境)。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、车载人机交互设备、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。
虽然本说明书实施例提供了如实施例或流程图所述的方法操作步骤,但基于常规或者无创造性的手段可以包括更多或者更少的操作步骤。实施例中列举的步骤顺序仅仅为众多步骤执行顺序中的一种方式,不代表唯一的执行顺序。在实际中的装置或终端产品执行时,可以按照实施例或者附图所示的方法顺序执行或者并行执行(例如并行处理器或者多线程处理的环境,甚至为分布式数据处理环境)。术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、产品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、产品或者设备所固有的要素。在没有更多限制的情况下,并不排除在包括所述要素的过程、方法、产品或者设备中还存在另外的相同或等同要素。
为了描述的方便,描述以上装置时以功能分为各种模块分别描述。当然,在实施本说明书实施例时可以把各模块的功能在同一个或多个软件和/或硬件中实现,也可以将实现同一功能的模块由多个子模块或子单元的组合实现等。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
本领域技术人员也知道,除了以纯计算机可读程序代码方式实现控制器以外,完全可以通过将方法步骤进行逻辑编程来使得控制器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内部包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
本领域技术人员应明白,本说明书的实施例可提供为方法、系统或计算机程序产品。因此,本说明书实施例可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本说明书实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本说明书实施例可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本说明书实施例,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本说明书实施例的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
以上所述仅为本说明书实施例的实施例而已,并不用于限制本说明书实施例。对于本领域技术人员来说,本说明书实施例可以有各种更改和变化。凡在本说明书实施例的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本说明书实施例的权利要求范围之内。
Claims (10)
1.一种服务编排系统,其特征在于,包括:
用户控制台,用于用户通过可视化界面输入服务编排规则;
服务编排引擎服务端,与所述用户控制台相连,用于接收所述服务编排规则,将所述服务编排规则转换为服务边车可处理的配置项,并将所述服务边车可处理的配置项分发到对应的服务边车;
多个微服务组成的服务网格,每个微服务旁设置有一个服务边车,在服务边车内设置有服务编排客户端模块,用于接收处理来自所述服务编排引擎服务端的可处理的配置项,并对所述可处理的配置项进行解析处理得到可用于业务应用调用的组合式接口。
2.根据权利要求1所述的系统,其特征在于,还包括:
服务网格的管控组件,用于对服务网格中每个微服务的服务边车进行管理,并对服务网格中的流量路由、安全、遥测和策略进行控制。
3.根据权利要求1所述的系统,其特征在于,还包括:
业务应用,与所述服务网格进行通信,用于向服务网格发出请求,并从服务网格接收响应。
4.一种基于权利要求1至3中任一项所述的服务编排系统进行服务编排的方法,其特征在于,包括:
接收用户通过可视化界面输入服务编排规则;
将所述服务编排规则转换为服务边车可处理的配置项,并将所述服务边车可处理的配置项分发到对应的服务边车;
服务边车对所述可处理的配置项进行解析处理生成可用于业务应用调用的组合式接口。
5.根据权利要求4所述的方法,其特征在于,所述服务编排规则中携带有应用范围,相应的,将所述服务边车可处理的配置项分发到对应的服务边车,包括:
获取应用范围;
根据所述应用范围,确定所述服务边车可处理的配置项所需分发到的微服务组;
将确定出的微服务组中的微服务对应的服务边车作为目标服务边车,将所述服务边车可处理的配置项分发到所述目标服务边车。
6.根据权利要求5所述的方法,其特征在于,所述应用范围包括:全局生效,或者,指定微服务生效。
7.根据权利要求4所述的方法,其特征在于,接收用户通过可视化界面输入服务编排规则之前,还包括:
接收用户在用户控制台上通过可视化界面创建的编排规则,其中,所述服务编排规则中携带有转换逻辑;
在所述转换逻辑中添加数据合并逻辑和数据去重逻辑,得到一个JSON格式的数组对象;
将所述JSON格式的数组对象作为所述服务编排规则。
8.根据权利要求4所述的方法,其特征在于,服务边车对所述可处理的配置项进行解析处理生成可用于业务应用调用的组合式接口,包括:
从所述可处理的配置项中提取出需处理的数据和处理逻辑;
根据所述处理逻辑,对所述需处理的数据进行合并和去重处理,得到处理结果数据;
生成并暴露所述组合式接口,以使用户可通过所述组合式接口访问所述处理结果数据。
9.一种电子设备,包括处理器以及用于存储处理器可执行指令的存储器,其特征在于,所述处理器执行所述指令时实现权利要求4至8中任一项所述方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机指令,其特征在于,所述指令被处理器执行时实现权利要求4至8中任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310744262.8A CN116755799A (zh) | 2023-06-21 | 2023-06-21 | 一种服务编排系统和方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310744262.8A CN116755799A (zh) | 2023-06-21 | 2023-06-21 | 一种服务编排系统和方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116755799A true CN116755799A (zh) | 2023-09-15 |
Family
ID=87960538
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310744262.8A Pending CN116755799A (zh) | 2023-06-21 | 2023-06-21 | 一种服务编排系统和方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116755799A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117806611A (zh) * | 2024-02-29 | 2024-04-02 | 鱼快创领智能科技(南京)有限公司 | 基于接口发现的可视化自动编排创建新服务接口的方法 |
-
2023
- 2023-06-21 CN CN202310744262.8A patent/CN116755799A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117806611A (zh) * | 2024-02-29 | 2024-04-02 | 鱼快创领智能科技(南京)有限公司 | 基于接口发现的可视化自动编排创建新服务接口的方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10861013B2 (en) | Containerization of network services | |
US20200272431A1 (en) | Software defined network controller | |
CN112866333B (zh) | 基于云原生的微服务场景优化方法、系统、设备和介质 | |
Petcu et al. | Experiences in building a mOSAIC of clouds | |
CN110716744A (zh) | 一种数据流处理方法、系统和计算机可读存储介质 | |
CN107959582B (zh) | 一种切片实例的管理方法及装置 | |
CN105574082A (zh) | 基于Storm的流处理方法及系统 | |
CN112288423A (zh) | 一种分布式框架的聚合支付方法和系统 | |
Tranoris et al. | Enabling Cyber-Physical Systems for 5G networking: A case study on the Automotive Vertical domain | |
CN116755799A (zh) | 一种服务编排系统和方法 | |
Slamnik-Kriještorac et al. | Collaborative orchestration of multi-domain edges from a Connected, Cooperative and Automated Mobility (CCAM) perspective | |
CN113867600A (zh) | 处理流式数据的开发方法、装置和计算机设备 | |
Fdida et al. | SLICES, a scientific instrument for the networking community | |
US11461288B2 (en) | Systems and methods for database management system (DBMS) discovery | |
US20180324242A1 (en) | Webpage analytics and control | |
CN109343970B (zh) | 基于应用程序的操作方法、装置、电子设备及计算机介质 | |
CN112202829A (zh) | 基于微服务的社交机器人调度系统和调度方法 | |
US20220278944A1 (en) | Method for allocating resources of a network infrastructure | |
US20200151022A1 (en) | Instance mapping engine and tools | |
CN114944979A (zh) | 一种多管理域的通信方法和装置 | |
US20220004407A1 (en) | System and method for simple object access protocol (soap) interface creation | |
Skalkowski et al. | Application of the ESB Architecture for Distributed Monitoring of the SLA Requirements | |
CN112910835B (zh) | 基于区块链的配置管理方法、装置、系统、设备和介质 | |
US8904369B2 (en) | Method and system for automated process distribution | |
CN112416980A (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 |