实例处理与调用方法、设备、系统及存储介质与流程

专利2022-06-30  53


本申请实施例涉及云计算技术领域,尤其涉及一种实例处理与调用方法、设备、系统及存储介质。



背景技术:

在云网络中,用户可以创建自己的实例,通过这些实例对外提供相应服务。在很多情况下,为了提高服务质量和性能,一个实例往往需要使用到其它服务或实例。例如,弹性推理实例需要使用加速器服务,用以提高弹性推理服务的效率。

对于需要依赖其它服务或实例的实例a,为了保证实例a能够正常运行,需要将实例a作为其所依赖的其它服务或实例的宿主实例,将其所依赖的其它服务或实例随实例a一同创建,并随实例a一同释放。这限制了其它服务或实例的服务弹性和灵活性。



技术实现要素:

本申请的多个方面提供一种实例处理与调用方法、设备、系统及存储介质,用以实现实例之间的松耦合,提高实例的服务弹性和灵活性。

本申请实施例提供一种实例管理系统,包括:客户端和服务端;所述客户端部署在第一实例一侧,所述服务端部署在第二实例一侧;

所述服务端,用于在所述第一实例需要绑定所述第二实例的情况下,根据所述第一实例的唯一性信息,建立所述第一实例与所述第二实例之间的服务绑定关系;

所述客户端,用于在所述第一实例需要远程调用所述第二实例的情况下,基于所述服务绑定关系向所述服务端发送远程调用请求,以供所述服务端调用所述第二实例为所述第一实例提供服务。

本申请实施例还提供一种实例处理方法,适用于服务端,所述方法包括:确定第一实例需要绑定第二实例;根据所述第一实例的唯一性信息,建立所述第一实例与所述第二实例之间的服务绑定关系。

本申请实施例还提供一种实例调用方法,适用于客户端,所述方法包括:确定第一实例需要远程调用第二实例,所述第一实例与所述第二实例之间已建立服务绑定关系;根据所述服务绑定关系向服务端发起远程调用请求,以供所述服务端调用所述第二实例为所述第一实例提供服务;接收所述服务端返回的所述第二实例为所述第一实例提供的服务结果。

本申请实施例还提供一种服务端设备,包括:存储器和处理器;所述存储器,用于存储计算机程序;所述处理器,与所述存储器耦合,用于执行所述计算机程序,以用于:确定第一实例需要绑定第二实例;根据所述第一实例的唯一性信息,建立所述第一实例与所述第二实例之间的服务绑定关系。

本申请实施例还提供一种存储有计算机程序的计算机可读存储介质,当所述计算机程序被处理器执行时,致使所述处理器实现本申请实施例提供的实例处理方法中的步骤。

本申请实施例还提供一种客户端设备,包括:存储器和处理器;所述存储器,用于存储计算机程序;所述处理器,与所述存储器耦合,用于执行所述计算机程序,以用于:确定第一实例需要远程调用第二实例,所述第一实例与所述第二实例之间已建立服务绑定关系;根据所述服务绑定关系向服务端发起远程调用请求,以供所述服务端调用所述第二实例为所述第一实例提供服务;接收所述服务端返回的所述第二实例为所述第一实例提供的服务结果。

本申请实施例还提供一种存储有计算机程序的计算机可读存储介质,当所述计算机程序被处理器执行时,致使所述处理器实现本申请实施例提供的实例调用方法中的步骤。

在本申请实施例中,针对具有依赖关系的第一实例和第二实例,可动态、灵活地在第一实例与第二实例之间建立服务绑定关系,基于服务绑定关系第一实例可对第二实例发起调用以使第二实例为其提供服务,使得第二实例无需因依赖关系必须以第一实例为宿主与第一实例一并部署,实现了实例之间的松耦合,有利于提高实例的服务弹性和灵活性。

附图说明

此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:

图1为本申请示例性实施例提供的一种实例管理系统的结构示意图;

图2a为本申请示例性实施例提供的对加速器实例进行管理的系统结构示意图;

图2b为本申请示例性实施例提供的实例绑定与调用的流程示意图;

图2c为本申请示例性实施例提供的基于vpc实现的ecs实例与eai实例的隔离状态以及实例创建与服务调用流程示意图;

图2d为图2c所示实施例中调用eai加速服务的详细流程示意图;

图3为本申请示例性实施例提供的一种实例处理方法的流程示意图;

图4为本申请示例性实施例提供的一种实例调用方法的流程示意图;

图5为本申请示例性实施例提供的一种服务端设备的结构示意图;

图6为本申请示例性实施例提供的一种客户端设备的结构示意图。

具体实施方式

为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请具体实施例及相应的附图对本申请技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

在现有技术中,对于需要依赖其它实例的实例,需要作为其所依赖的实例的宿主实例,与其所依赖的实例一同部署和释放,这会限制其它服务或实例的服务弹性和灵活性。针对该技术问题,在本申请一些实施例中,针对具有依赖关系的第一实例和第二实例,可动态、灵活地在第一实例与第二实例之间建立服务绑定关系,基于服务绑定关系,第一实例可对第二实例发起调用,以使第二实例为其提供服务,使得第二实例无需因依赖关系必须以第一实例为宿主与第一实例一并部署,实现了实例之间的松耦合,有利于提高实例的服务弹性和灵活性。

以下结合附图,详细说明本申请各实施例提供的技术方案。

图1为本申请示例性实施例提供的一种实例管理系统的结构示意图。如图1所示,该系统包括:客户端11和服务端12。其中,客户端11部署在第一实例一侧;服务端12部署在第二实例一侧。客户端11和服务端12之间通信连接。

在本实施例中,第一实例和第二实例之间具有依赖关系,即第二实例可以为第一实例提供服务,第一实例可以使用第二实例提供的服务。凡是具有依赖关系的实例均可以作为本申请实施例中的第一实例和第二实例。

在本实施例中,对第一实例和第二实例的服务内容、类型以及来源均不做限定。从服务内容的角度进行举例:第一实例可以是提供弹性推理、转码或桌面渲染服务的弹性计算服务(elasticcomputeservice,ecs)实例;相应地,第二实例可以是弹性加速器实例,用以为提供弹性推理、转码或桌面渲染服务的ecs实例提供加速服务。从来源角度进行举例:第一实例或第二实例可以是公有云、私有云、边缘云或混合云等云网络中的实例,当然,也可以是用户私有设备上的实例。

需要说明的是,第一实例与第二实例之间具有依赖关系,可以根据第一实例来确定第二实例,也可以根据第二实例来确定第一实例。若以第一实例为基准来确定第二实例,则不同第一实例需要的第二实例也会有所不同。若以第二实例为基准来确定第一实例,则不同第二实例所能服务的第一实例也会有所不同。

无论是以第一实例为基准确定出的第二实例,还是以第二实例为基准确定出的第一实例,在本实施例中,在第一实例一侧部署客户端11,在第二实例一侧部署服务端12。服务端12主要负责动态建立第一实例与第二实例之间的服务绑定关系,客户端11主要负责基于第一实例与第二实例之间的服务绑定关系,对第二实例发起调用,实现第一实例成功使用第二实例提供的服务的目的。

需要说明的是,服务端12可以与第二实例部署在同一物理设备b上,如图1所示;当然,服务端12也可以靠近第二实例部署,但与第二实例部署在不同物理设备上。同理,客户端11可以与第一实例部署在同一物理设备a上,如图1所示;当然,客户端11也可以靠近第一实例部署,但与第一实例部署在不同物理设备上。

其中,建立第一实例与第二实例之间的服务绑定关系主要目的是将第二实例与第一实例进行绑定,在该过程中需要确保第二实例被绑定到第一实例,而不是被绑定到其他实例上。基于此,服务端12可确定第一实例是否需要绑定第二实例,并在第一实例需要绑定第二实例的情况下,根据第一实例的唯一性信息,建立第一实例与第二实例之间的服务绑定关系。

