一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

将策略应用于服务图的API的制作方法

2022-02-20 14:04:41 来源:中国专利 TAG:

将策略应用于服务图的api
1.相关申请的交叉引用
2.本技术要求于2019年5月17日提交的名称为“applying policies to apis for service graph”的美国专利申请no.16/415,857的优先权和利益,其全部内容出于所有目的通过引用全部合并于此。
技术领域
3.本技术总地涉及服务图,包括但不限于用于将安全策略应用于微服务和至微服务的应用编程接口(api)的使用的系统和方法。


背景技术:

4.可以使用、访问或以其他方式向用户提供各种服务。这种服务可以包括执行任务或功能的子集的微服务,这些任务或功能共同向用户提供服务。微服务可以具有多个应用编程接口(api)。某些程序或用户可经由这些api访问这种微服务,而这些api本不应访问这种微服务或使用这种api。


技术实现要素:

5.提供本概述是为了以简化形式引入概念的选择,概念将在下面的具体实施方式中进一步描述。本概述不旨在识别关键特征或基本特征,也不旨在限制本文所包括的权利要求的范围。
6.本公开涉及识别安全问题并将安全策略应用于服务和/或微服务的系统和方法。本文描述的系统和方法可以提供一种工具,用户可以通过该工具针对安全问题主动监测服务和微服务的使用并经由策略控制这种微服务和服务的用户,而不是用户(例如管理员)反应式地诊断安全事故。基于各种标准所述系统和方法允许api粒度策略控制以确定哪些api可以被授予或拒绝访问,基于例如但不限于请求的源、被调用的特定api、时间条件、地理位置等等。用户可以在每个api的基础上识别安全考虑或问题。
7.本文描述了一种用于将策略应用于微服务的应用编程接口的方法。在该方法中,多个微服务之间的装置识别用于访问一个微服务的应用编程接口(api)的策略。策略识别哪些其他微服务可以访问所述微服务的api。装置接收来自一个或多个微服务的访问微服务的api的一个或多个请求。装置响应于策略来确定至少一个请求来自不允许访问api的微服务。装置阻止所述请求访问微服务。
8.方法可以包括由装置接收来自除多个微服务以外的源访问所述微服务的api的请求。源可以是多个微服务的网络外部的装置。方法可以包括装置响应于策略阻止请求。方法可以包括装置响应于策略将来自第二微服务的访问微服务的api的请求识别为被允许。方法可以包括装置将第二允许请求转发到微服务。
9.方法可以包括由装置生成服务图,服务图包括多个微服务以及一个或多个微服务与微服务之间的一个或多个链接。方法可以包括由装置响应于策略并与到微服务的相应链
接相关联地显示标识一个或多个装置动作的服务图。方法还可以包括显示具有一个或多个用户接口元件的服务图。用户接口元件可以针对关于一个或多个请求的链接采取动作。动作可以是隔离、阻止访问、发布或添加第二策略。
10.方法可以包括由装置生成服务图。服务图可以包括多个微服务以及其他微服务中的一个与微服务之间的策略允许的一个或多个链接。方法可以包括由装置显示具有到策略允许的微服务的一个或多个链接的标识的服务图。
11.本文描述了一种用于将策略应用于微服务的应用编程接口的系统。系统可以包括装置,装置包括一个或多个处理器,耦合到存储器,并且在多个微服务之间。装置可以被配置为识别用于访问多个微服务中的一个微服务的应用编程接口(api)的策略。策略可以识别多个微服务中的哪些其他微服务可以访问所述微服务的所述api。装置可以被配置为接收来自多个微服务中的一个或多个微服务的访问微服务的api的一个或多个请求。装置可以被配置为响应于策略确定一个或多个请求中的至少一个请求来自不允许访问微服务的api的微服务。装置可以被配置为响应于确定来阻止通过至少一个请求访问微服务。
12.装置还可以被配置为接收来自除多个微服务之外的源的访问微服务的api的请求。源可以包括多个微服务的网络外部的装置。装置可以被配置为响应于策略来阻止请求。
13.装置可以被配置为响应于策略来识别访问微服务的api的第二请求来自被识别为允许访问微服务的第二微服务。装置可以被配置为将第二请求转发到微服务。
14.装置可以被配置为生成服务图,服务图包括多个微服务以及多个微服务中的其他微服务中的一个或多个与微服务之间的一个或多个链接。装置可以被配置为响应于策略与到微服务的相应链接相关联地显示具有装置的一个或多个动作的标识的服务图。
15.装置可以被配置为显示具有一个或多个用户接口元件的服务图以针对关于一个或多个请求的链接采取动作。动作可以是隔离、阻止访问、发布或添加第二策略中的一者。
16.装置可以被配置为生成服务图,服务图包括多个微服务和多个微服务中的其他微服务中的一个或多个与微服务之间的策略允许的一个或多个链接。装置可以被配置为显示具有到由策略允许的微服务的一个或多个链接的标识的服务图。
附图说明
17.本文公开的实施例的目的、方面、特征和优点将从以下详细描述、所附权利要求和附图中变得更加明显,其中相似的附图标记标识相似或相同的元件。在说明书中与附图相关联地引入的附图标记可以在一个或多个后续附图中重复,而无需在说明书中进行额外的描述,以便为其他特征提供上下文,并且并非每个元件都可以在每个附图中被标记。附图不一定按比例绘制,而是重点放在示出实施例、原理和概念上。附图并非旨在限制本文所包括的权利要求的范围。
18.图1a是根据示意性实施例的网络计算系统的框图;
19.图1b是根据示意性实施例的用于经由设备将计算环境从服务器输送到客户机的网络计算系统的框图;
20.图1c是根据示意性实施例的计算装置的框图;
21.图2是根据示意性实施例的用于处理客户机和服务器之间的通信的设备的框图;
22.图3是根据示意性实施例的虚拟化环境的框图;
23.图4是根据示意性实施例的集群系统的框图;
24.图5a是根据示意性实施例的基于服务图的系统的框图;
25.图5b是根据示意性实施例的服务图的框图;
26.图5c是根据示意性实施例的使用服务图的方法的流程图;
27.图6a是根据示意性实施例的显示服务图的缺失节点或链接的示例用户接口;以及
28.图6b是根据示意性实施例的用于识别服务图的缺失节点或链接的方法的流程图。
具体实施方式
29.为了阅读下文各种实施例的描述,下述对于说明书的部分以及它们各自内容的描述是有用的:
30.a部分描述可用于实施本文描述的实施例的网络环境和计算环境;
31.b部分描述用于将计算环境输送到远程用户的系统和方法的实施例;
32.c部分描述用于对应用输送控制器进行虚拟化的系统和方法的实施例;
33.d部分描述用于提供集群式设备架构环境的系统和方法的实施例;以及
34.e部分描述基于服务图的平台和技术的实施例;以及
35.f部分描述用于重放多个微服务的服务图的系统和方法的实施例。
36.a.网络和计算环境
37.参考图1a,描述了示意性网络环境100。网络环境100可以包括经由一个或多个网络104(1)-104n(总地称为网络104)与一个或多个服务器106(1)-106(n)(同样总地称为远程机器106或服务器106)通信的一个或多个客户机102(1)-102(n)(同样总地称为本地机器102或客户机102)。在一些实施例中,客户机102可以经由一个或多个设备200(1)-200n(总地称为设备200或网关200)与服务器106通信。
38.虽然图1a所示的实施例示出了客户机102和服务器106之间的一个或多个网络104,但在其他实施例中,客户机102和服务器106可以在同一网络104上。各种网络104可以是相同类型的网络或不同类型的网络。例如,在一些实施例中,网络104(1)可以是诸如局域网(lan)或公司内联网的专用网络,而网络104(2)和/或网络104(n)可以是诸如广域网(wan)或互联网的公共网络。在其他实施例中,网络104(1)和网络104(n)都可以是专用网络。网络104可以采用一种或多种类型的物理网络和/或网络拓扑,诸如有线和/或无线网络,并且可以采用一个或多个通信传输协议,诸如传输控制协议(tcp)、互联网协议(ip)、用户数据报协议(udp)或其他类似协议。
39.如图1a所示,一个或多个设备200可以位于网络环境100的各个点或各个通信路径中。例如,设备200可以部署在两个网络104(1)和104(2)之间,并且设备200可以与彼此通信以结合工作以例如加速客户机102和服务器106之间的网络流量。在其他实施例中,设备200可以位于网络104上。例如,设备200可以被实现为客户机102和/或服务器106之一的一部分。在一个实施例中,设备200可以被实现为网络装置,诸如由佛罗里达州劳德代尔堡的思杰系统有限公司销售的citrix networking(以前为)产品。
40.如图1a所示,一个或多个服务器106可以作为服务器群38操作。服务器群38的服务器106可以在逻辑上分组,并且可以从客户机102和/或其他服务器106在地理上共同定位(例如,在本地)或在地理上分散(例如,基于云)。在一个实施例中,服务器群38代表一个或
多个客户机102(例如,作为应用服务器)执行一个或多个应用,而其他用途也是可能的,诸如文件服务器、网关服务器、代理服务器或其他类似的服务器用途。客户机102可以寻求访问服务器106上的托管应用。
41.如图1a所示,在一些实施例中,设备200可以包括一个或多个附加设备(诸如wan优化设备205(1)-205(n),通常被称为wan优化设备205),由其代替,或与其进行通信。例如,wan优化设备205可以加速、高速缓存、压缩或以其他方式优化或改进网络流量(诸如去往和/或来自wan连接的流量)的性能、操作、流量控制或服务质量,诸如优化广域文件服务(wafs)、加速服务器消息块(smb)或公共互联网文件系统(cifs)。在一些实施例中,设备205可以是性能增强代理或wan优化控制器。在一个实施例中,设备205可以被实现为由佛罗里达州劳德代尔堡的思杰系统有限公司销售的citrix sd-wan产品。
42.参考图1b,示出了用于在客户机102上输送和/或操作计算网络环境的示例网络环境100'。如图1b所示,服务器106可以包括用于向一个或多个客户机102输送计算环境、应用和/或数据文件的应用输送系统190。客户机102可以包括客户机代理120和计算环境15。计算环境15可以执行或操作访问、处理或使用数据文件17的应用16。计算环境15、应用16和/或数据文件17可以经由设备200和/或服务器106输送。
43.设备200可以加速计算环境15的全部或一部分到客户机102的输送,例如通过应用输送系统190。例如,设备200可以通过加速客户机102和服务器106之间的传输层流量来加速流应用和可由应用处理的数据文件从数据中心到远程用户位置的输送。这种加速可以由一种或多种技术提供,诸如:1)传输层连接池,2)传输层连接多路复用,3)传输控制协议缓冲,4)压缩,5)高速缓存或其他技术。设备200还可提供服务器106的负载平衡以处理来自客户机102的请求,充当代理或访问服务器以提供对一个或多个服务器106的访问,提供安全性和/或充当客户机102和服务器106之间的防火墙,提供域名服务(dns)解析,提供一个或多个虚拟服务器或虚拟互联网协议服务器,和/或提供从客户机102到服务器106的安全虚拟专用网络(vpn)连接,诸如安全套接字层(ssl)vpn连接和/或提供加密和解密操作。
44.应用输送管理系统190可以基于由策略引擎195应用的认证和授权策略,将计算环境15输送给远程用户或其他用户(例如,客户机102)。远程用户可以获得计算环境并访问服务器存储的应用和来自任何网络连接的装置(例如,客户机102)的数据文件。例如,设备200可以从服务器106请求应用和数据文件。响应于该请求,应用输送系统190和/或服务器106可以将应用和数据文件输送到客户机102,例如经由应用流来在客户机102上的计算环境15中操作,或经由远程显示协议或以其他方式经由基于远程或基于服务器的计算。在一个实施例中,应用输送系统190可以被实现为思杰系统有限公司的citrix workspace suite
tm
的任何部分,诸如citrix virtual apps和desktops(以前为和)。
45.策略引擎195可以控制和管理对应用的访问、执行和输送。例如,策略引擎195可以确定用户或客户机102可以访问的一个或多个应用和/或应如何将应用输送给用户或客户机102,诸如基于服务器的计算、流式传输或本地输送应用到客户机120进行本地执行。
46.例如,在操作中,客户机102可以请求应用(例如,应用16')的执行并且服务器106的应用输送系统190例如基于从客户机102接收的凭证以及由与凭证相关联的策略引擎195应用的用户策略来确定如何执行应用16'。例如,应用输送系统190可以使客户机102能够接收通过在服务器106上执行应用而生成的应用输出数据,可以使客户机102能够在从服务器
106接收到应用之后本地执行该应用,或者可以经由网络104流式传输该应用到客户机102。例如,在一些实施例中,应用可以是代表客户机102在服务器106上执行的基于服务器或基于远程的应用。服务器106可以使用瘦-客户机或远程显示协议,诸如佛罗里达州劳德代尔堡的思杰系统有限公司的独立计算架构(ica)协议,向客户机102显示输出。应用可以是与实时数据通信相关的任何应用(诸如用于流式传输图形、流式传输视频和/或音频或其他数据的应用)、远程桌面或工作空间的输送或托管服务或应用(例如基础设施即服务(iaas)、桌面即服务(daas)、工作空间即服务(waas)、软件即服务(saas)或平台即服务(paas))。
47.服务器106中的一个或多个可以包括性能监测服务或代理197。在一些实施例中,可以采用专用的一个或多个服务器106来执行性能监测。性能监测可以使用数据收集、聚合、分析、管理和报告来执行,例如通过软件、硬件或其组合。性能监测可以包括一个或多个代理,用于在客户机102(例如,客户机代理120)、服务器106(例如,代理197)或设备200和/或205(未示出的代理)上执行监测、测量和数据收集活动。通常,监测代理(例如,120和/或197)对任何应用和/或装置的用户透明地(例如,在后台)执行。在一些实施例中,监测代理197包括被佛罗里达州劳德代尔堡的思杰系统有限公司称为citrix analytics或citrix application delivery management的任何产品实施例。
48.监测代理120和197可以基于给定事件的发生或在网络环境100的操作期间实时地以预定频率监测、测量、收集和/或分析数据。监测代理可以监测客户机102、网络104、设备200和/或205和/或服务器106的硬件、软件和/或通信资源的资源消耗和/或性能。例如,诸如传输层连接的网络连接、网络延迟、带宽利用率、最终用户响应时间、应用使用情况和性能、与应用的会话连接、高速缓存使用情况、内存使用情况、处理器使用情况、存储使用情况、数据库事务、客户机和/或服务器利用率、活动用户、用户活动的持续时间、应用崩溃、错误或挂起、登录到应用、服务器或应用输送系统所需的时间,和/或其他性能条件和度量可以被监测。
49.监测代理120和197可以为应用输送系统190提供应用性能管理。例如,基于一个或多个被监测的性能条件或度量,可以动态地(例如周期性地或实时地)调节应用输送系统190,以基于网络环境性能和条件优化服务器106到客户机102的应用输送。
50.在所描述的实施例中,客户机102、服务器106和设备200和205可以部署为和/或在任何类型和形式的计算装置上执行,诸如任何台式计算机、膝上型计算机或能够通过至少一个网络进行通信并执行本文描述的操作的移动装置。例如,客户机102、服务器106和/或设备200和205可以各自对应于一台计算机、多台计算机或分布式计算机网络,诸如图1c所示的计算机101。
51.如图1c所示,计算机101可以包括一个或多个处理器103、易失性存储器122(例如ram)、非易失性存储器128(例如一个或多个硬盘驱动器(hdd)或其他磁性或光学存储介质、一个或多个固态驱动器(ssd)(诸如闪存驱动器或其他固态存储介质)、一个或多个混合磁性和固态驱动器、和/或一个或多个虚拟存储卷(诸如云存储)、或这种物理存储卷和虚拟存储卷的组合或其阵列)、用户接口(ui)123、一个或多个通信接口118和通信总线150。用户接口123可以包括图形用户接口(gui)124(例如,触摸屏、显示器等)和一个或多个输入/输出(i/o)装置126(例如,鼠标、键盘等)。非易失性存储器128存储操作系统115、一个或多个应用116和数据117,使得例如操作系统115和/或应用116的计算机指令由处理器103在易失性
存储器122之外执行。可以使用gui 124的输入装置输入数据或从i/o装置126接收数据。计算机101的各种元件可以经由通信总线150进行通信。如图1c中所示的计算机101仅作为示例示出,因为客户机102、服务器106和/或设备200和205可以通过任何计算或处理环境并且使用可以具有能够如本文所述操作的合适的硬件和/或软件的任何类型的机器或机器组来实现。
52.处理器103可由一个或多个可编程处理器实现,该处理器执行一个或多个计算机程序以执行系统的功能。如本文所使用的,术语“处理器”描述执行功能、操作或操作序列的电子电路。功能、操作或操作序列可以被硬编码到电子电路中或通过保存在存储器装置中的指令软编码。“处理器”可以使用数字值或使用模拟信号来执行功能、操作或操作序列。在一些实施例中,“处理器”可以体现为一个或多个专用集成电路(asic)、微处理器、数字信号处理器、微控制器、现场可编程门阵列(fpga)、可编程逻辑阵列(pla)、多核处理器或具有相关存储器的通用计算机。“处理器”可以是模拟、数字或混合信号。在一些实施例中,“处理器”可以是一个或多个物理处理器或一个或多个“虚拟”(例如,远程定位或“云”)处理器。
53.通信接口118可以包括一个或多个接口以使得计算机101能够通过各种有线和/或无线或蜂窝连接访问诸如lan、wan或互联网的计算机网络。
54.在所描述的实施例中,第一计算装置101可以代表客户机计算装置(例如,客户机102)的用户执行应用,可以执行虚拟机,其提供应用在其内代表用户或客户机计算装置(例如,客户机102)执行的执行会话,诸如托管桌面会话,可以执行终端服务会话以提供托管桌面环境,或者可以提供对计算环境的访问,计算环境包括以下中的一个或多个:一个或多个应用、一个或多个桌面应用、以及一个或多个应用可以在其中执行的一个或多个桌面会话。
55.b.设备架构
56.图2示出了设备200的示例实施例。如本文所述,设备200可以被实现为服务器、网关、路由器、交换机、桥接器或其他类型的计算或网络装置。如图2所示,设备200的实施例可以包括硬件层206和软件层205,软件层205被划分为用户空间202和内核空间204。硬件层206提供硬件元件,内核空间204和用户空间202内的程序和服务基于这些硬件元件而执行,并允许内核空间204和用户空间202内的程序和服务相对于设备200在内部和外部传送数据。如图2所示,硬件层206可以包括用于执行软件程序和服务的一个或多个处理单元262、用于存储软件和数据的存储器264、用于通过网络传输和接收数据的网络端口266、以及用于加密和解密数据(例如与通过网络传输和接收的数据的安全套接字层(ssl)或传输层安全性(tls)处理有关)的加密处理器260。
57.设备200的操作系统分配、管理或以其他方式将可用系统存储器分隔成内核空间204和用户空间202。内核空间204被保留用于运行内核230,包括任何装置驱动器、内核扩展或其他内核相关软件。如本领域技术人员所知,内核230是操作系统的核心,并提供对应用104的资源和硬件相关元件的访问、控制和管理。内核空间204还可以包括与高速缓存管理器232协同工作的多个网络服务或进程。
58.设备200可以包括一个或多个网络堆栈267,诸如基于tcp/ip的堆栈,用于与客户机102、服务器106、网络104和/或其他设备200或205进行通信。例如,设备200可以建立和/或终止客户机102和服务器106之间的一个或多个传输层连接。每个网络堆栈267可以包括用于将一个或多个网络分组进行排队以供设备200传输的缓冲器243。
59.内核空间204可以包括高速缓存管理器232、分组引擎240、加密引擎234、策略引擎236和压缩引擎238。换言之,进程232、240、234、236和238中的一个或多个在设备200的操作系统的内核地址空间中运行,这可以减少进出存储器的数据事务和/或内核模式和用户模式之间的上下文切换的数量,例如因为在内核模式中获得的数据可能不需要被传递或复制到用户进程、线程或用户级数据结构。
60.高速缓存管理器232可以复制存储在别处的原始数据或先前计算、生成或传输的数据以减少数据的访问时间。在一些实施例中,高速缓存存储器可以是设备200的存储器264中的数据对象,或者可以是具有比存储器264更快的访问时间的物理存储器。
61.策略引擎236可以包括统计引擎或其他配置机制,以允许用户识别、指定、定义或配置高速缓存策略以及对由设备200高速缓存的对象、数据或内容的访问、控制和管理,并且定义或配置由设备200执行的安全性、网络流量、网络访问、压缩或其他功能。
62.加密引擎234可以处理任何安全相关协议,诸如ssl或tls。例如,加密引擎234可以加密和解密经由设备200传送的网络分组或其任何部分,可以例如在客户机102、服务器106和/或其他设备200或205之间设置或建立ssl、tls或其他安全连接。在一些实施例中,加密引擎234可以使用隧道协议来提供客户机102和服务器106之间的vpn。在一些实施例中,加密引擎234与加密处理器260通信。压缩引擎238在客户机102和服务器106之间和/或在一个或多个设备200之间双向地压缩网络分组。
63.分组引擎240可以管理由设备200经由网络堆栈267接收和传输的分组的内核级处理,以经由网络端口266发送和接收网络分组。分组引擎240可以与加密引擎234、高速缓存管理器232、策略引擎236和压缩引擎238结合操作,例如以执行加密/解密、流量管理(诸如请求级内容切换和请求级高速缓存重定向)、以及数据的压缩和解压缩。
64.用户空间202是由用户模式应用或以用户模式运行的程序使用的操作系统的存储器区域或部分。用户模式应用可能不直接访问内核空间204,而是使用服务调用来访问内核服务。用户空间202可以包括图形用户接口(gui)210、命令行接口(cli)212、壳服务214、健康监测器216和守护服务218。gui 210和cli 212使系统管理员或其他用户能够与设备200交互并控制设备200的操作,诸如经由设备200的操作系统。壳服务214包括程序、服务、任务、进程或可执行指令以支持用户经由gui 210和/或cli 212与设备200的交互。
65.健康监测器216监测、检查、报告并确保网络系统正常运行并且用户正在通过网络接收所请求的内容,例如通过监测设备200的活动。在一些实施例中,健康监测器216拦截并检查经由设备200传递的任何网络流量。例如,健康监测器216可以与加密引擎234、高速缓存管理器232、策略引擎236、压缩引擎238、分组引擎240、守护服务218和壳服务214中的一个或多个接口,以确定设备200的任何部分的状态、状况、操作条件或健康。此外,健康监测器216可以确定程序、进程、服务或任务是否是活动的并且当前正在运行,检查由任何程序、进程、服务或任务提供的状态、错误或历史日志来确定设备200的任何部分的任何条件、状态或错误。此外,健康监测器216可以测量和监测在设备200上执行的任何应用、程序、进程、服务、任务或线程的性能。
66.守护服务218是连续运行或在后台运行并处理由设备200接收的周期性服务请求的程序。在一些实施例中,守护服务可以视情况将请求转发到其他程序或进程,诸如另一守护服务218。
67.如本文所述,设备200可以通过打开与每个服务器106的一个或多个传输层连接并维持这些连接以允许客户机经由互联网(例如,“连接池”)的重复数据访问,来减轻服务器106的由于重复打开和关闭到客户机102的传输层连接导致的大量处理负载。为了执行连接池,设备200可以通过在传输层协议级处修改序列号和确认号(例如,“连接多路复用”)来转换或多路复用通信。设备200还可以为客户机102和服务器106之间的通信提供交换或负载平衡。
68.如本文所述,每个客户机102可以包括客户机代理120,用于经由网络104与设备200和/或服务器106建立和交换通信。客户机102可能已经安装和/或执行与网络104通信的一个或多个应用。客户机代理120可以拦截来自由一个或多个应用使用的网络堆栈的网络通信。例如,客户机代理120可以在网络堆栈中的任一点拦截网络通信并将网络通信重定向到客户机代理120期望、管理或控制的目的地,例如以拦截传输层连接并将传输层连接重定向到由客户机代理120控制或管理的ip地址和端口。因此,客户机代理120可以透明地拦截传输层以下的任何协议层,诸如网络层,以及传输层以上的任何协议层,诸如会话、表示或应用层。客户机代理120可以与传输层接口以保护、优化、加速、路由或负载平衡经由传输层承载的任何协议提供的任何通信。
69.在一些实施例中,客户机代理120被实现为由佛罗里达州劳德代尔堡的思杰系统有限公司开发的独立计算架构(ica)客户机。客户机代理120可以执行加速、流式传输、监测和/或其他操作。例如,客户机代理120可以加速应用从服务器106到客户机102的流式传输。客户机代理120还可以执行端点检测/扫描并为设备200和/或服务器106收集关于客户机102的端点信息。设备200和/或服务器106可以使用所收集的信息来确定和提供客户机到网络104的连接的访问、认证和授权控制。例如,客户机代理120可以识别和确定一个或多个客户机侧属性,诸如:操作系统和/或操作系统的版本、操作系统的服务包、正在运行的服务、正在运行的进程、文件、客户机的各种应用的存在或版本,例如防病毒、防火墙、安全,和/或其他软件。
70.c.用于提供虚拟化应用输送控制器的系统和方法
71.现在参考图3,示出了虚拟化环境300的框图。如图所示,虚拟化环境300中的计算装置302包括虚拟化层303、管理程序层304和硬件层307。管理程序层304包括一个或多个管理程序(或虚拟化管理器)301,其分配和管理由在虚拟化层303中执行的至少一个虚拟机(vm)(例如,vm 306之一)对硬件层307(例如,物理处理器321和物理盘328)中的多个物理资源的访问。每个vm 306可以包括分配的虚拟资源,诸如虚拟处理器332和/或虚拟盘342,以及虚拟资源,诸如虚拟存储器和虚拟网络接口。在一些实施例中,vm 306中的至少一个可以包括与管理程序301通信并用于执行用于管理和配置装置302上的其他vm(例如,客户操作系统310)的应用的控制操作系统(例如,305)。
72.一般而言,管理程序301可以以模拟具有对物理装置的访问的操作系统的任何方式向vm 306的操作系统提供虚拟资源。因此,管理程序301可用于模拟虚拟硬件、划分物理硬件、虚拟化物理硬件以及执行提供对计算环境的访问的虚拟机。在示意性实施例中,管理程序301可以实现为佛罗里达州劳德代尔堡的思杰系统有限公司的citrix hypervisor。在示意性实施例中,执行创建客户操作系统可在其上执行的虚拟机平台的管理程序的装置302被称为主机服务器302。
73.管理程序301可以创建一个或多个vm 306,操作系统(例如,控制操作系统305和/或客户操作系统310)在其中执行。例如,管理程序301加载虚拟机映像以创建vm 306以执行操作系统。管理程序301可以向vm 306呈现硬件层307的抽象,和/或可以控制如何向vm 306呈现硬件层307的物理能力。例如,管理程序301可以管理跨多个物理计算装置分布的资源池。
74.在一些实施例中,vm 306之一(例如,执行控制操作系统305的vm)可以管理和配置其他vm 306,例如通过管理vm的执行和/或终止和/或管理虚拟资源到vm的分配。在各种实施例中,vm可以经由例如一个或多个应用编程接口(api)、共享存储器和/或其他技术与管理程序301和/或其他vm通信。
75.一般而言,vm 306可以向装置302的用户提供对虚拟化计算环境300内的资源的访问,例如一个或多个程序、应用、文档、文件、桌面和/或计算环境、或其他资源。在一些实施例中,vm 306可以被实现为不知道它们是虚拟机的完全虚拟化的vm(例如,硬件虚拟机或hvm)。在其他实施例中,vm可以知道它是虚拟机,和/或vm可以被实现为半虚拟化(pv)vm。
76.虽然在图3中示出为包括单个虚拟化装置302,但虚拟化环境300可以包括系统中的多个联网装置,在该系统中至少一个物理主机执行虚拟机。vm在其上执行的装置可以被称为物理主机和/或主机。例如,设备200可以附加地或可替代地在诸如客户机102、服务器106或设备200的任何计算装置上的虚拟化环境300中实现。虚拟设备可以提供类似于关于设备200描述的用于可用性、性能、健康监测、高速缓存和压缩的功能,连接多路复用和池化和/或安全处理(例如,防火墙、vpn、加密/解密等)。
77.在一些实施例中,服务器可以例如在多核处理系统的各个核和/或多处理器装置的各个处理器上执行多个虚拟机306。例如,尽管在本文中一般地显示为“处理器”(例如,在图1c、2和3中),一个或多个处理器可以实现为单核或多核处理器以提供多线程、并行架构和/或多核架构。每个处理器和/或核可以具有或使用分配或分派给私人或本地使用的存储器,这些存储器只能由该处理器/核访问,和/或可以具有或使用公共或由多个处理器/核共享并可访问的存储器。这种架构可允许跨一个或多个处理器和/或一个或多个核的工作、任务、负载或网络流量分布(例如,通过功能并行性、数据并行性、基于流的数据并行性等)。
78.此外,代替(或除此之外)以物理处理器/核的形式实现的核的功能,可以在客户机102、服务器106或设备200上的虚拟化环境(例如,300)中实现这样的功能,使得该功能可以跨多个装置(诸如计算装置的集群、服务器群或计算装置的网络等)来实现。各种处理器/核可以使用多种接口技术(诸如核到核消息传递、共享存储器、内核api等)相互接口或通信。
79.在采用多个处理器和/或多个处理器核的实施例中,所描述的实施例可以在核或处理器之间分布数据分组,例如以平衡跨核的流。例如,分组分布可以基于对每个核执行的功能、源地址和目的地地址的确定,和/或是否:相关核上的负载高于预定阈值;相关核上的负载低于预定阈值;相关核上的负载小于其他核上的负载;或可用于部分基于处理器上的负载量来确定将数据分组转发到何处的任何其他度量。
80.例如,可以使用接收侧调整(rss)在核或进程之间分布数据分组,以便使用网络中的多个处理器/核来处理分组。rss通常允许跨多个处理器/核平衡分组处理,同时保持分组的有序输送。在一些实施例中,rss可以使用哈希方案来确定用于处理分组的核或处理器。
81.rss可以从任何类型和形式的输入生成哈希,诸如值序列。该值序列可以包括网络
分组的任何部分,诸如网络分组的任何报头、字段或有效载荷,并且包括与网络分组或数据流相关联的任何信息元组,诸如地址和端口。哈希结果或其任何部分可用于标识处理器、核、引擎等,用于例如经由哈希表、间接表或其他映射技术分布网络分组。
82.d.用于提供分布式集群架构的系统和方法
83.虽然在图1a和1b中示出为单个设备,但设备200可以被实现为一个或多个分布式或集群设备。单独的计算装置或设备可以被称为集群的节点。集中式管理系统可以执行负载平衡、分布、配置或其他任务以允许节点作为单个计算系统联合操作。这样的集群可以被视为单个虚拟设备或计算装置。图4示出了示意性计算装置集群或设备集群400的框图。多个设备200或其他计算装置(例如,节点)可以加入到单个集群400中。集群400可以作为应用服务器、网络存储服务器、备份服务或任何其他类型的计算装置来操作,以执行设备200和/或205的许多功能。
84.在一些实施例中,集群400的每个设备200可以被实现为多处理器和/或多核设备,如本文所述。这样的实施例可以采用两层分布系统,如果集群将分组分布到集群的节点,并且每个节点将用于处理的分组分布到节点的处理器/核,则具有一个设备。在许多实施例中,集群400的一个或多个设备200可以在物理上分组或在地理上彼此接近,诸如在给定机箱、机架和/或数据中心中的一组刀片服务器或机架安装装置。在一些实施例中,集群400的一个或多个设备200可以在地理上分布,而设备200在物理上或地理上并不位于同一位置。在这样的实施例中,地理上远程的设备可以通过专用网络连接和/或vpn连接起来。在地理上分布的实施例中,负载平衡还可以考虑地理上远程的设备之间的通信延迟。
85.在一些实施例中,集群400可以被认为是经由共同配置、管理和目的分组的虚拟设备,而不是作为物理组。例如,设备集群可以包括由一个或多个服务器执行的多个虚拟机或进程。
86.如图4所示,设备集群400可以经由客户机数据平面402耦合到第一网络104(1),例如以在客户机102和设备集群400之间传输数据。客户机数据平面402可以被实现为交换机、集线器、路由器或集群400内部或外部的其他类似网络装置,以跨集群400的节点分布流量。例如,可以基于用集群的设备或节点配置下一跳的等价多路径(ecmp)路由、开放最短路径优先(ospf)、基于无状态哈希的流量分布、链路聚合(lag)协议或任何其他类型和形式的流量分布、负载平衡和路由来执行流量分布。
87.设备集群400可以经由服务器数据平面404耦合到第二网络104(2)。类似于客户机数据平面402,服务器数据平面404可以被实现为交换机、集线器、路由器或可以在集群400内部或外部的其他网络装置。在一些实施例中,客户机数据平面402和服务器数据平面404可以合并或组合成单个装置。
88.在一些实施例中,集群400的每个设备200可以经由内部通信网络或后平面406连接。后平面406可以启用节点间或设备间控制和配置消息,用于流量的节点间转发,和/或用于将配置和控制流量从管理员或用户传送到集群400。在一些实施例中,后平面406可以是物理网络、vpn或隧道、或其组合。
89.e.基于服务图的平台和技术
90.现在参考图5a-5c,将讨论基于服务图的平台和技术的系统和方法的实施方式。服务图是一种有用的技术工具,可通过其组件和网络元件的拓扑来可视化服务。服务可以由
微服务组成,每个微服务处理服务的一个或多个功能的特定集合。网络流量可以经过服务拓扑,例如与服务器通信以访问服务的客户机(例如,北-南流量)。服务的网络流量可以包括服务的微服务之间(例如在数据中心内)或数据中心之间(例如,东-西流量)通信的网络流量。服务图可用于识别和提供服务的这种网络流量以及用于提供服务的任何网络元件的操作和性能的度量。服务图可用于识别和确定服务的问题以及拓扑的哪一部分导致问题。服务图可用于提供服务的实施、管理和配置以改善这种服务的操作性能。
91.参考图5a,将描述用于服务图的系统的实施方式,例如图5b中所示的那些。网络上的装置,例如网络装置200、205或服务器206,可以包括服务图生成器和配置器512、服务图显示器514和服务图监测器516。服务图生成器和配置器512(通常称为服务图生成器512),可以识别网络中元件的拓扑510和与网络和元件相关的度量518,以生成和/或配置服务图505a-n。服务图505a-n(通常称为服务图505)可以与度量518'和/或拓扑510'中的任一个存储在一个或多个数据库中与。服务图生成器512可以生成服务图505的数据以例如经由用户接口以显示或呈现的形式显示,生成被称为服务图形显示器514。服务图监测器516可以监测拓扑的网络元件和用于度量518的服务以配置和生成服务图505和/或动态地或实时地更新服务图显示器514的或由服务图显示器514表示的元件和度量518。
92.拓扑510可以包括识别、描述、指定或以其他方式表示在访问任何一个或多个服务(例如本文描述的服务275中的任何一个)时使用、经过的、或以其他方式包括这样的一个或多个服务或其部分的任何元件的数据。拓扑可以包括识别或描述为访问或使用服务而经过的任何一个或多个网络和网络元件的数据,包括任何网络装置、路由器、交换机、网关、代理、设备、网络连接或链接、互联网服务提供者(isp)等。拓扑可以包括识别或描述在访问服务时使用或经过的任何一个或多个应用、软件、程序、服务、过程、任务或功能的数据。在一些实施方式中,服务可以由多个微服务组成或包括多个微服务,每个微服务提供服务的或用于服务的一个或多个功能、功能性或操作。拓扑可以包括识别或描述服务的任何一个或多个组件的数据,例如用于提供服务的程序、功能、应用或微服务。拓扑可以包括关于拓扑的任何部分(例如拓扑的任何元件)的参数、配置数据和/或元数据。
93.服务图505可以包括表示服务275的拓扑的数据,例如构成这种服务或由该服务使用的任何元件,例如如图5b所示。服务图可以是节点基(node base)形式,例如节点的图形形式,每个节点代表服务拓扑的元件或功能。服务图可以使用经由各种连接器或链接彼此连接的节点来表示服务的拓扑,这些连接器或链接可以被称为弧。弧可以标识由弧连接的元件之间的关系。节点和弧可以以标识或描述一个或多个服务的方式布置。节点和弧可以以标识或描述由一个或多个服务提供的功能的方式布置。例如,功能节点可以表示应用于流量的功能,例如转换(ssl终止、vpn网关)、过滤器(防火墙)或终端(入侵检测系统)。服务图中的功能可能使用一个或多个参数并具有一个或多个连接器。
94.服务图可以包括节点和弧的任何组合以表示服务、拓扑或其部分。节点和弧可以以标识或描述服务以及用于访问服务的任何元件的物理和/或逻辑部署的方式布置。节点和弧可以以标识或描述访问或使用服务时的网络流量的方式布置。节点和弧可以以标识或描述服务组件的方式布置,例如相互通信以提供服务功能的多个微服务。服务图可以以某种方式存储在诸如数据库的存储器中,以便服务图生成器在存储器中生成服务图和/或以显示形式514呈现服务图。
95.服务图生成器512可以包括用于建立、创建、生成、实现、配置或更新服务图505的应用、程序、库、脚本、服务、过程、任务或任何类型和形式的可执行指令。服务图生成器可以将表示服务图的数据读取和/或写入数据库、文件或其他类型的存储装置。服务图生成器可以包括用于构建节点和弧的布置以在存储器中具有服务图的电子表示的逻辑、函数和操作。服务图生成器可以读取或访问数据库中的数据并将数据存储到数据结构和存储器元件中以提供或实现可以更新或修改的服务图的基于节点的表示。服务图生成器可以使用来自拓扑的任何信息来生成服务图。服务图生成器可以进行网络调用或使用发现协议来识别拓扑或其任何部分。服务图生成器可以使用任何度量(例如在存储器或存储装置中或来自其他装置)来生成服务图。服务图生成器可以包括用于构建节点和弧的布置以提供服务图的图形或视觉表示的逻辑、功能和操作,例如在显示装置的用户接口上。服务图生成器可以包括用于配置服务图的任何节点或弧以表示由节点或弧表示的相应或底层元件的配置或参数的逻辑、功能和操作。服务图生成器可以包括逻辑、功能和操作以包括、识别或提供与服务图显示器的节点和弧的布置有关或作为其一部分的度量。服务图生成器可以包括用于程序、应用、服务、任务、过程或系统的应用编程接口(api)以创建、修改服务图或与服务图交互。
96.服务图显示器514可以包括用于在任何类型和形式的显示装置上呈现或显示的服务图505的任何图形或电子表示。服务图显示器可以以视觉形式呈现以具有服务图的节点和弧的任何类型的颜色、形状、大小或其他图形指示符,以表示相应元件的状态或状态。服务图显示器可以以视觉形式呈现以具有服务图的节点和弧的任何类型的颜色、形状、大小或其他图形指示符,以表示一个或多个度量的状态或状况。服务图显示器可以包括提供服务图的视觉形式的任何类型的用户接口,例如仪表板。服务图显示器可以包括任何类型和形式的用户接口元件以允许用户交互、接口或操纵服务图。服务图显示器的部分可以是可选择的以识别信息,例如关于服务图的该部分的度量或拓扑信息。服务图显示器的部分可以为用户提供用户接口元件以针对服务图或其部分采取动作,例如修改元件的配置或参数。
97.服务图监测器518可以包括应用、程序、库、脚本、服务、过程、任务或任何类型和形式的可执行指令以接收、识别、处理拓扑510的度量518。服务图监测器518经由度量518监测服务图的元件的配置、性能和操作。服务图监测器可以从网络上的一个或多个装置获得度量。服务图监测器可以从经过服务图监测器的装置的网络流量中识别或生成度量。服务图监测器可以从拓扑的任何元件接收度量的报告,例如由服务图中的节点表示的任何元件。服务图监测器可以从服务接收度量的报告。根据度量,服务图监测器可以确定在服务图中或由服务图(例如由服务图的节点)表示的元件的状态、状况或条件。根据度量,服务图监测器可以确定在服务图中或由服务图(例如由服务图的弧)表示的网络流量或连接的网络的状态、状况或条件。服务图生成器和/或服务图监测器可以用节点或弧、由节点或弧表示的元件、服务、网络或经过拓扑的网络流量的状态、状况或条件的任何度量或任何改变,例如连续地或以预定频率或基于事件来更新服务图显示器。
98.度量518、518’(总的称为度量518)可以存储在图5b中的网络装置上,例如在存储器或存储装置中。度量518、518’可以存储在同一装置上的数据库中或通过网络存储到另一个装置,例如服务器。度量可以包括拓扑、服务或网络的任何元件的任何类型和形式的测
量。度量可以包括关于接收、传输或经过由节点或弧表示的网络元件的请求或响应的量、速率或定时的度量。度量可以包括关于由节点或弧表示的元件对资源(例如存储器、带宽)的使用的度量。度量可以包括关于服务的性能和操作的度量,包括服务的任何组件或微服务,例如响应率、事务响应和时间。
99.图5b示出了考虑到东西网络流量和南北网络流量的与服务的微服务相关的服务图的实施方式。简而言之,客户机102可以经由一个或多个网络104访问数据中心,该数据中心具有提供一个或多个服务275a-275n总的称为服务275)的服务器106a-106n(总的称为服务器106)。这些服务可以由多个微服务575a-575n(总的称为微服务575)组成。服务275a可以包括微服务575a和575n,而服务275b可以包括微服务575b和575n。微服务可以经由应用编程接口(api)在微服务之间进行通信。服务图505可以表示服务的拓扑和关于网络流量的度量,例如东-西网络流量和南-北网络流量。
100.南-北网络流量通常描述客户机和服务器之间的网络流量并与之相关,例如客户机经由网络104到数据中心的服务器和/或服务器经由网络104到客户机,如图5b所示。东-西网络流量通常描述数据中心内元件之间的网络流量并与之相关,例如数据中心到数据中心、服务器到服务器、服务到服务或微服务到微服务。
101.服务275可以包括微服务575。在一些方面,微服务是一种面向服务的架构风格,其中应用被构建为不同较小服务的集合,而不是一个整体或单个应用(有时称为整体应用)。一个服务具有多个独立的应用或服务(例如,微服务),它们可以独立运行,并且可以使用不同的编码或编程语言创建,而不是一个单一应用。因此,一个更大的服务器可以由更简单和独立的程序或服务组成,这些程序或服务可以由它们自己执行。这些较小的程序或服务组合在一起以提供较大服务的功能。在某些方面,基于微服务的服务将应用构建为松散耦合的服务的集合。将服务分解为不同的较小服务的好处是它改善了模块化。这使得应用或服务更容易理解、开发、测试,并且能够适应架构或部署的变化。
102.微服务包括一个或多个功能或功能性的实现。微服务可以是具有明确或既定接口的自包含业务功能,例如应用编程接口(api)。在一些实施方式中,微服务可以部署在虚拟机或容器中。服务可以使用微服务上的一个或多个功能,也可以使用不同微服务的另一个或多个功能。在操作或执行服务时,一个微服务可以向另一个微服务进行api调用,并且该微服务可以经由api调用、事件处理器或其他接口机制提供响应。在操作或执行微服务时,该微服务可以向另一个微服务进行api调用,而该微服务在其操作或执行中又会调用另一个微服务,以此类推。
103.服务图505可以包括经由一个或多个弧572a-572n连接或链接的多个节点570a-n。服务图可以具有不同类型的节点。节点类型可用于表示物理网络元件,例如服务器、客户机、设备或网络装置。节点类型可用于表示端点,例如客户机或服务器。节点类型可用于表示端点组,例如客户机或服务器的组。节点类型可用于表示逻辑网络元件,例如技术、软件或服务的类型或者元件的分组或子分组。节点类型可用于表示功能元件,例如由拓扑的元件或服务提供的功能。
104.任何节点570的配置和/或表示可以标识由节点表示的元件的状态、状况和/或度量。节点的图形特征可以标识或指定由节点表示的元件的操作或性能特征。节点的大小、颜色或形状可以标识元件是可操作的还是活动的操作状态。节点的大小、颜色或形状可以标
识元件的错误条件或问题。节点的大小、颜色或形状可以标识网络流量的水平、接收、传输或经过由节点表示的网络元件的请求或响应的量。节点的大小、颜色或形状可以标识节点所代表的元件对资源(例如存储器、带宽、cpu或存储装置)的使用水平。节点的大小、颜色或形状可以识别与节点或由节点表示的元件相关联的任何度量的阈值的相关性。
105.任何弧572的配置和/或表示可以标识由弧表示的元件的状态、状况和/或度量。弧的图形特征可以标识或指定由弧表示的元件的操作或性能特征。节点的大小、颜色或形状可以标识由弧表示的网络连接是可操作的还是活动的操作状态。弧的大小、颜色或形状可以标识与弧相关联的连接的错误条件或问题。弧的大小、颜色或形状可以标识与弧相关联的网络流量的错误条件或问题。弧的大小、颜色或形状可以标识网络流量的水平、接收、传输或经过由弧表示的网络连接或链接的请求或响应的量。弧的大小、颜色或形状可以通过由弧表示的网络连接或流量来标识资源的使用水平,例如带宽。节点的大小、颜色或形状可以标识与和弧相关联的任何度量的阈值的相关性。在一些实施方式中,弧的度量可以包括每弧的流量、每弧的等待时间或每弧的错误率的任何测量。
106.现在参考图5c,将描述用于生成和显示服务图的方法的实施方式。简要概述方法580,在步骤582,例如针对一个或多个服务的配置标识拓扑。在步骤584,监测拓扑的元件的度量,例如针对服务的度量。在步骤586,生成和配置服务图。在步骤588,显示服务图。在步骤590,可以标识或确定服务或拓扑的配置、操作和性能的问题。
107.在步骤582,装置标识一个或多个服务的拓扑。装置可以从诸如数据库之类的存储装置获得、访问或接收拓扑510。装置可以配置有用于服务的拓扑,例如由用户配置。因此,装置可以经由在网络上通信的一个或多个发现协议来发现拓扑或部分。该装置可以经由网络从一个或多个其他装置获得或接收拓扑或其部分。装置可以标识构成一个或多个服务的网络元件。装置可以标识提供一个或多个服务的功能。装置可以识别提供该功能的其他装置或网络元件。该装置可以标识用于北-西流量的网络元件。装置可以标识东-西流量的网络元件。装置可以识别提供服务的微服务。在一些实施方式中,服务图生成器基于拓扑建立或生成服务图。服务图可以存储到存储器或存储装置中。
108.在步骤584,监测拓扑的元件的度量,例如针对服务。装置可以从其他装置接收关于拓扑的一个或多个网络元件的度量。装置可以从经过装置的网络流量确定度量。装置可以从拓扑的网络元件接收度量,例如经由报告或事件。装置可以监测服务以获得或接收关于服务的度量。度量可以存储在存储器或存储装置中,例如与相应的服务图相关联。装置可以将一个或多个度量与服务图的相应节点相关联。装置可以将一个或多个度量与服务图的相应弧相关联。装置可以在调度的或预定的频率上监测和/或获得和/或接收度量。装置可以在连续的基础上(例如在度量改变时实时或动态地)监测和/或获得和/或接收度量。
109.在步骤586,生成和配置服务图。服务图生成器可以至少基于拓扑来生成服务图。服务图生成器可以至少基于服务来生成服务图。服务图生成器可以基于多个服务来生成服务图。服务图生成器可以至少基于组成服务的微服务来生成服务图。服务图生成器可以基于数据中心、数据中心的服务器和/或数据中心的服务来生成服务图。服务图生成器可以至少基于东-西流量和相应的网络元件来生成服务图。服务图生成器可以至少基于北-南流量和相应的网络元件来生成服务图。服务图生成器可以用关于由服务图的节点或弧表示的元件的参数、配置数据或元数据来配置服务图。服务图可以由装置自动生成。服务图可以响应
于用户的请求而生成,例如经由装置的评论或用户接口。
110.在步骤588,显示服务图。该装置,例如经由服务图生成器,可以创建服务图显示器514,以经由显示装置显示或呈现,例如呈现在用户接口上。服务图显示器可以包括服务图的节点和弧的视觉指示符或图形特征(例如,大小、形状或颜色)以标识与节点或弧相关联或相对应的元件的状态、状况或条件。服务图显示器可以经由控制板或其他用户接口来显示或呈现,其中用户可以监测服务和拓扑的状态。可以更新服务图显示器以显示服务、拓扑或其任何元件的度量或状态、状况和/或条件的变化。经由服务图显示器,用户可以与服务图接口或交互以发现关于任何网络元件的信息、数据和细节,例如服务的微服务的度量。
111.在步骤590,可以标识或确定服务或拓扑的配置、操作和性能的问题。装置可以通过将服务的度量与阈值进行比较来确定服务的配置、操作或性能的问题。装置可以通过将服务的度量与先前或历史值进行比较来确定服务的配置、操作或性能的问题。装置可以通过标识度量的改变来确定服务的配置、操作或性能的问题。装置可以通过标识节点或弧或由节点或弧表示的元件的状态、状况或条件的改变来确定服务的配置、操作或性能的问题。装置可以改变服务图的配置和/或参数。装置可以改变服务的配置。装置可以改变拓扑的配置。装置可以改变构成拓扑或服务的网络元件的配置。用户可以通过查看、探索或与服务图显示器和任何度量交互来确定服务的配置、操作或性能的问题。用户可以改变服务图的配置和/或参数。用户可以改变服务的配置。用户可以改变拓扑的配置。装置可以改变构成拓扑或服务的网络元件的配置。
112.f.用于使用服务图的api和微服务识别安全问题的系统和方法
113.本文描述的实施方式可以提供用于识别安全问题并将安全策略应用于服务和/或微服务的工具。本文描述的系统和方法可以提供一种工具,用户可以通过该工具针对安全问题主动监测服务和微服务的使用并经由策略控制这种微服务和服务的用户,而不是用户(例如管理员)反应式地诊断安全事故。该系统和方法允许api粒度策略控制基于各种标准来确定哪些api可以被授予或拒绝访问,例如但不限于请求的源、被调用的特定api、时间条件、地理位置等等。用户可以在每个api的基础上识别安全方面或问题。本文描述的实施方式可以通过提供一种工具来提高监测和控制与服务相对应的微服务的效率,通过该工具可以将策略应用于api以允许或授予请求者对api的访问。本文描述的实施方式可以通过提供更快和更灵活的机制来减少由于安全事故导致的停机时间,管理员可以通过该机制在api级别识别和修复安全问题。下面进一步详述本文描述的实施例的各种其他益处和优点。
114.现在参考图5a-5c以及图6a-6b,描述了用于识别安全问题和应用策略以跨微服务安全使用api的系统和方法的示意性实施方式。该系统和方法可以应用于通过网络链接向微服务提出的api请求,以不符合为系统建立的策略的api请求。这些系统和方法的使用可以来自不是这种api的预期用户、或者可能以不适合部署这种服务的使用的企业或实体的方式或时间使用的源的api请求。这些策略提供了一种灵活且可配置的机制,以在api请求的粒度上监测和控制服务及其微服务的使用。
115.现在参考图6a,描绘了用于部署和使用应用于服务及其微服务的api请求的策略的系统的示例植入。该系统可以包括使用策略管理器604和策略605来实现的网络装置200,例如图5a的网络装置200。网络装置可以与服务图505的拓扑的任何一个或多个元件通信,例如作为api调用的请求者和接收并响应这些api调用的微服务或服务中间的装置。策略管
理器可以对微服务(例如服务图505的拓扑的服务的微服务)或微服务之间的api调用应用策略。例如,策略管理器604可以将策略605a应用到来自至微服务575n的外部源的api调用a以确定是允许还是拒绝对微服务的api a的访问。策略管理器604可以将策略605n应用于微服务ms 575n和微服务575b之间的api调用n,以确定是允许还是拒绝对微服务之间的api n的访问。
116.策略管理器604可以包括应用、程序、服务、任务、脚本、过程和/或任何类型和形式的可执行指令以将一个或多个策略604应用于一个或多个请求。在一些实施例中,策略管理器604可以是或包括本文别处描述的策略引擎236。策略管理器604可以实施逻辑、规则和/或功能以将一个或多个策略605应用于请求,例如确定该请求是否被允许或准许以及如何相应地处理该请求。策略管理器604可以被实现为将一个或多个策略605应用于对系统的任何服务或微服务(例如由服务图505表示的服务或微服务)的任何api调用。
117.策略管理器604可以响应于服务图监测器516。例如,服务图监测器可以监测api调用的网络流量。服务图监测器可以识别匹配策略管理器的策略的api调用。服务图监测器可以响应于api调用,例如匹配或对应于策略的api调用,来调用、触发或激活策略管理器。策略管理器可以指示或与服务图监测器通信以基于为策略管理器实现的策略识别要监测的api调用。
118.策略605可以被配置为由策略管理器604使用以识别api调用以及是允许还是拒绝对服务或微服务的api调用。策略605可以包括一个或多个参数,该参数被配置为识别请求的名称,例如api调用的名称以及该请求是被允许还是被拒绝。策略605可以配置有用于可以被允许或拒绝api的使用或对服务或微服务的api的访问的源或请求者的标识的一个或多个规则。策略604可以配置有规则、参数或设置以指示或指导装置基于地理位置来允许或拒绝api的使用。策略604可以配置有规则、参数或设置以指示或指导装置基于api调用的日期和/或时间来允许或拒绝api的使用。策略604可以配置有规则、参数或设置以指示或指导装置基于进行api调用的用户来允许或拒绝api的使用。策略604可以配置有规则、参数或设置以指示或指导装置基于进行api调用的实体或企业来允许或拒绝api的使用。
119.策略604可以配置有规则、参数或设置以指示或指导装置基于用于api调用的网络链接来允许或拒绝api的使用。策略604可以配置有规则、参数或设置以指示或指导装置基于api调用的源是否来自不同于提供api的服务或微服务的网络的网络来允许或拒绝api的使用。
120.策略604可以配置有规则、参数或设置以指示或指导装置基于关于请求者的装置的元数据来允许或拒绝api的使用。策略604可以配置有规则、参数或设置以指示或指导装置基于进行api调用的服务器、服务或微服务的标识符来允许或拒绝api的使用。策略604可以配置有规则、参数或设置以指示或指导装置基于请求者和被请求的服务或微服务的标识符,例如请求api调用的服务器、服务或微服务与作为api调用的接收者或提供api调用的服务器、服务或微服务之间的api调用,来允许或拒绝api的使用。策略604可以配置有规则、参数或设置以指示或指导装置基于由api调用使用或传递的一个或多个参数或值来允许或拒绝api的使用。
121.现在参考图6b,描述了用于将策略应用于微服务的应用编程接口的方法的示例性实施方式。在方法620的简要概述中,在步骤625,装置接收访问api的请求。在步骤630,装置
识别用于访问微服务的应用编程接口(api)的策略,该策略识别哪些其他微服务可以访问该api。在步骤635,装置将策略应用于请求。在步骤640,装置基于策略允许或阻止请求访问api。
122.更详细地,在步骤625,装置接收访问微服务的api的请求。该装置可以接收来自客户机装置的请求。装置可以接收来自服务器的请求。装置可以接收来自微服务的请求。装置可以接收来自数据中心中的一个服务器、多个服务器或微服务的请求。装置可以接收来自另一个api的请求。装置可以接收来自多个微服务的请求。该方法可以包括由装置从多个微服务以外的源接收访问微服务的api的请求。源可以是多个微服务的网络外部的装置。装置可以通过网络接收请求。请求可以经过装置到达api调用的目的地,例如服务或微服务。装置可以拦截并处理请求。
123.在步骤630,装置识别用于访问请求的api调用的策略。装置可以基于请求的ip地址识别策略。装置可以基于提交请求的用户的身份来识别策略。装置可以基于与请求相关联的实体来识别策略。例如,装置可以基于提交请求的公司或经由服务或微服务提供api的实体来识别策略。装置可以基于api来识别策略。例如,装置可以基于api的标识来选择策略。装置可以基于api的名称来选择策略。例如,装置可以选择一个策略,允许请求中包含字符串的请求访问api名称中具有匹配字符串的api。装置可以基于作为一组api的一部分的api来识别策略。装置可以基于api的特性(例如由api使用的任何参数或值)来识别策略。
124.装置可以基于请求的源来选择策略。例如,装置可以基于请求是否源自装置网络内部来选择策略。例如,装置可以基于请求是否源自防火墙之外来选择策略。例如,装置可以基于请求是否源自可信网络来选择策略。
125.装置可以基于请求的地理来源或api或微服务的提供者的地理来源来选择策略。例如,装置可以基于请求是否是本地的来选择策略。装置可以基于请求是否源自受限国家或位置来选择策略。装置可以基于请求的来源是否已知来选择策略。
126.装置可以基于请求在时间跨度上的频率来选择策略。例如,如果请求的频率太高,装置可以选择更严格的策略。
127.装置可以基于api中的许可字段来选择策略。例如,装置可以为具有将api分类为受限的许可字段的api选择更严格的策略。例如,装置可以基于对具有将api分类为仅限内部访问的许可字段的api的请求的源来选择策略。
128.装置可以基于项目或实体的任何组合来选择策略,包括本文描述的任何组合,例如api的名称、api参数(d)、用户身份、实体身份、装置元数据、请求者或api提供者的地理位置、网络类型、网络标识符、时间标准等。
129.在步骤635,装置将策略应用于请求的api调用。策略可以基于策略的一个或多个规则来识别针对api调用采取的动作。可以通过在策略的一个或多个规则中使用请求或api调用的内容来应用策略。可以通过在策略的一个或多个规则中使用请求者或请求目的地(例如提供api的服务或微服务)的元数据来应用策略。可以通过在策略的一个或多个规则中使用关于与请求或api相关联的任何装置的元数据来应用该策略。如果结果为真,则策略的一个或多个规则可以触发由策略指定的动作,例如允许或拒绝api请求。如果结果为假,则策略的一个或多个规可以触发由策略指定的动作,例如允许或拒绝api请求。响应于该策略,装置可以将来自第二微服务的访问微服务的api的请求识别为被允许。
130.在步骤640,装置基于策略允许或阻止请求访问api。策略的应用可以拒绝该请求。策略的应用可以允许该请求。策略的应用可以将请求置于挂起或等待状态。例如,策略可以在高利用率的时间段期间将指定为低紧急请求或低优先级请求的请求置于等待状态。当有更多计算资源可用时,可以将该请求从等待状态中取出。例如,在低资源的时间段期间,例如如果请求频率高或请求需要大量资源,策略的应用可以将请求置于等待状态。
131.装置可以响应于策略来阻止请求。装置可以将允许的请求转发到微服务。
132.如果装置允许该请求,则该装置可以将请求记录为被允许。如果装置拒绝该请求,则该装置可以将该请求记录为被拒绝。如果装置将请求置于等待状态,则装置可以将请求记录为等待。装置可将等待请求排成队列,并允许请求在由策略确定的适当时间访问api。
133.装置可以监测、收集和存储api调用的度量和关于由api调用触发或在api调用上使用的策略的度量,包括策略规则使用的任何信息。装置可以在相关联的服务图中例如经由服务图显示器来显示api调用的度量和关于策略的度量以及关于策略的信息。
134.该方法可以包括由该装置生成服务图,该服务图包括多个微服务以及一个或多个微服务与该微服务之间的一个或多个链接。服务图可以包括多个微服务以及其他微服务之一与该微服务之间的策略允许的一个或多个链接。装置可以显示具有一个或多个到由策略允许的微服务的链接的标识的服务图。装置可以响应于策略并与到微服务的相应链接相关联地显示标识一个或多个装置动作的服务图。
135.装置可以显示具有一个或多个用户接口元件的服务图。用户接口元件可允许用户指示装置针对与一个或多个请求相关的链接采取动作。该动作可以是隔离、阻止访问、发布或添加第二策略。
136.本文在一个或多个实施例的上下文中描述的各种元件可以单独提供或以任何合适的子组合提供。例如,本文描述的过程可以以硬件、软件或其组合来实现。此外,本文描述的过程不限于所描述的具体实施例。例如,本文描述的过程不限于本文描述的特定处理顺序,相反,过程块可以根据需要重新排序、组合、移除或并行或串行地执行,以实现本文所阐述的结果。
137.将进一步理解,在不背离以下权利要求的范围的情况下,本领域技术人员可以对本文已经描述和示出的部件的细节、材料和布置进行各种改变。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献