其中,第一实例的唯一性信息可以是第一实例唯一具有的任何信息,这些信息可唯一标识第一实例,足以将第一实例与其它实例区分开,例如可以是第一实例的mac地址、ip地址、id或名称等。其中,依据第一实例的唯一性信息建立第一实例与第二实例之间的服务绑定关系,可确保第二实例被绑定到第一实例上,避免将第二实例错误地绑定到其它实例上。

可选地,为了建立起第一实例与第二实例之间的服务绑定关系,服务端12可以在第一实例的唯一性信息与第二实例的唯一性信息之间建立对应关系,或者,可以将第一实例的唯一性信息存储到第二实例的绑定关系列表或合法组内。其中,绑定关系列表或合法组中用于存储与第二实例建立服务绑定关系的其它实例的唯一性信息。

在建立第一实例与第二实例之间的服务绑定关系之后,第一实例就可以使用第二实例提供的服务了。在本实施例中,在第一实例一侧部署客户端11,客户端11主要用于确定第一实例是否需要远程调用第二实例,并在第一实例需要远程调用第二实例的情况下,基于服务端12所建立的第一实例与第二实例之间的服务绑定关系,向服务端12发送远程调用请求,以供服务端12调用第二实例为第一实例提供服务。

对服务端12来说,还可以接收客户端11发送的远程调用请求,并根据该远程调用请求调用第二实例为第一实例提供服务,以及向客户端11返回第二实例为第一实例提供的服务结果,实现第一实例成功使用第二实例提供的服务的目的。

由此可见,在本实施例中,服务端可根据第一实例对第二实例的绑定需求,动态、可灵活地在第一实例与第二实例之间建立服务绑定关系,进而由客户端基于服务绑定关系发起对第二实例的调用,使得第一实例可以成功使用第二实例提供的服务。对第二实例来说,无需因为与第一实例之间依赖关系而必须以第一实例为宿主与第一实例一并部署,第二实例可以独立部署,降低了第一实例与第二实例之间的耦合度,实现了实例之间的松耦合,有利于提高第二实例的服务弹性和灵活性。

在本申请一些可选实施例中,服务端12除了可以建立第一实例与第二实例之间的服务绑定关系之外,还可以根据需要灵活地解除第一实例与第二实例之间的服务绑定关系。对第二服务端12来说,可以确定是否需要解除第一实例与第二实例之间的服务绑定关系,并在需要解除第一实例与第二实例之间的服务绑定关系的情况下,解除第一实例与第二实例之间的服务绑定关系。

可选地,若在建立上述服务绑定关系的过程中,服务端12在第一实例的唯一性信息与第二实例的唯一性信息之间建立了对应关系,则在解除上述服务绑定关系的过程中,服务端12需要删除第一实例的唯一性信息与第二实例的唯一性信息之间的对应关系。若在建立上述服务绑定关系的过程中,服务端12将第一实例的唯一性信息存储到第二实例的绑定关系列表或合法组内,则在解除上述服务绑定关系的过程中,服务端12需要将第一实例的唯一性信息从第二实例的绑定关系列表或合法组内删除。

在本申请实施例中,并不限定服务端12在确定是否需要绑定第二实例,以及在确定是否需要解除服务绑定关系的具体实施方式。下面举例说明:

在一可选实施方式a1中,可以预先在服务端12上配置第一实例绑定第二实例需要满足的一些条件或规则。基于此,服务端12可以判断预先配置的这些条件或规则是否被满足;若是,则确定第一实例需要绑定第二实例;若不满足,确定第一实例不需要绑定第二实例。另外,当这些条件或规则从被满足状态变化到不再被满足的状态时,可以确定需要解除第一实例与第二实例之间的服务绑定关系。

例如,可以根据第一实例的服务需求,预先配置一时间范围,如上午7:00-12:00,表示第一实例需要在上午7:00-12:00这段时间内使用第二实例提供的服务。基于此,服务端12可以确定在上午7:00-12:00这段时间内第一实例需要绑定第二实例,并可确定在上午7:00之前以及12:00之后的时间段内需要解除第一实例与第二实例之间的服务绑定关系。

在另一可选实施方式a2中,第一实例是否需要绑定第二实例,以及是否需要解除第一实例与第二实例之间的服务绑定关系可由第一实例的部署用户或使用用户确定。为了便于描述,将第一实例的部署用户或使用用户称为第一用户。需要说明的是,第一实例的部署用户与第一实例的使用用户可以是同一用户,也可以是不同用户。对于第一实例的部署用户与使用用户是不同用户的情况,可以约定只有部署用户有权确定第一实例是否需要绑定第二实例,以及是否需要解除第一实例与第二实例之间的服务绑定关系;或者也可以约定只有使用用户有权确定第一实例是否需要绑定第二实例,以及是否需要解除第一实例与第二实例之间的服务绑定关系;或者也可以约定部署用户和使用用户均有权确定第一实例是否需要绑定第二实例,以及是否需要解除第一实例与第二实例之间的服务绑定关系。

对第一用户来说,在确定第一实例需要绑定第二实例的情况下,可以发出实例绑定指令;在确定需要解除第一实例与第二实例之间的服务绑定关系的情况下,可以发出实例解绑定指令。对服务端12来说,可响应第一用户发出的实例绑定指令,确定第一实例需要绑定第二实例;或者,响应第一用户发出的解绑定指令,确定需要解除第一实例与第二实例之间的服务绑定关系。

在该可选实施方式a2中,并不限定第一用户向服务端12发出实例绑定指令或实例解绑定指令的实施方式。在一可选实施例中,为了方便第一用户发出实例绑定指令或实例解绑定指令,服务端12面向第一用户提供了交互界面,供第一用户发出各种指令。服务端12面向第一用户提供的交互界面可以是web页面、命令窗口或应用页面等等。

例如,服务端12可以面向第一用户提供实例绑定界面,供第一用户发出实例绑定指令。对第一用户来说,可在自己使用的终端设备上打开实例绑定界面,该实例绑定界面上包括至少一个可供第一实例绑定的实例;可选地,可以以列表的方式显示至少一个可供第一实例绑定的实例。第一用户可以在这些可绑定的实例中选择第一实例需要绑定的第二实例;服务端12响应第一用户在实例绑定界面上发出的实例选择操作,确定被选择的实例作为需要被第一实例绑定的第二实例,与此同时确定第一实例需要绑定第二实例。

进一步可选地,实例绑定界面上还可以包括与第二实例对应的绑定控件。第一用户除了选择第二实例之外,还可以通过点击与第二实例对应的绑定控件发出实例绑定指令。

又例如,服务端12可以面向第一用户提供实例解绑定界面,供第一用户发出实例解绑定指令。对第一用户来说,可在自己使用的终端设备上打开实例解绑定界面,该实例解绑定界面上包括与第二实例对应的解绑定控件。第一用户可以对解绑定控件发起触发操作,从而发出实例解绑定指令。其中,触发操作可以是但不限于:单击、双击、长按、触控或悬停等。服务端12响应第一用户对解绑定控件发出的触发操作,确定需要解除第一实例与第二实例之间的服务绑定关系。

需要说明的是,上述实例绑定界面和实例解绑定界面可以是同一界面,也可以是两个独立的界面。以实例绑定界面和实例解绑定界面是同一界面为例,在该界面上以列表方式显示可供第一实例绑定的其它实例,并在每个实例旁边显示有绑定控件和解绑定控件;对任一实例来说,在其被绑定之前,其对应的绑定控件处于激活状态,而解绑定控件处于禁用状态;相应地,当该实例被绑定后,其对应的解绑定控件会处于激活状态,而绑定控件户处于禁用状态。对用户来说,可以点击某个未绑定实例对应的绑定控件发出实例绑定指令;相应地,点击某个被绑定实例对应的解绑定控件发出实例解绑定指令。

在上述可选实施例中,服务端12可根据第一实例对第二实例的绑定需求,动态、灵活地在第一实例与第二实例之间建立或解除服务绑定关系。对第二实例来说,无需因为与第一实例之间依赖关系而必须以第一实例为宿主与第一实例一并部署和释放,第二实例可以独立部署和释放,降低了第一实例与第二实例之间的耦合度,实现了实例之间的松耦合,有利于提高第二实例的服务弹性和灵活性。

在本申请各实施例中,由于降低了第一实例与第二实例之间的耦合度,第二实例不再像现有技术那样必须以第一实例为宿主与第一实例一并部署和释放,而是可以单独部署和释放。基于此,服务端12除了可以建立和解除第一实例与第二实例之间的服务绑定关系之外,还可以对外提供实例创建功能,以便根据第一用户的实例需求为第一用户创建第二实例。其中,创建第二实例的用户可以是第一用户,也可以是专门负责实例创建的用户。其中,第一用户可以将自己的实例需求提交给专门负责实例创建的用户,由专门负责实例创建的用户为第一用户创建所需的第二实例。

进一步,随着资源切片技术的发展,可以将物理资源从逻辑上切分为不同规格,这为多规格实例提供了基础。其中,实例的规格是指实例所需的物理资源规格,例如实例规格可以是8c32g、16c64g、32c128g或64c256g等。在这些实例规格的示例中,字母c前面的数字表示实例需要的cpu核数,字母g前面的数字表示实例需要的内存量。在本实施例中,第二实例可以支持多种规格,例如可以支持8c32g、16c64g、32c128g和64c256g等多种规格,允许第一用户根据需求定制第二实例的规格。

基于上述分析,服务端12对外提供实例创建功能,供第一用户或专门负责实例创建的用户创建第二实例的一种实现方式包括:对外提供实例创建界面,在实例创建界面上包含至少一种实例规格,例如8c32g、16c64g、32c128g和64c256g,供第一用户或专门负责实例创建的用户选择需要的实例规格。第一用户或专门负责实例创建的用户可以在至少一种实例规格中选择所需的实例规格,例如32c128g。服务端12可响应实例创建界面上的实例规格选择操作,确定被选择的实例规格;根据被选择的实例规格创建第二实例,为后续动态建立第一实例与第二实例之间的服务绑定关系提供基础。

在此说明:在将第一实例与第二实例进行绑定之前,可以采用上述方式由服务端12创建第二实例,但并不限于此。例如,也可以采用其它方式或由其它设备预先创建出第二实例并部署在服务端12一侧。

进一步,在第二实例支持多种规格的情况下,由于服务端12可以动态、灵活地建立或解除第一实例与第二实例之间的服务绑定关系,所以在第一用户无法确定使用哪种实例规格比较合适的情况下,可以尝试性地从多种实例规格中选择出最优的实例规格,即先与一种规格的第二实例建立服务绑定关系,如果不合适,就解除该服务绑定关系,再与另一种规格的第二实例建立服务绑定关系,直至尝试到最优的实例规格为止。其中,基于服务绑定关系的动态建立和解除,可大大简化尝试性选择最优实例规格的过程,有利于提高选择最优实例规格的效率。

进一步,在第二实例支持多种规格的情况下,由于服务端12可以灵活地建立或解除第一实例与第二实例之间的服务绑定关系,所以在需要改变第二实例的规格时,可以在不影响服务、不破坏环境的前提下,迅速解除第一实例与当前规格的第二实例之间的服务绑定关系,并重新建立与新规格的第二实例之间的服务绑定关系,完成调整部署,做到真正的“弹性”。

在本申请上述或下述实施例中,并不限定服务端12根据第一实例的唯一性信息,建立第一实例与第二实例之间的服务绑定关系的具体实施方式。凡是可以根据第一实例的唯一性信息,将第二实例成功、准确地绑定到第一实例上的实施方式均适用于本申请实施例。

在一些可选实施例中,考虑到在远程调用过程中,为了保证数据传输过程的安全性,一般会有鉴权过程,鉴权一般是基于密钥信息进行验证的,获得密钥信息的一方都是已经被授权的。在该可选实施例中,建立第一实例与第二实例之间的服务绑定关系的过程,可理解成是为第一实例提供调用或访问第二实例所需的密钥信息的过程,一旦第一实例获得了调用或访问第二实例所需的密钥信息,意味着第一实例具有了调用或访问第二实例的权限,也就意味着建立了第一实例与第二实例之间的服务绑定关系。

基于上述分析,服务端12根据第一实例的唯一性信息,建立第一实例与第二实例之间的服务绑定关系的一种实施方式包括:基于第一实例的唯一性信息,生成第一实例与第二实例之间的密钥信息;将密钥信息对应提供给第一实例与第二实例,以建立第一实例与第二实例之间的服务绑定关系。

在本申请实施例中,并不限定根据第一实例的唯一性信息生成第一实例与第二实例之间的密钥信息的具体实施方式,可以根据应用需求灵活设定密钥生成方式或算法,对此不做限定。下面给出一种可选实施方式:

在一可选实施方式中,服务端12可以根据第一实例的唯一性信息,生成第一实例对应的服务绑定身份信息;进而,根据第一实例对应的服务绑定身份信息,生成第一实例与第二实例之间的密钥信息。其中,该服务绑定身份信息用于标识需要与第二实例建立绑定关系的对象是谁,即需要第二实例提供服务的对象是谁,因此服务绑定身份信息也可称作服务名,标识服务需求者。在本申请实施例中,服务绑定身份信息指向第一实例。其中,依据第一实例的唯一性信息所生成的服务绑定身份信息,可标识需要与第二实例建立绑定关系的是第一实例而不是其它实例,进而可确保所生成的密钥信息是第一实例和第二实例之间专属的密钥信息,确保将第二实例成功、准确地绑定到第一实例上,避免将第二实例错误地绑定到其它实例上。

在本实施例中,并不限定根据第一实例的唯一性信息,生成第一实例对应的服务绑定身份信息所使用的生成算法,可根据需要灵活设定生成算法。例如,可以为第一实例的唯一性信息添加前缀或后缀,从而得到第一实例对应的服务绑定身份信息。例如,假设第一实例的唯一性信息为i-xxx,则可以在该信息前面添加指定前缀,例如foobar,从而得到第一实例对应的服务绑定身份信息,例如foobar-i-xxx。

在一可选实施例中,服务端12可以调用第一实例对外开发的api,获取第一实例在运行态下的id作为第一实例的唯一性信息。第一实例在运行态下的id具有唯一性,可以将第二实例准确绑定到第一实例上;另外,第一实例在运行态下的id具有较强的保密性,在一定程度上可防止被伪造,有利于保证第二实例的安全性。

在本实施例中,并不限定根据第一实例对应的服务绑定身份信息生成密钥信息所采用的密钥算法。例如,可以采用对称密钥算法,也可以采用非对称密钥算法。如果采用对称密钥算法,则所生成的密钥信息是对称密钥,可以将对称密钥分别提供给第一实例和第二实例,建立第一实例与第二实例之间的服务绑定关系。如果采用非对称密钥算法,则密钥信息是非对称密钥,即包括公钥和私钥,则可以将公钥提供给第一实例,将私钥提供给第二实例,以建立第一实例与第二实例之间的服务绑定关系。

进一步,在采用非对称密钥算法的情况下,服务端12根据第一实例对应的服务绑定身份信息生成第一实例与第二实例之间的密钥信息的过程包括:按照约定的非对称密钥生成算法,生成公钥对,即公钥和私钥;将第一实例对应的服务绑定身份信息添加至公钥的公用名字段中。之后,将公钥写入与第一实例约定的存储位置,并将私钥保存在本端,以建立第一实例与第二实例之间的服务绑定关系。在该实施例中,公钥用于加密第一实例发往第二实例的数据;私钥用于解密由公钥加密的数据。

进一步,无论采用上述哪种方式,在建立服务绑定关系之后,第一实例可基于该服务绑定关系调用第二实例为其提供服务。其中,客户端11可以确定第一实例是否需要远程调用第二实例;在确定第一实例需要远程调用第二实例为其提供服务的情况下,客户端11可以根据第一实例与第二实例之间的服务绑定关系向服务端12发送远程调用请求,以供服务端12调用第二实例为第一实例提供服务,如图1所示。对服务端12来说,可接收客户端11发送的远程调用请求;根据该远程调用请求调用第二实例为第一实例提供服务;并向客户端11返回第二实例为第一实例提供的服务结果,如图1所示。对客户端11来说,还可以接收服务端12返回的第二实例为第一实例提供的服务结果。

在一可选实施例中,服务端12在建立服务绑定关系的过程中,会基于第一实例的唯一性信息生成服务绑定身份信息和密钥信息并将所生成的密钥信息对应提供给第一实例和第二实例。在该可选实施例中,客户端11可以获取第一实例的唯一性信息以及服务端12预先提供给第一实例的第一密钥信息;根据第一实例的唯一性信息,生成服务绑定身份信息;将服务绑定身份信息和第一密钥信息添加在远程调用请求中发送给服务端12。其中,服务绑定身份信息和第一密钥信息用于创建加密通道;第一密钥信息是第一实例与第二实例之间使用的至少部分密钥信息。相应地,服务端12在收到远程调用请求之后,在调用第二实例之前,可从远程调用请求中解析出服务绑定身份信息和密钥信息;根据服务绑定身份信息和密钥信息,对客户端进行鉴权;在客户端通过鉴权的情况下,根据远程调用请求,调用第二实例为第一实例提供服务。其中,客户端通过鉴权意味着客户端11(或第一实例)与服务端12(或第二实例)之间的加密通道被成功创建(参见图1所示),这样后续可基于加密通道进行数据传输,可以保证第二实例的安全性。

可选地,若服务端采用对称密钥算法,则第一密钥信息就是服务端所生成的密钥信息;若服务端采用非对称密钥算法,则第一密钥信息是服务端生成的密钥对中的公钥。

可选地,若服务端12使用第一实例在运行态下的id作为第一实例的唯一性信息,相应地,客户端11也需要使用第一实例在运行态下的id作为第一实例的唯一性信息。与服务端12获取第一实例在运行态下的id的方式类似,客户端11也可以调用第一实例对外创建的api,获取第一实例在运行态下的id,作为第一实例的唯一性信息。

在一可选实施例中,若服务端12采用非对称密钥算法,会生成公钥和私钥,公钥会被存储至与客户端11约定的存储位置。基于此,客户端11可以在与服务端12约定的存储位置,获取第一实例与第二实例之间的公钥作为第一密钥信息。基于此,客户端11可以将公钥和服务绑定身份信息添加到远程调用请求中发送给服务端12;相应地,服务端12对客户端进行鉴权包括:从客户端11发送来的公钥的公用名字段中解析出服务绑定身份信息,将解析出的服务绑定身份信息和客户端11发送来的服务绑定身份信息进行比较;如果两者相同,可以确定客户端通过鉴权。需要说明的是,鉴权过程不仅包括将两个服务绑定身份信息进行比对,还可以包括其它一些鉴权操作,例如验证公钥是否合法、完整等,在此做赘述。

在一可选实施例中,客户端11可以监听第一实例的服务请求;若监听到的服务请求中携带有第二实例的标识,确定第一实例需要远程调用第二实例;然后,根据第一实例与第二实例之间的服务绑定关系创建加密通道;基于该加密通道向服务端12发送远程调用请求,以供服务端12调用第二实例为第一实例提供服务,并接收服务端12通过加密通道返回的第二实例为第一实例提供的服务结果。关于该可选实施例中一些操作的详细实现,请参见前述实施例,在此不再赘述。

在此说明,在上述实施例中,对远程调用第二实例的过程进行了原理性说明。基于上述原理性说明,对第二实例的远程调用过程可以采用现有远程调用框架实现,也可以自行开发新的远程调用框架实现,对此不做限定。在采用不同远程调用框架实现时,对第二实例的远程调用过程在细节上有可能有所不同。例如,grpc是一种开源、跨平台的高性能rpc框架,apachethrift是另一种rpc框架,应用都很广泛。在本申请实施例中,对第二实例的远程调用过程可以采用rpc框架下的grpc或apachethrift协议实现,但不限于此。在grpc框架下,可以用ssl/tls或googletoken-based认证机制;在apachethrift框架下可以用ssl认证机制等,在实现细节上会有所不同,对此不做详述。

在云网络中,用户可以租用或购买云中资源并在租用或购买的资源上部署自己的ecs实例,与此同时,云网络中还会提供弹性加速器实例(eai)为用户ecs提供加速服务,用户的ecs实例可以使用eai实例对其计算过程进行加速。其中,ecs实例是一种弹性可伸缩的计算服务,包括但不限于:推理、转码或桌面渲染等服务,如图2a所示。eai实例是一种可以附加到ecs实例上的虚拟加速器。eai实例可将cpu与gpu解耦,可以以灵活的配置、丰富的组合来提供透明、易用的gpu加速能力。在图2a中,以eai实例基于gpu实现为例进行图示。

其中,eai实例可以为多种ecs实例提供加速服务。为方便eai实例为不同ecs实例提供服务,将eai实例与ecs实例解耦,如图2a所示,在eai实例一侧部署服务端,通过服务端对eai实例和ecs实例进行动态绑定和解绑定。进一步,如图2a所示,在ecs实例一端部署客户端,通过该客户端监听ecs实例的服务请求并在ecs实例需要eai实例的情况下发起对eai实例的调用。

下面结合图2b所示流程图对ecs实例绑定eai实例、解绑定eai实例以及远程调用eai实例的过程进行详细说明。

如图2b所示,ecs实例绑定eai实例的过程包括:

20b、服务端根据用户提交的实例绑定需求,确定提供推理服务的ecs实例需要绑定eai实例。其中,提供推理服务的ecs是指图2a中灰色框对应的ecs实例。

21b、服务端调用ecs实例对外提供的api,获取ecs实例在运行态下的id作为ecs实例的唯一性信息。

需要说明的是,ecs实例的唯一性信息除了可以是ecs实例在运行态下的id之外,还可以是ecs实例的mac地址等其它具有唯一性的信息。

22b、服务端根据ecs实例的id,按照自定义的生成规则生成第一实例对应的服务绑定身份信息。

例如,以ecs实例的id是i-xxx为例,则可以在id前面添加指定前缀,例如foobar,从而得到ecs实例的服务绑定身份信息,例如foobar-i-xxx。

23b、服务端采用非对称密钥算法,生成非对称密钥对,该密钥对包括公钥和私钥。

24b、服务端将上述服务绑定身份信息写入公钥的公用名(commonname)字段。

例如,可在公用名字段中写入foobar-i-xxx,用以标识该密钥对的合法使用者。

25b、服务端将公钥写至与ecs实例一侧客户端约定的存储位置,至此完成了ecs实例与eai实例之间的绑定。

其中,ecs实例拿到公钥,eai实例一端保存相应私钥,这意味着在两者之间建立了绑定关系。

进一步如图2b所示,ecs实例调用eai实例的过程包括:

26b、在ecs实例发起对eai实例的服务请求时,客户端可监听到该服务请求,确定ecs实例需要调用eai实例。

其中,客户端可以是实现为弹性sdk,但不限于此。

27b、客户端用调用ecs实例对外提供的api,获取ecs实例在运行态下的id作为ecs实例的唯一性信息。

28b、客户端根据ecs实例的id,按照自定义的生成规则生成第一实例对应的服务绑定身份信息。

29b、客户端从约定的存储位置读取服务端提供的公钥。

30b、客户端根据上述服务绑定身份信息和公钥,向服务端发起远程调用请求,以请求服务端调用eai实例为ecs实例提供加速服务。

其中,远程调用请求中携带有上述服务绑定身份信息和公钥,还可以携带有需要加速的数据或者携带有可以指向需要加速的数据的其它信息。其中,上述服务绑定身份信息和公钥用以创建加密通道。

31b、服务端根据客户端发送来的服务绑定身份信息和公钥对客户端进行鉴权。该鉴权过程主要是指判断客户端是否具有调用eai实例的权限。

32b、在通过鉴权后,意味着加密通道成功创建,服务端调用eai实例为ecs实例提供加速服务。

33b、服务端基于加密通道向客户端返回eai实例的服务结果,以供客户端转给ecs实例。

在上述调用eai实例的过程中,为了保证eai实例的安全性,服务端可以采用辅助网卡和容器(docker)进程相结合的方式对外提供eai实例,其中,采用docker进程可以让辅助网卡以服务端口的方式对外提供eai实例,这相当于对辅助网卡进行了隔离,将可能的攻击限定在docker进程层面。

进一步,在调用eai实例的过程中,还可以采用安全信息组等方式进一步减小对eai实例的攻击面。例如,将成功绑定eai实例的ecs实例的ip、mac地址等标识性信息添加至安全信息组内。在接收到对eai实例发起的远程调用请求时,服务端可以判断发起eai调用的实例的ip、mac地址等标识性信息是否在安全信息组内;如果是,允许对eai实例进行调用;反之,拒绝对eai实例进行调用。

进一步如图2b所示,ecs实例解绑定eai实例的过程包括:

34b、服务端根据用户提交的实例解绑定需求,确定需要解除ecs实例对eai实例的绑定。

35b、服务端将客户端的公钥和本端的私钥删除,以解除ecs实例与eai实例的绑定。

在上述实施例中,针对具有依赖关系的ecs实例和eai实例,可动态、灵活地在ecs实例和eai实例之间建立服务绑定关系,基于服务绑定关系ecs实例可对eai实例发起调用以使eai实例为其提供加速服务,使得eai实例无需因依赖关系必须以ecs实例为宿主与ecs实例一并部署,实现了实例之间的松耦合,有利于提高实例的服务弹性和灵活性。

在一可选实施例中,如图2c所示,借助于eai实例的开放api(openapi),用户通过控制台可灵活地执行以下操作:1、创建所需规格的eai实例,2、绑定eai实例到用户ecs实例,5、解绑定eai实例与用户ecs实例,以及6、删除eai实例等操作。

进一步,如图2c所示,可以采用虚拟私有云(virtualprivatecloud,vpc)为ecs实例和eai实例构建隔离的、用户自主配置和管理的虚拟网络环境,提升用户云中资源的安全性,简化用户的网络部署。vpc是一个云计算资源的动态配置池,需要使用加密协议、隧道协议和其他安全程序,在本实施例的用户ecs实例和云服务提供商提供的eai实例之间传输数据,实现不同用户之间的隔离。其中,图2c中的用户ecs端相当于在ecs实例一端部署的客户端,图2c中的后台ecs端相当于在eai实例一侧部署的服务端。

如图2c所示,在创建ecs实例和eai实例后,后台ecs端可根据ecs实例的特征信息,例如ecs实例在运行态下的id生成公私密钥对,利用公私密钥对创建加密通道,例如grpc通道,并启动daemon程序(如图2c中的操作2.a)。其中,daemon是运行在后台ecs端的程序,用于响应来自用户ecs端的调用请求,为用户ecs端提供eai加速服务。另外,创建grpc通道所需的公钥会被发送至用户ecs端。用户ecs端在指定目录下保存公钥(如eais-i-xxx),例如保存路径为etc/hosts/eais-i-xxx(如图2c中的操作2.b)。进一步,用户ecs端从预定位置下载sdk,该sdk内带弹性服务二进制文件(elasticserverbinary),运行该sdk可启动一弹性服务(例如推理服务),该弹性服务监听用户的服务请求并向后台ecs端发起调用eai实例的流程(如图2c中的操作3和4)。在eai加速服务结束后,后台ecs端停止daemon程序,并删除公私密钥对,以释放grpc通道(如图2c中的操做5.a);用户ecs端删除etc/hosts/eais-i-xxx条目,从而解除ecs实例与eai实例的绑定关系(如图2c中的操做5.a)。其中,操作2.a和2.b可视为操作2的详细实现;操作5.a和5.b可视为操作5的详细实现。

其中,调用eai加速服务的详细流程如图2d所示:

用户ecs端运行sdk,启动弹性服务,监听用户调用eai实例的服务请求(如图2d中的操作4.1)。另外,弹性服务根据ecs实例的特征信息,例如ecs实例运行态下的id生成一服务地址,该服务地址相当于esc实例的身份信息(如图2d中的操作4.2);进而根据服务地址和已经存于本端的公钥,创建加密通道,例如grpc通道(如图2d中的操作4.3)。用户发起服务调用请求,服务请求的载荷(payload)取决于请求类别,若是推理请求,其载荷为模型或图片(如图2d中的操作4.4)。之后,通过加密通道,将服务请求打包发送给后台ecs端(如图2d中的操作4.5)。

服务请求经grpc通道到达后台ecs端的tcp服务端口;在后台ecs端,daemon程序从tcp服务端口侦听用户ecs端发送来的服务请求(如图2d中的操作4.6);对加密通道进行鉴权(如图2d中的操作4.7),鉴权主要包括:判断用户ecs端使用的公钥的有效性,并判断用户ecs端使用的服务地址与后台ecs端根据ces实例的特征信息(例如在运行态下的id)生成的服务地址是否相同;如果鉴权失败,拒绝服务请求(如图2d中的操作4.81);如果鉴权成功,发起gpu调用(如图2d中的操作4.82);gpu计算任务完成后,通过grpc通道向用户ecs端返回计算结果(如图2d中的操作4.9)。

图3为本申请示例性实施例提供的一种实例处理方法的流程示意图。该实施例是从服务端的角度进行的描述,如图3所示,该方法包括:

301、确定第一实例需要绑定第二实例。

302、根据第一实例的唯一性信息,建立第一实例与第二实例之间的服务绑定关系。

在本实施例中,服务端部署在第二实例一侧,例如可以与第二实例部署在同一物理设备上,也可以靠近第二实例部署但与第二实例部署在不同物理设备上。服务端可为第二实例提供绑定和解绑定服务,可动态绑定第一实例与第二实例,即可以根据第一实例的绑定需求,动态建立第一实例与第二实例之间的服务绑定关系。

其中,建立第一实例与第二实例之间的服务绑定关系主要目的是将第二实例与第一实例进行绑定,在该过程中需要确保第二实例被绑定到第一实例,而不是被绑定到其他实例上。基于此,服务端可确定第一实例是否需要绑定第二实例,并在第一实例需要绑定第二实例的情况下,根据第一实例的唯一性信息,建立第一实例与第二实例之间的服务绑定关系。

其中,第一实例的唯一性信息可以是第一实例唯一具有的任何信息,这些信息可唯一标识第一实例,足以将第一实例与其它实例区分开,例如可以是第一实例的mac地址、ip地址、id或名称等。其中,依据第一实例的唯一性信息建立第一实例与第二实例之间的服务绑定关系,可确保第二实例被绑定到第一实例上,避免将第二实例错误地绑定到其它实例上。

在一可选实施中,上述步骤32的一种实施方式包括:基于第一实例的唯一性信息,生成第一实例对应的服务绑定身份信息;根据第一实例对应的服务绑定身份信息,生成第一实例与第二实例之间的密钥信息;将密钥信息对应提供给第一实例与第二实例,以建立第一实例与第二实例之间的服务绑定关系。

在一可选实施例中,可以将第一实例在运行态下的id,作为第一实例的唯一性信息。基于此,在生成第一实例对应的服务绑定身份信息之前,可以调用第一实例对外开放的api,获取第一实例在运行态下的id,作为第一实例的唯一性信息。

进一步,上述根据第一实例对应的服务绑定身份信息,生成第一实例与第二实例之间的密钥信息的一种实施方式,包括:按照约定的非对称密钥生成算法,生成公钥和私钥;将第一实例对应的服务绑定身份信息添加至公钥的公用名字段中。

其中,将密钥信息对应提供给第一实例与第二实例的一种实施方式包括:将公钥写入与第一实例约定的存储位置,以用于加密第一实例需要发往第二实例的数据;将私钥保存在本端,以用于解密由公钥加密的数据。

在一些可选实施例中,在建立第一实例与第二实例之间的服务绑定关系之后,本实施例的方法还包括:接收客户端基于服务绑定关系发送的远程调用请求;根据远程调用请求,调用第二实例为第一实例提供服务;以及向客户端返回第二实例为第一实例提供的服务结果。

进一步可选地,远程调用请求携带有密钥信息和服务绑定身份信息。在调用第二实例为第一实例提供服务之前,本实施例的方法还包括:根据密钥信息和服务绑定身份信息,对客户端进行鉴权;在客户端通过鉴权的情况下,根据远程调用请求,调用第二实例为第一实例提供服务

在一些可选实施例中,在建立第一实例与第二实例之间的服务绑定关系之后,本实施例的方法还包括:确定需要解除第一实例与第二实例之间的服务绑定关系;解除第一实例与第二实例之间的服务绑定关系。

可选地,上述确定第一实例需要绑定第二实例的一种实施方式,包括:响应第一用户发出的实例绑定指令,确定第一实例需要绑定第二实例。相应地,上述确定第一实例需要解除与第二实例之间的服务绑定关系的一种实施方式,包括:响应第一用户发出的实例解绑定指令,确定需要解除第一实例与第二实例之间的服务绑定关系;其中,第一用户是第一实例的部署和/或使用用户。

进一步,上述响应第一用户发出的实例绑定指令,确定第一实例需要绑定第二实例,包括:显示实例绑定界面,实例绑定界面上包括至少一个可供第一实例绑定的实例;响应第一用户在实例绑定界面上发出的实例选择操作,确定被选择的实例作为需要被第一实例绑定的第二实例。

进一步,上述响应第一用户发出的实例解绑定指令,确定需要解除第一实例与第二实例之间的服务绑定关系,包括:显示实例解绑定界面,实例解绑定界面上包括与第二实例对应的解绑定控件;响应于对第一用户对解绑定控件的触发操作,确定需要解除第一实例与第二实例之间的服务绑定关系。

在一些可选实施例中,在确定第一实例需要绑定第二实例之前,本实施例的方法还包括:创建第二实例的过程。其中,创建第二实例的一种实施方式,包括:显示实例创建界面,实例创建界面上显示有至少一种实例规格;响应实例规格选择操作,确定被选择的实例规格;根据被选择的实例规格创建第二实例。

在本实施例中,针对具有依赖关系的第一实例和第二实例,可动态、灵活地在第一实例与第二实例之间建立服务绑定关系,使得第二实例无需因依赖关系必须以第一实例为宿主与第一实例一并部署,实现了实例之间的松耦合,有利于提高实例的服务弹性和灵活性。

图4为本申请示例性实施例提供的一种实例调用方法的流程示意图。该方法是从客户端角度进行的描述,如图4所示,该方法包括:

401、确定第一实例需要远程调用第二实例,第一实例与第二实例之间已建立服务绑定关系。

402、根据上述服务绑定关系向服务端发起远程调用请求,以供服务端调用第二实例为第一实例提供服务。

403、接收服务端返回的第二实例为第一实例提供的服务结果。

在本实施例中,第一实例与第二实例之间的服务绑定关系已建立,服务绑定关系的建立过程可参见前述实施例,在此不再赘述。当然,第一实例与第二实例之间的服务绑定关系也可以采用除前述实施例之外的其它方式来建立,对此不做限于。

在一可选实施例中,确定第一实例需要远程调用第二实例,包括:监听第一实例的服务请求;若监听到的服务请求中携带有第二实例的标识,确定第一实例需要远程调用第二实例。

在一可选实施例中,上述步骤402的一种实施方式包括:获取第一实例的唯一性信息以及服务端预先提供给第一实例的第一密钥信息;根据所述第一实例的唯一性信息,生成所述第一实例对应的服务绑定身份信息;将所述第一实例对应的服务绑定身份信息和所述第一密钥信息添加在所述远程调用请求中发送给所述服务端;其中,第一密钥信息是第一实例与第二实例之间使用的至少部分密钥信息。

进一步,根据第一实例的唯一性信息和第一密钥信息,向服务端发起远程调用请求,包括:根据第一实例的唯一性信息,生成第一实例对应的服务绑定身份信息;根据第一实例对应的服务绑定身份信息和第一密钥信息,向服务端发起远程调用请求。

在一可选实施例中,可以使用第一实例在运行态下的id,作为第一实例的唯一性信息。基于此,获取第一实例的唯一性信息的一种实施方式,包括:调用第一实例对外创建的api,获取第一实例在运行态下的id,作为第一实例的唯一性信息。

在一可选实施例中,获取服务端预先提供第一实例的第一密钥信息,包括:在与服务端约定的存储位置,获取第一实例与第二实例之间的公钥作为第一密钥信息。

在本实施例中,基于第一实例与第二实例之间的服务绑定关系,可在第一实例需要远程调用第二实例的情况下,发起对第二实例的调用,使得第一实例可以成功使用第二实例提供的服务。在本实施例中,第二实例无需因为与第一实例之间依赖关系而必须以第一实例为宿主与第一实例一并部署,而是可以独立部署,降低了第一实例与第二实例之间的耦合度,实现了实例之间的松耦合,有利于提高第二实例的服务弹性和灵活性。

需要说明的是,上述实施例所提供方法的各步骤的执行主体均可以是同一设备,或者,该方法也由不同设备作为执行主体。比如,步骤401至步骤403的执行主体可以为设备a;又比如,步骤401和402的执行主体可以为设备a,步骤403的执行主体可以为设备b;等等。

另外,在上述实施例及附图中的描述的一些流程中,包含了按照特定顺序出现的多个操作,但是应该清楚了解,这些操作可以不按照其在本文中出现的顺序来执行或并行执行,操作的序号如401、402等,仅仅是用于区分开各个不同的操作,序号本身不代表任何的执行顺序。另外,这些流程可以包括更多或更少的操作,并且这些操作可以按顺序执行或并行执行。需要说明的是,本文中的“第一”、“第二”等描述,是用于区分不同的消息、设备、模块等,不代表先后顺序,也不限定“第一”和“第二”是不同的类型。

图5为本申请示例性实施例提供的一种服务端设备的结构示意图。如图5所示,该服务端设备包括:存储器501和处理器502。

存储器501,用于存储计算机程序,并可被配置为存储其它各种数据以支持在服务端设备上的操作。这些数据的示例包括用于在服务端设备上操作的任何应用程序或方法的指令,消息,图片,视频等。

处理器502,与存储器501耦合,用于执行计算机程序,以用于:确定第一实例需要绑定第二实例;根据第一实例的唯一性信息,建立第一实例与第二实例之间的服务绑定关系。

在一可选实施例中,处理器502在建立所述第一实例与所述第二实例之间的服务绑定关系时,具体用于:基于第一实例的唯一性信息,生成所述第一实例对应的服务绑定身份信息;根据所述第一实例对应的服务绑定身份信息,生成第一实例与第二实例之间的密钥信息;将密钥信息对应提供给第一实例与第二实例,以建立所述第一实例与所述第二实例之间的服务绑定关系。

在一可选实施例中,处理器502在生成服务绑定身份信息之前,还用于:调用第一实例对外开放的api,获取第一实例在运行态下的id,作为第一实例的唯一性信息。

在一可选实施例中,处理器502在根据服务绑定身份信息生成密钥信息时,具体用于:按照约定的非对称密钥生成算法,生成公钥和私钥;将第一实例对应的服务绑定身份信息添加至公钥的公用名字段中。

在一可选实施例中,处理器502在将密钥信息对应提供给第一实例与第二实例时,具体用于:将公钥写入与第一实例约定的存储位置,以用于加密第一实例需要发往第二实例的数据;将私钥保存在本端,以用于解密由公钥加密的数据。

在一可选实施例中,处理器502在建立第一实例与第二实例之间的服务绑定关系之后,还用于:接收客户端基于服务绑定关系发送的远程调用请求,远程调用请求用于请求调用第二实例为第一实例提供服务;根据远程调用请求,调用第二实例为第一实例提供服务;以及向客户端返回第二实例为第一实例提供的服务结果。

进一步可选地,远程调用请求携带有所述密钥信息和所述服务绑定身份信息。基于此,处理器502在调用第二实例为第一实例提供服务之前,还用于:根据所述密钥信息和所述服务绑定身份信息,对所述客户端进行鉴权;在所述客户端通过鉴权的情况下,根据所述远程调用请求,调用所述第二实例为所述第一实例提供服务。

在一可选实施例中,处理器502在建立第一实例与第二实例之间的服务绑定关系之后,还用于:确定需要解除第一实例与第二实例之间的服务绑定关系;解除第一实例与第二实例之间的服务绑定关系。

进一步可选地,处理器502在确定第一实例需要绑定第二实例时,具体用于:响应第一用户发出的实例绑定指令,确定第一实例需要绑定第二实例。相应地,处理器502在确定第一实例需要解除与第二实例之间的服务绑定关系时,具体用于:响应第一用户发出的实例解绑定指令,确定需要解除第一实例与第二实例之间的服务绑定关系;其中,第一用户是第一实例的部署和/或使用用户。

更进一步,处理器502在确定第一实例需要绑定第二实例时,具体用于:显示实例绑定界面,实例绑定界面上包括至少一个可供第一实例绑定的实例;响应第一用户在实例绑定界面上发出的实例选择操作,确定被选择的实例作为需要被第一实例绑定的第二实例。

更进一步,处理器502在确定需要解除第一实例与第二实例之间的服务绑定关系时,具体用于:显示实例解绑定界面,实例解绑定界面上包括与第二实例对应的解绑定控件;响应于对第一用户对解绑定控件的触发操作,确定需要解除第一实例与第二实例之间的服务绑定关系。

在一可选实施例中,处理器502在确定第一实例需要绑定第二实例之前,还用于:显示实例创建界面,实例创建界面上显示有至少一种实例规格;响应实例规格选择操作,确定被选择的实例规格;根据被选择的实例规格创建第二实例。

进一步,如图5所示,该服务端设备还包括:通信组件503、电源组件504等其它组件。图5中仅示意性给出部分组件,并不意味着服务端设备只包括图5所示组件。本实施例的服务端设备可以是常规服务器、云服务器或服务器阵列等服务端设备。

相应地,本申请实施例还提供一种存储有计算机程序的计算机可读存储介质,计算机程序被执行时能够实现上述方法实施例中可由服务端设备执行的各步骤。

图6为本申请示例性实施例提供的一种客户端设备的结构示意图。如图6所示,该客户端设备包括:存储器601、处理器602以及通信组件603。

存储器601,用于存储计算机程序,并可被配置为存储其它各种数据以支持在服务端设备上的操作。这些数据的示例包括用于在服务端设备上操作的任何应用程序或方法的指令,消息,图片,视频等。

处理器602,与存储器601耦合,用于执行计算机程序,以用于:确定第一实例需要远程调用第二实例,第一实例与所述第二实例之间已建立服务绑定关系;根据所述服务绑定关系通过通信组件603向服务端发起远程调用请求,以供所述服务端调用所述第二实例为所述第一实例提供服务;通过通信组件603接收所述服务端返回的所述第二实例为所述第一实例提供的服务结果。

在一可选实施例中,处理器602在向服务端发起远程调用请求时,具体用于:获取第一实例的唯一性信息以及服务端预先提供给第一实例的第一密钥信息;根据所述第一实例的唯一性信息,生成所述第一实例对应的服务绑定身份信息;将所述第一实例对应的服务绑定身份信息和所述第一密钥信息添加在所述远程调用请求中发送给所述服务端;其中,第一密钥信息是第一实例与第二实例之间使用的至少部分密钥信息。

在一可选实施例中,处理器602在获取第一实例的唯一性信息时,具体用于:调用第一实例对外创建的api,获取第一实例在运行态下的id,作为第一实例的唯一性信息。

在一可选实施例中,处理器602在获取服务端预先提供第一实例的第一密钥信息时,具体用于:在与服务端约定的存储位置,获取第一实例与第二实例之间的公钥作为第一密钥信息。

在一可选实施例中,处理器602在确定第一实例需要远程调用第二实例时,具体用于:监听第一实例的服务请求;若监听到的服务请求中携带有第二实例的标识,确定第一实例需要远程调用第二实例。

进一步,如图6所示,该客户端设备还包括:通信组件603、显示器607、电源组件608、音频组件609等其它组件。图6中仅示意性给出部分组件,并不意味着客户端设备只包括图6所示组件。另外,图6中虚线框内的组件为可选组件,而非必选组件,具体可视客户端设备的产品形态而定。本实施例的客户端设备可以实现为台式电脑、笔记本电脑、智能手机或iot设备等终端设备,也可以是常规服务器、云服务器或服务器阵列等服务端设备。若本实施例的客户端设备实现为台式电脑、笔记本电脑、智能手机等终端设备,可以包含图6中虚线框内的组件;若本实施例的客户端设备实现为常规服务器、云服务器或服务器阵列等服务端设备,则可以不包含图6中虚线框内的组件。

相应地,本申请实施例还提供一种存储有计算机程序的计算机可读存储介质,计算机程序被执行时能够实现上述方法实施例中可由客户端设备执行的各步骤。

上述图5和图6中的存储器可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(sram),电可擦除可编程只读存储器(eeprom),可擦除可编程只读存储器(eprom),可编程只读存储器(prom),只读存储器(rom),磁存储器,快闪存储器,磁盘或光盘。

上述图5和图6中的通信组件被配置为便于通信组件所在设备和其他设备之间有线或无线方式的通信。通信组件所在设备可以接入基于通信标准的无线网络,如wifi,2g、3g、4g/lte、5g等移动通信网络,或它们的组合。在一个示例性实施例中,通信组件经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,所述通信组件还可以包括近场通信(nfc)模块,射频识别(rfid)技术,红外数据协会(irda)技术,超宽带(uw)技术,蓝牙(t)技术等。

上述图5和图6中的显示器包括屏幕,其屏幕可以包括液晶显示器(lcd)和触摸面板(tp)。如果屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。所述触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与所述触摸或滑动操作相关的持续时间和压力。

上述图5和图6中的电源组件,为电源组件所在设备的各种组件提供电力。电源组件可以包括电源管理系统,一个或多个电源,及其他与为电源组件所在设备生成、管理和分配电力相关联的组件。

上述图5和图6中的音频组件,可被配置为输出和/或输入音频信号。例如,音频组件包括一个麦克风(mic),当音频组件所在设备处于操作模式,如呼叫模式、记录模式和语音识别模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器或经由通信组件发送。在一些实施例中,音频组件还包括一个扬声器,用于输出音频信号。

本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

在一个典型的配置中,计算设备包括一个或多个处理器(cpu)、输入/输出接口、网络接口和内存。

内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flashram)。内存是计算机可读介质的示例。

计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitorymedia),如调制的数据信号和载波。

还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。

以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。


技术特征:

1.一种实例管理系统,包括:客户端和服务端;所述客户端部署在第一实例一侧,所述服务端部署在第二实例一侧;

所述服务端,用于在所述第一实例需要绑定所述第二实例的情况下,根据所述第一实例的唯一性信息,建立所述第一实例与所述第二实例之间的服务绑定关系;

所述客户端,用于在所述第一实例需要远程调用所述第二实例的情况下,基于所述服务绑定关系向所述服务端发送远程调用请求,以供所述服务端调用所述第二实例为所述第一实例提供服务。

2.根据权利要求1所述的系统,所述服务端还用于:

在确定需要解除所述第一实例与所述第二实例之间的服务绑定关系的情况下,解除所述第一实例与所述第二实例之间的服务绑定关系。

3.根据权利要求2所述的系统,所述服务端具体用于:

响应第一用户发出的实例绑定指令,确定所述第一实例需要绑定所述第二实例;以及

响应第一用户发出的实例解绑定指令,确定需要解除所述第一实例与所述第二实例之间的服务绑定关系;

其中,所述第一用户是所述第一实例的部署和/或使用用户。

4.根据权利要求1所述的系统,所述服务端还用于:

显示实例创建界面,所述实例创建界面上显示有至少一种实例规格;

响应实例规格选择操作,确定被选择的实例规格;

根据所述被选择的实例规格创建所述第二实例。

5.根据权利要求1所述的系统,所述服务端具体用于:

基于所述第一实例的唯一性信息,生成所述第一实例与所述第二实例之间的密钥信息;

将所述密钥信息对应提供给所述第一实例与所述第二实例,以建立所述服务绑定关系。

6.根据权利要求1-5任一项所述的系统,所述第一实例为ecs实例,所述第二实例为加速器实例。

7.一种实例处理方法,适用于服务端,所述方法包括:

确定第一实例需要绑定第二实例;

根据所述第一实例的唯一性信息,建立所述第一实例与所述第二实例之间的服务绑定关系。

8.根据权利要求7所述的方法,根据所述第一实例的唯一性信息,建立所述第一实例与所述第二实例之间的服务绑定关系,包括:

基于所述第一实例的唯一性信息,生成所述第一实例对应的服务绑定身份信息;

根据所述第一实例对应的服务绑定身份信息,生成所述第一实例与所述第二实例之间的密钥信息;

将所述密钥信息对应提供给所述第一实例与所述第二实例,以建立所述服务绑定关系。

9.根据权利要求8所述的方法,在根据所述第一实例的唯一性信息,生成所述第一实例对应的服务绑定身份信息之前,还包括:

调用所述第一实例对外开放的api,获取所述第一实例在运行态下的id,作为所述第一实例的唯一性信息。

10.根据权利要求8所述的方法,根据所述第一实例对应的服务绑定身份信息,生成所述第一实例与所述第二实例之间的密钥信息,包括:

按照约定的非对称密钥生成算法,生成公钥和私钥;

将所述第一实例对应的服务绑定身份信息添加至所述公钥的公用名字段中。

11.根据权利要求10所述的方法,将所述密钥信息对应提供给所述第一实例与所述第二实例,以建立所述服务绑定关系,包括:

将所述公钥写入与所述第一实例约定的存储位置,并将所述私钥保存在本端,以建立所述服务绑定关系;

其中,所述公钥用于加密所述第一实例发往所述第二实例的数据;所述私钥用于解密由所述公钥加密的数据。

12.根据权利要求8-11任一项所述的方法,在建立所述第一实例与所述第二实例之间的服务绑定关系之后,所述方法还包括:

接收客户端基于所述服务绑定关系发送的远程调用请求;

根据所述远程调用请求,调用所述第二实例为所述第一实例提供服务;以及

向所述客户端返回所述第二实例为所述第一实例提供的服务结果。

13.根据权利要求12所述的方法,所述远程调用请求携带有所述密钥信息和所述服务绑定身份信息;

在调用所述第二实例为所述第一实例提供服务之前,所述方法还包括:

根据所述密钥信息和所述服务绑定身份信息,对所述客户端进行鉴权;

在所述客户端通过鉴权的情况下,根据所述远程调用请求,调用所述第二实例为所述第一实例提供服务。

14.根据权利要求7-11任一项所述的方法,还包括:

确定需要解除所述第一实例与所述第二实例之间的服务绑定关系;

解除所述第一实例与所述第二实例之间的服务绑定关系。

15.根据权利要求14所述的方法,

确定第一实例需要绑定第二实例,包括:响应第一用户发出的实例绑定指令,确定所述第一实例需要绑定所述第二实例;

确定所述第一实例需要解除与所述第二实例之间的服务绑定关系,包括:响应第一用户发出的实例解绑定指令,确定需要解除所述第一实例与所述第二实例之间的服务绑定关系;

其中,所述第一用户是所述第一实例的部署和/或使用用户。

16.根据权利要求15所述的方法,响应第一用户发出的实例绑定指令,确定所述第一实例需要绑定所述第二实例,包括:

显示实例绑定界面,所述实例绑定界面上包括至少一个可供所述第一实例绑定的实例;

响应第一用户在所述实例绑定界面上发出的实例选择操作,确定被选择的实例作为需要被所述第一实例绑定的第二实例。

17.根据权利要求16所述的方法,响应第一用户发出的实例解绑定指令,确定需要解除所述第一实例与所述第二实例之间的服务绑定关系,包括:

显示实例解绑定界面,所述实例解绑定界面上包括与所述第二实例对应的解绑定控件;

响应于对所述第一用户对所述解绑定控件的触发操作,确定需要解除所述第一实例与所述第二实例之间的服务绑定关系。

18.根据权利要求7-11任一项所述的方法,在确定第一实例需要绑定第二实例之前,所述方法还包括:

显示实例创建界面,所述实例创建界面上显示有至少一种实例规格;

响应实例规格选择操作,确定被选择的实例规格;

根据所述被选择的实例规格创建所述第二实例。

19.一种实例调用方法,适用于客户端,所述方法包括:

确定第一实例需要远程调用第二实例,所述第一实例与所述第二实例之间已建立服务绑定关系;

根据所述服务绑定关系向服务端发起远程调用请求,以供所述服务端调用所述第二实例为所述第一实例提供服务;

接收所述服务端返回的所述第二实例为所述第一实例提供的服务结果。

20.根据权利要求19所述的方法,根据所述服务绑定关系向服务端发起远程调用请求,包括:

获取所述第一实例的唯一性信息以及所述服务端预先提供给所述第一实例的第一密钥信息;

根据所述第一实例的唯一性信息,生成所述第一实例对应的服务绑定身份信息;

将所述第一实例对应的服务绑定身份信息和所述第一密钥信息添加在所述远程调用请求中发送给所述服务端;

其中,所述第一密钥信息是所述第一实例与所述第二实例之间使用的至少部分密钥信息。

21.根据权利要求20所述的方法,获取所述第一实例的唯一性信息,包括:

调用所述第一实例对外创建的api,获取所述第一实例在运行态下的id,作为所述第一实例的唯一性信息。

22.根据权利要求20所述的方法,获取所述服务端预先提供所述第一实例的第一密钥信息,包括:

在与所述服务端约定的存储位置,获取所述第一实例与所述第二实例之间的公钥作为所述第一密钥信息。

23.根据权利要求19-22任一项所述的方法,确定第一实例需要远程调用第二实例,包括:

监听所述第一实例的服务请求;

若监听到的服务请求中携带有所述第二实例的标识,确定所述第一实例需要远程调用所述第二实例。

24.一种服务端设备,包括:存储器和处理器;

所述存储器,用于存储计算机程序;

所述处理器,与所述存储器耦合,用于执行所述计算机程序,以用于:

确定第一实例需要绑定第二实例;

根据所述第一实例的唯一性信息,建立所述第一实例与所述第二实例之间的服务绑定关系。

25.一种存储有计算机程序的计算机可读存储介质,当所述计算机程序被处理器执行时,致使所述处理器实现权利要求7-18任一项所述方法中的步骤。

26.一种客户端设备,其包括:存储器和处理器;

所述存储器,用于存储计算机程序;

所述处理器,与所述存储器耦合,用于执行所述计算机程序,以用于:

确定第一实例需要远程调用第二实例,所述第一实例与所述第二实例之间已建立服务绑定关系;

根据所述服务绑定关系向服务端发起远程调用请求,以供所述服务端调用所述第二实例为所述第一实例提供服务;

接收所述服务端返回的所述第二实例为所述第一实例提供的服务结果。

27.一种存储有计算机程序的计算机可读存储介质,当所述计算机程序被处理器执行时,致使所述处理器实现权利要求20-23任一项所述方法中的步骤。

技术总结
本申请实施例提供一种实例处理与调用方法、设备、系统及存储介质。在本申请实施例中,针对具有依赖关系的第一实例和第二实例,可动态、灵活地在第一实例与第二实例之间建立服务绑定关系,基于服务绑定关系,第一实例可对第二实例发起调用,以使第二实例为其提供服务,使得第二实例无需因依赖关系必须以第一实例为宿主与第一实例一并部署,实现了实例之间的松耦合,有利于提高实例的服务弹性和灵活性。

技术研发人员:李波;郑晓;龙欣
受保护的技术使用者:阿里巴巴集团控股有限公司
技术研发日:2020.01.22
技术公布日:2020.06.05

转载请注明原文地址: https://bbs.8miu.com/read-59404.html

最新回复(0)