应用拓扑发现
文献发布时间:2023-06-19 18:27:32
背景技术
本发明一般涉及云计算领域,尤其涉及发现现有云计算环境的拓扑。
云应用的通信拓扑由云应用内所使用的服务的集合及其外部依赖关系或组件、由组件所支持的API端点、它们之间的指向的源目标通信链路、以及源组件在每个链路中连接到的目标组件的(多个)API端点组成。细粒度拓扑信息在正在生产中运行的云应用的故障诊断和优化中可能是关键的。用于发现或推断应用的拓扑的已知解决方案包括使用云服务网格、服务网格可观测性工具和开放追踪工具。这些类型的工具需要应用程序内的一定水平的仪器,特别是生产环境,这可以被认为是侵入性的。在各种情况下,基于系统内的组件的知识,生产环境的“物理”拓扑可以是可用的或可发现的,但是关于物理上不明显的生产环境中的服务或组件的信息可能不容易获得。生产环境所有者/管理者可能不愿意使诸如此类的连接信息可用,特别是在应用接收或管理敏感信息的场景中。分布式应用的日益普及增加了对拓扑分析的需要,该拓扑分析可以在应用内的物理连接之外进行推断和发现。
发明内容
如本文所公开的,一种用于标识应用拓扑的计算机实现的方法,包括标识与感兴趣的应用相对应的沙箱环境。一旦标识了沙箱环境,该方法通过分析沙箱环境以标识沙箱环境内的服务之间的指示第一拓扑的通信链路的集合而继续。该方法还包括标识与感兴趣的应用相对应的生产系统,以及查询所述生产系统以标识指示第二拓扑的结构依赖关系的集合。该方法通过组合第一拓扑和第二拓扑来创建云应用的完整拓扑而结束。所述用于标识应用拓扑的计算机实现的方法可以实现拓扑发现,而不需要生产环境的侵入性仪器或广泛分析。所述用于标识应用拓扑的计算机实现的方法可以另外包括,通过匹配由沙箱环境中的服务与生产系统中的服务所使用的基础设施信息来将沙箱环境中的服务与生产系统中的服务进行匹配。以此方式将沙箱环境中的服务与生产系统中的服务进行匹配使得能够建立在其拓扑可访问的沙箱环境中存在的服务与生产系统中存在的可能更难以分析的服务之间的对应关系,这可以最终允许对应的通信链路被标识。所述用于标识应用拓扑的计算机实现的方法可以另外包括,使用沙箱环境中的服务到服务的通信链路以建立生产系统中的服务之间的对应链路。将沙箱环境中的通信链路与生产系统中存在的服务相匹配使得能够推断生产系统的拓扑中的链路,而不需要生产系统的仪器。
一种用于标识应用拓扑的计算机程序产品,包括一个或多个计算机可读存储介质和存储在一个或多个计算机可读存储介质上的程序指令,所述程序指令包括用于标识与感兴趣的应用相对应的沙箱环境的指令。该计算机程序产品还包括用于分析沙箱环境以标识沙箱环境内的服务之间的指示第一拓扑的通信链路的集合的指令。该计算机程序产品另外包括指令,用于标识与感兴趣的应用相对应的生产系统,以及查询该生产系统以标识指示第二拓扑的结构依赖关系的集合。计算机程序产品另外包括用于通过组合第一拓扑和第二拓扑来创建云应用的完整拓扑的指令。所述计算机程序产品可以使得能够执行用于标识应用拓扑的方法而不需要生产环境的侵入性仪器或广泛分析。所述计算机程序产品可以另外包括通过匹配由沙箱环境中的服务与生产系统中的服务所使用的基础设施信息来将沙箱环境中的服务与生产系统中的服务进行匹配的指令。所述用于标识应用拓扑的计算机程序产品可以另外包括指令,用于使用沙箱环境中的服务到服务的通信链路来建立生产系统中的服务之间的对应链路。
如本文所公开的,一种用于标识应用拓扑的计算机系统,包括一个或多个计算机处理器、一个或多个计算机可读存储介质、存储在计算机可读存储介质上以供一个或多个处理器中的至少一个处理器执行的程序指令,程序指令包括用于标识与感兴趣的应用相对应的沙箱环境的指令。该计算机系统还包括用于分析沙箱环境以标识沙箱环境内的服务之间的指示第一拓扑的通信链路的集合的指令。计算机系统还包括用于标识与感兴趣的应用相对应的生产系统以及查询生产系统以标识指示第二拓扑的结构依赖关系的集合的指令。所述计算机程序产品可以使得能够执行用于标识应用拓扑的方法而不需要生产环境的侵入性仪器或广泛分析。所述计算机系统可以另外包括用于通过匹配由服务所使用的基础设施信息来将沙箱环境中的服务与生产系统中的服务进行匹配的指令。用于标识应用拓扑的所述计算机系统可以另外包括指令,用于使用沙箱环境中的服务到服务的通信链路来建立生产系统中的服务之间的对应链路。
附图说明
图1描绘了根据本发明的实施例的云计算环境;
图2描绘了根据本发明实施例的抽象模型层;
图3是根据本发明至少一个实施例的描述拓扑分析系统的框图;
图4是根据本发明至少一个实施例的描述拓扑发现方法的流程图;
图5描绘了根据本发明的至少一个实施例的水平拓扑的框图;
图6描绘了根据本发明的示例性实施例的垂直拓扑的框图;
图7描绘了根据本发明的示例性实施例的完整拓扑;以及
图8是根据本发明的实施例的执行图像分析系统的计算系统的组件的框图。
具体实施方式
本发明的实施例通过被动查询和装备沙箱环境(诸如测试环境、开发环境和分级环境(staging environment))的组合来分析和构建现有拓扑,而不进行任何相应的生产系统的侵入性分析。
现在将参照附图详细描述本发明。本发明的实施例的实现可以采取各种形式,并且随后参考附图讨论示例性实现细节。
应当理解,尽管本公开包括关于云计算的详细描述,但是本文所陈述的教导的实现不限于云计算环境。相反,本发明的实施例能够结合现在已知或以后开发的任何其它类型的计算环境来实现。
云计算是一种服务交付模型,用于实现对可配置计算资源(例如,网络、网络带宽、服务器、处理、存储器、存储装置、应用程序、虚拟机和服务)的共享池的方便的按需网络访问,可配置计算资源可以以最小的管理精力或与服务的提供者的交互来快速供应和释放。该云模型可以包括至少五个特性、至少三个服务模型和至少四个部署模型。
特征如下:
按需自助服务:云消费者可以单方面地自动地根据需要提供计算能力,诸如服务器时间和网络存储,而不需要与服务的提供者进行人工交互。
广泛的网络接入:能力在网络上可用,并且通过促进由异构的瘦客户端或胖客户端平台(例如,移动电话、膝上型计算机和PDA)使用的标准机制来访问。
资源池化:提供者的计算资源被池化以使用多租户模型来服务多个消费者,其中不同的物理和虚拟资源根据需求被动态地分配和重新分配。存在位置无关的意义,因为消费者通常无法控制或不知道所提供的资源的确切位置,但是可以能够在较高抽象级别(例如国家、州或数据中心)指定位置。
快速弹性:在一些情况下自动地可以快速且弹性地提供能力,以迅速向外扩展以及快速释放以迅速向内扩展。对于消费者,可用于提供的能力通常看起来不受限制,并且可以在任何时间以任何数量购买。
测量服务:云系统通过利用在适合于服务类型(例如,存储、处理、带宽和活动用户账户)的某一抽象级别的计量能力来自动地控制和优化资源使用。可以监视、控制和报告资源使用,从而为所利用服务的提供者和消费者两者提供透明性。
服务模型如下:
软件即服务(SaaS):提供给消费者的能力是使用在云基础设施上运行的提供者的应用。应用程序可通过诸如web浏览器(例如,基于web的电子邮件)等瘦客户端接口从各种客户端设备访问。消费者不管理或不控制包括网络、服务器、操作系统、存储、或甚至个别应用能力的底层云基础结构,可能的例外是有限的用户专用应用配置设置。
平台即服务(PaaS):提供给消费者的能力是将消费者创建或获取的应用部署到云基础设施上,该消费者创建或获取的应用是使用由提供商支持的编程语言和工具创建的。消费者不管理或不控制包括网络、服务器、操作系统或存储的底层云基础设施,但具有对部署的应用和可能的应用托管环境配置的控制。
基础设施即服务(IaaS):提供给消费者的能力是提供处理、存储、网络和消费者能够部署和运行任意软件的其它基本计算资源,软件可以包括操作系统和应用程序。消费者不管理或不控制底层云基础设施,但具有对操作系统、存储、部署的应用的控制,以及可能对选择的联网组件(例如,主机防火墙)的有限控制。
部署模型如下:
私有云:云基础设施仅为组织操作。它可以由组织或第三方管理,并且可以存在于组织内部或组织外部。
社区云:云基础设施由若干组织共享,并且支持具有共享关注(例如,任务、安全要求、策略和合规性考虑)的特定社区。它可以由组织或第三方管理,并且可以存在于组织内部或组织外部。
公有云:云基础设施可用于一般公众或大型工业群体,并且由销售云服务的组织拥有。
混合云:云基础设施是两个或更多云(私有、社区或公有)的组合,云保持唯一实体,但是通过使数据和应用能够移植的标准化或私有技术(例如,用于云之间的负载平衡的云爆发)绑定在一起。
云计算环境是面向服务的,其聚焦于无状态、低耦合、模块性和语义互操作性。在云计算的核心是包括互连节点的网络的基础设施。
现在参考图1,描绘了说明性云计算环境50。如图所示,云计算环境50包括云消费者所使用的本地计算设备可以与其通信的一个或多个云计算节点10,本地计算设备诸如例如个人数字助理(PDA)或蜂窝电话54A、台式计算机54B、膝上型计算机54C和/或自动移动计算机系统54N。节点10可以彼此通信。它们可以被物理地或虚拟地分组(未示出)在一个或多个网络中,诸如如上文描述的私有云、社区云、公有云或混合云或其组合。这允许云计算环境50提供基础设施、平台和/或软件作为服务,云消费者不需要为其维护本地计算设备上的资源。应当理解,图1中所示的计算设备54A-54N的类型仅旨在说明,并且计算节点10和云计算环境50可以在任何类型的网络和/或网络可寻址连接上(例如,使用web浏览器)与任何类型的计算设备通信。
现在参考图2,示出了由云计算环境50(图1)提供的功能抽象层的集合。应当预先理解,图2中所示的组件、层和功能仅旨在说明,并且本发明的实施例不限于此。如所描绘的,提供了以下层和相应的功能:
硬件和软件层60包括硬件和软件组件。硬件组件的示例包括:主机61;基于RISC(精简指令集计算机)架构的服务器62;服务器63;刀片服务器64;存储设备65;以及网络和联网组件66。在一些实施例中,软件组件包括网络应用服务器软件67和数据库软件68。
虚拟化层70提供抽象层,从该抽象层可以提供虚拟实体的以下示例:虚拟服务器71;虚拟存储装置72;虚拟网络73,包括虚拟专用网络;虚拟应用和操作系统74;以及虚拟客户端75。
在一个示例中,管理层80可以提供以下描述的功能。资源供应81提供用于在云计算环境内执行任务的计算资源和其它资源的动态采购。计量和定价82提供了在云计算环境中利用资源时的成本追踪,以及用于消耗这些资源的帐单或发票。在一个示例中,这些资源可以包括应用软件许可证。安全性为云消费者和任务提供身份验证,以及为数据和其他资源提供保护。用户门户83为消费者和系统管理员提供对云计算环境的访问。服务级别管理84提供云计算资源分配和管理,使得满足所需的服务级别。服务级别协议(SLA)规划和履行85提供对云计算资源的预安排和采购,其中根据SLA预期未来需求。
工作负载层90提供了可以利用云计算环境的功能的示例。可以从该层提供的工作负载和功能的示例包括:绘制地图和导航91;软件开发和生命周期管理92;虚拟教室教育交付93;数据分析处理94;事务处理95;和拓扑发现96。
图3是示出根据本发明至少一个实施例的拓扑分析系统300的框图。如所描绘的,拓扑分析系统300包括计算系统310、沙箱环境320、生产应用330和网络340。拓扑分析系统300可以被配置为执行云应用的拓扑的非侵入性分析。
计算系统310可以是台式计算机、膝上型计算机、专用计算机服务器或本领域已知的任何其它计算机系统。在一些实施例中,计算系统310表示利用集群计算机充当单个无缝资源池的计算机系统。通常,计算系统310代表能够接收和发送数据的任何电子设备或电子设备的组合,如关于图8更详细地描述的,计算系统310可以包括内部和外部硬件组件,如关于图8进一步详细地描绘和描述的。
如所描绘的,计算系统310包括分析应用315。分析应用315可以是被配置为分析云生产应用的拓扑的应用。在至少一个实施例中,分析应用315被配置为以非侵入性方式分析云应用,而不需要访问敏感数据。通常,分析应用315被配置为执行拓扑发现方法。关于图4描述了适当的拓扑发现方法的一个实施例。
如所描绘的,分析应用315包括水平分析组件316、垂直分析组件317和拓扑构建组件318。水平分析组件316、垂直分析组件317和拓扑构建组件318中的每个可以包括其自己专用的存储器单元或处理单元,或者可以备选地利用容纳在计算系统310或分析应用315内的共享存储器单元和处理单元。水平分析组件316、垂直分析组件317和拓扑构建组件318可以组合地被配置为执行拓扑发现方法的某些步骤,诸如关于图4描述的拓扑发现方法。
水平分析组件316被配置为分析沙箱环境320以标识服务之间的一组通信链路,可以包括标识包含在沙箱环境内的一个或多个服务。在至少一些实施例中,水平分析组件被配置为确定所标识的一个或多个服务中的哪些服务彼此通信以建立通信链路的集合。水平分析组件316可另外被配置为监视应用中存在的任何仪器工具。在至少一些实施例中,水平分析组件316还被配置为使用诸如环境变量等代码元素的静态分析来标识现有通信链路。水平分析组件可被附加地配置为标识与包含在沙箱环境内的所标识的一个或多个服务相对应的一个或多个服务名称。
垂直分析组件317可被配置为查询生产应用330以标识结构依赖关系的集合。在至少一个实施例中,垂直分析组件317被配置为向生产应用330的一个或多个组件发送查询以请求关于生产应用的一个或多个组件的信息。垂直分析组件317可另外被配置为针对每个组件继承来自沙箱环境320中的相应组件的API以及基于沙箱组件中的相应源-目标链接的源-目标链接。垂直分析组件317可以另外被配置为向生产应用330查询服务、网荚(pod)、部署、守护进程集、副本集、有状态集、节点或出口网络策略中的任何一个。在至少一些实施例中,垂直分析组件317被配置为请求生产应用330中的组件的名称,以及生产系统中支持服务的容器映像的IDS。
拓扑构建组件318可以被配置为组合由水平分析应用316和垂直分析应用317提供的水平拓扑和垂直拓扑。在至少一个实施例中,拓扑构建组件318被配置为将沙箱环境320中支持服务的容器映像的ID与生产应用330中支持服务的容器映像的ID进行匹配。拓扑构建组件318可被配置为将沙箱环境320中的服务的名称与生产应用330中的服务的名称相匹配。在至少一个实施例中,拓扑构建组件318被配置为计算从沙箱环境320和生产应用330中的服务发出的流量的网络指纹。在这样的实施例中,拓扑构建组件318可另外被配置为对网络指纹执行相似性匹配算法。拓扑构建组件318还可被配置为向用户请求关于所构建的拓扑的反馈或附加信息。
沙箱环境320可以对应于旨在表示感兴趣的云应用的测试环境。在至少一些实施例中,沙箱环境320是其中可以关于云应用测试代码而不将活动服务器及其数据暴露于可能损坏的改变或错误的环境。在一些实施例中,沙箱环境320对应于旨在表示感兴趣的云应用的分级环境。分级环境可以是旨在用于测试代码、构建或更新以在部署应用程序之前确保类似生产的环境下的质量的生产环境的几乎精确的复制品。在一些实施例中,沙箱环境320对应于开发环境。开发环境对应于用于测试和调试感兴趣的云应用的过程和工具的集合。开发环境有时被称为集成开发环境或IDE,它可包括编译器、解释器、源代码编辑器、构建自动化工具集和调试器中的任一个。在一些实施例中,沙箱环境320可以表示分级环境、开发环境和测试环境的一些组合。
生产应用330对应于功能云应用。生产应用330可以是沙箱环境320表示的云应用的最终版本。参照图6和7描述了合适的生产应用的示例性实施例。
网络340可以是例如局域网(LAN)、诸如因特网的广域网(WAN)或两者的组合,并且包括有线、无线或光纤连接。一般而言,网络340可以是将支持计算系统310、沙箱环境320和生产应用程序330之间的通信的连接和协议的任何组合。
图4是描述根据本发明至少一个实施例的拓扑发现方法400的流程图。如所描绘的,拓扑发现方法400包括标识(410)对应于云应用的沙箱环境,分析(420)沙箱环境以标识服务之间的通信链路的集合,标识(430)对应于云应用的生产系统,查询(440)生产系统以标识结构依赖关系的集合,以及通过组合水平拓扑和垂直拓扑来创建(450)云应用的完整拓扑。拓扑发现方法400可用于进行云应用的拓扑的非侵入性分析。
标识(410)与云应用相对应的沙箱环境可以包括接收或标识分析指定的云应用或感兴趣的云应用的请求。在至少一些实施例中,沙箱环境对应于旨在表示感兴趣的云应用的测试环境。测试环境提供了一种环境,其中可以关于云应用测试代码,而不会将活动服务器及其数据暴露于可能造成损害的改变或错误。在一些实施例中,沙箱环境对应于旨在表示感兴趣的云应用的分级环境。分级环境可以是旨在用于测试代码、构建或更新以在部署应用程序之前确保类似生产的环境下的质量的生产环境的几乎精确的复制品。在一些实施例中,沙箱环境对应于开发环境。开发环境对应于用于测试和调试感兴趣的云应用的过程和工具的集合。开发环境有时被称为集成开发环境或IDE,它可包括编译器、解释器、源代码编辑器、构建自动化工具集和调试器中的任一个。标识(410)与云应用相对应的沙箱环境可以另外包括发送对访问适当沙箱环境的请求。在这样的实施例中,许可请求可以被发送到云应用的所有者/控制者和对应的沙箱环境。在至少一些实施例中,标识(410)与云应用相对应的沙箱环境还包括标识最接近地表示云应用的沙箱环境。在至少一些实施例中,诸如关于图3描述的水平分析组件316的水平分析组件被配置为执行与标识(420)对应于云应用的沙箱环境相关联的过程。
分析(420)沙箱环境以标识服务之间的通信链路的集合可以包括标识包含在沙箱环境内的一个或多个服务。服务之间的通信链路的集合在这里可以备选地称为水平拓扑。在另外的实施例中,服务之间的通信链路的集合可以备选地被称为第一拓扑。应当理解,术语水平拓扑或第一拓扑不指示拓扑的物理方向或拓扑出现的顺序。分析(420)沙箱环境还可以包括确定所标识的一个或多个服务中的哪些服务彼此通信以建立通信链路的集合。在至少一个实施例中,分析(420)沙箱环境包括使用现有的服务网格可观测性工具来探测云应用以实现连接可见性。服务网格是内置在应用中的专用基础设施层,其被配置为控制所述应用的不同部分如何彼此通信。在感兴趣的云应用包括服务网格层的实施例中,分析(420)沙箱环境包括分析服务网格以标识包含在沙箱环境内的一个或多个服务之间的通信基础设施。分析(420)沙箱环境以标识服务之间的通信链路的集合可以包括使用诸如环境变量的代码元素的静态分析来标识现有通信链路。在一些实施例中,分析(420)沙箱环境包括分析域名系统(DNS)查询以标识服务之间的现有通信链路。分析(420)沙箱环境可以另外包括标识与所标识的包含在沙箱环境内的一个或多个服务相对应的一个或多个服务名称。在至少一个实施例中,分析(420)沙箱环境包括标识备份沙箱环境中的服务的容器映像的ID。在至少一些实施例中,诸如关于图3描述的水平分析组件316的水平分析组件被配置为执行与分析(420)沙箱环境相关联的过程。
标识(430)与云应用相对应的生产系统可以包括向云应用或对应的沙箱环境查询关于对应的生产系统的信息。在至少一个实施例中,标识(430)与云应用相对应的生产系统包括标识连接到沙箱环境内包含的一个或多个服务中的至少一个或与其相关联的生产系统。标识(430)与云应用相对应的生产系统可以包括接收标识/指示与云应用相关联的生产系统的信息。在至少一些实施例中,标识(430)与云应用相对应的生产系统包括请求对生产系统的访问,或者尝试建立与生产系统的连接,使得可以发送/接收查询和查询响应。在至少一些实施例中,诸如关于图3描述的垂直分析组件317之类的垂直分析组件被配置为执行与标识(430)对应于云应用的生产系统相关联的过程。
查询(440)生产系统以标识结构依赖关系的集合可以包括向生产系统的一个或多个组件发送查询以请求关于生产系统的一个或多个组件的信息。结构依赖关系的集合可以另外被称为垂直拓扑。在另外的实施例中,结构依赖关系(或垂直拓扑)的集合可以被称为第二拓扑。应当理解,术语垂直拓扑或第二拓扑不指示拓扑的物理方向或拓扑出现的顺序。在至少一个实施例中,查询(440)生产系统包括,对于生产系统中的每个组件,从沙箱环境中的相应组件继承API,以及基于沙箱组件中的相应源-目标链接继承源-目标链接。换言之,在生产系统中的组件确实具有存在于沙箱环境中的对应组件的实施例中,推断所述组件也具有与对应沙箱组件相同的连接链接和API。在这样的实施例中,查询(440)生产系统以标识结构依赖关系的集合包括更新该结构依赖关系的集合以反映沙箱环境中的对应组件所指示的API。在沙箱环境中不存在对应组件的情况下,该组件可以被标记为丢失信息或被忽略。查询(440)生产系统以标识垂直拓扑还可以包括向生产系统查询服务、网荚、部署、守护进程集、副本集、有状态集、节点或出口网络策略中的任何一个。查询生产系统以标识垂直拓扑结构可以另外包括请求生产系统中的组件的名称。在至少一些实施例中,查询(440)生产系统还包括请求生产系统中的容器映像支持服务的ID。在至少一些实施例中,诸如关于图3描述的垂直分析组件317的垂直分析组件被配置为执行与查询(440)生产系统以标识结构依赖关系的集合相关联的过程。
通过组合水平拓扑和垂直拓扑来创建(450)云应用的完整拓扑可以包括组合在步骤420中标识的所标识的通信链路集合和在步骤440中标识的结构依赖关系的集合以创建云应用的完整拓扑。创建(450)云应用的完整拓扑可以包括将在沙箱环境中支持服务的容器映像的ID与在生产应用中支持服务的容器映像的ID进行匹配。在附加实施例中,诸如在容器映像ID不可用的那些实施例中,创建(450)云应用的完整拓扑包括将沙箱环境中的服务的名称与生产应用中的服务的名称进行匹配。创建(450)云应用的完整拓扑可以包括计算从沙箱环境和生产应用中的服务发出的流量的网络指纹。这样的实施例可以另外包括对网络指纹执行相似性匹配算法。创建(450)云应用的完整拓扑可以另外包括将关于沙箱环境中的通信链路的信息传送到生产环境。用于联结两个拓扑的过程的一个示例可以是通过从与垂直拓扑相关的节点的结构属性和连接性发现相似节点(例如使用局部邻域的结构相似性来导出两个不同图的节点的成对相似性得分),然后从相似沙箱节点推断与水平拓扑相关的生产节点的属性。在一些实施例中,诸如在一些查询信息不完整的那些实施例中,完整的拓扑可以由专家扩充或编辑或调整。在至少一些实施例中,诸如关于图3描述的拓扑构建组件318之类的拓扑构建组件被配置为执行与创建(450)应用的完整拓扑相关联的过程。
关于图5、图6和图7,描绘了应用以及该应用内的对应服务和服务部署的示例性实施例。应当理解,虽然所描绘的实施例包括各种特定服务和按名称的部署,并且显示这些特定服务和部署之间的连接,但是任何数量的应用可以适合于使用本文所讨论的方法进行分析,并且其不应当限于包含关于这些附图所讨论的服务的严格组合的应用。相反,所描绘和讨论的服务和服务部署表示在应用内存在的任何应用或服务,该应用负责在与所述应用相关联的某一容量内发送和/或接收数据。关于所描述的实施例,每个服务可以对数据进行各种操作,或者可以不对数据进行操作,或者可以在其间的任何地方进行操作;相对于这里公开的方法,将分析的是这些服务/部署/应用的纯粹存在,以及它们彼此之间的通信。关于各种服务和部署之间的通信/连接,本文公开的方法不分析经由这些连接进行的任何通信内的数据,而是检测这些连接的存在以确定应用内哪些服务彼此通信。因此,应当理解,关于图5、图6和图7描述的服务、部署和其它各种结构/应用旨在表示根据本发明的单个实施例的应用,而不是旨在表示能够使用这里的方法分析的服务的全面列表,也不是所需组件的列表。
图5示出了根据本发明至少一个实施例的水平拓扑500的框图。所描述的实施例包括可以存在于沙箱环境中的样本服务的集合,但是应该被认为仅仅是可以存在于本发明的其他实施例中的许多服务组合中的一个示例。如所描绘的,水平拓扑500包括报告服务510、统计服务520、事务服务530、细节服务540、首页服务550、评级服务560、以及评论服务570。图5还描绘了所描绘的服务之间的数据流。如所描绘的,报告服务510向统计服务520提供报告数据。统计服务520处理所接收的报告数据,并且向事务服务530提供统计和分析。首页服务550向评论服务570和细节服务540两者提供页面信息。评论服务570处理所接收的页面信息,并且向评级服务560提供评论信息。细节服务540处理接收到的页面信息并向事务服务530提供细节信息。
图6示出了根据本发明的示例性实施例的垂直拓扑600的框图。所描述的实施例包括可以存在于生产应用中的样本结构和依赖关系的集合,但是应当仅被认为是可以存在于本发明的附加实施例中的结构和依赖关系的许多组合中的一个示例。如所描绘的,垂直拓扑600包括容器610、节点620、评论部署630、评级部署640、首页部署650、细节部署660、报告部署670、统计部署680和事务部署690。容器610(610A、610B、610C)可以分别表示集群中运行的进程/微服务的单个实例。节点620可以彼此通信。它们可以被物理地或虚拟地分组(未示出)在一个或多个网络中,诸如如上文描述的私有云、社区云、公有云或混合云或其组合。可以理解,节点620可通过任何类型的网络和/或网络可寻址连接(例如,使用web浏览器)与任何类型的计算机化设备通信。在一些实施例中,每个所描绘的节点620可以对应于唯一节点;在其它实施例中,所描绘的节点620中的一些对应于相同节点。应当理解,部署被描绘为与它们的对应节点和网荚并排,并且哪些部署与每个节点相关联可以随实施例而变化。评论部署630(630A、630B、630C)对应于一个或多个评论服务的特定部署(或多个部署),例如关于图5描述的评论服务,评级部署640对应于评级服务的特定部署,例如关于图5描述的评级服务,首页部署650对应于首页服务的特定部署,例如关于图5描述的首页服务,细节部署660对应于细节服务的特定部署,例如关于图5描述的细节服务,报告部署670对应于报告服务的特定部署,例如关于图5描述的报告服务,统计部署680对应于统计服务的特定部署,例如关于图5描述的统计服务,事务部署690对应于事务服务的特定实现,例如关于图5描述的事务服务。如所描绘的,垂直拓扑600不包括关于服务或部署之间的连接的全面信息。
图7描述了根据本发明的示例性实施例的完整拓扑700。如所描绘的,完整拓扑700表示水平拓扑500和垂直拓扑600的组合。围绕垂直拓扑组件(各种特定部署)的虚线和对应的标签指示来自它们所对应的水平拓扑的服务,并且完整拓扑700中的箭头对应于所指示的服务之间的通信链路。典型的沙箱被构建为具有最少的配置和资源,以提供一种在不访问可能也具有敏感数据的产品部署的情况下训练和获得真实的亲身体验的方式。如所描绘的,图5中的水平拓扑中的服务已经基于服务名称与图6中的垂直拓扑中的部署匹配,但是可以备选地使用容器映像ID来匹配。
图8描述了根据本发明的说明性实施例的计算系统110的组件的框图。应当理解,图8仅提供了一种实现的说明,而不暗示对其中可实现不同实施例的环境的任何限制。可以对所描述的环境进行许多修改。
如图所示,计算机800包括通信结构802,其提供(多个)计算机处理器804、存储器806、持久性存储装置808、通信单元812和(多个)输入/输出(I/O)接口814之间的通信。通信结构802可以用被设计用于在处理器(诸如微处理器、通信和网络处理器等)、系统存储器、外围设备和系统内的任何其它硬件组件之间传递数据和/或控制信息的任何体系结构来实现。例如,通信结构802可以用一个或多个总线来实现。
存储器806和持久性存储装置808是计算机可读存储介质。在该实施例中,存储器806包括随机存取存储器(RAM)816和高速缓存存储器818。通常,存储器806可以包括任何合适的易失性或非易失性计算机可读存储介质。
一个或多个程序可以存储在持久性存储装置808中,以便由相应计算机处理器804中的一个或多个经由存储器806的一个或多个存储器访问和/或执行。在该实施例中,持久性存储装置808包括磁硬盘驱动器。作为磁硬盘驱动器的替代或补充,持久性存储装置808可包括固态硬盘驱动器、半导体存储装置、只读存储器(ROM)、可擦除可编程只读存储器(EPROM)、快闪存储器或能够存储程序指令或数字信息的任何其它计算机可读存储媒体。
持久性存储装置808使用的介质也可以是可移动的。例如,可移动硬盘驱动器可以用于持久性存储装置808。其它示例包括光盘和磁盘、拇指驱动器和智能卡,它们被插入到驱动器中以便传送到也是持久存储808的一部分的另一计算机可读存储介质上。
在这些示例中,通信单元812提供与其他数据处理系统或设备的通信。在这些示例中,通信单元812包括一个或多个网络接口卡。通信单元812可通过使用物理和无线通信链路中的一者或两者来提供通信。
(多个)I/O接口814允许与可连接到计算机800的其它设备输入和输出数据。例如,I/O接口814可以提供到诸如键盘、小键盘、触摸屏和/或一些其它合适的输入设备的外部设备820的连接。外部设备820还可以包括便携式计算机可读存储介质,例如拇指驱动器、便携式光盘或磁盘、以及存储卡。用于实践本发明的实施例的软件和数据可以存储在这样的便携式计算机可读存储介质上,并且可以经由(多个)I/O接口814加载到持久性存储装置808上。(多个)I/O接口814也连接到显示器822。
显示器822提供了向用户显示数据的机制,并且可以是例如计算机监视器。
这里描述的程序是基于在本发明的特定实施例中实现它们的应用来标识的。然而,应当理解,这里的任何特定程序术语仅是为了方便而使用,因此本发明不应当限于仅在由这样的术语标识和/或暗示的任何特定应用中使用。
本发明可以是任何可能的技术细节集成水平的系统、方法和/或计算机程序产品。计算机程序产品可以包括其上具有计算机可读程序指令的计算机可读存储介质(或多个介质),所述计算机可读程序指令用于使处理器执行本发明的各方面。
计算机可读存储介质可以是能够保留和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质可以是例如但不限于电子存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或前述的任何合适的组合。计算机可读存储介质的更具体示例的非穷举列表包括以下:便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式光盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、诸如上面记录有指令的打孔卡或凹槽中的凸起结构的机械编码装置,以及上述的任何适当组合。如本文所使用的计算机可读存储介质不应被解释为暂时性信号本身,诸如无线电波或其他自由传播的电磁波、通过波导或其他传输介质传播的电磁波(例如,通过光纤线缆的光脉冲)、或通过导线传输的电信号。
本文描述的计算机可读程序指令可以从计算机可读存储介质下载到相应的计算/处理设备,或者经由网络,例如因特网、局域网、广域网和/或无线网络,下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光传输光纤、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或网络接口从网络接收计算机可读程序指令,并转发计算机可读程序指令以存储在相应计算/处理设备内的计算机可读存储介质中。
用于执行本发明的操作的计算机可读程序指令可以是汇编指令、指令集架构(ISA)指令、机器相关指令、微代码、固件指令、状态设置数据、集成电路的配置数据,或者以一种或多种编程语言(包括面向对象的编程语言,例如Smalltalk、C++等)和过程编程语言(例如“C”编程语言或类似的编程语言)的任意组合编写的源代码或目标代码。计算机可读程序指令可以完全在用户的计算机上执行,部分在用户的计算机上执行,作为独立的软件包执行,部分在用户的计算机上并且部分在远程计算机上执行,或者完全在远程计算机或服务器上执行。在后一种情况下,远程计算机可以通过任何类型的网络连接到用户的计算机,包括局域网(LAN)或广域网(WAN),或者可以连接到外部计算机(例如,使用因特网服务提供商通过因特网)。在一些实施例中,为了执行本发明的各方面,包括例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA)的电子电路可以通过利用计算机可读程序指令的状态信息来执行计算机可读程序指令以使电子电路个性化。
在此参考根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述本发明的各方面。将理解,流程图和/或框图的每个框以及流程图和/或框图中的框的组合可以由计算机可读程序指令来实现。
这些计算机可读程序指令可以被提供给计算机或其他可编程数据处理装置的处理器以产生机器,使得经由计算机或其他可编程数据处理装置的处理器执行的指令创建用于实现流程图和/或框图的一个或多个框中指定的功能/动作的装置。这些计算机可读程序指令还可以存储在计算机可读存储介质中,其可以引导计算机、可编程数据处理装置和/或其他设备以特定方式工作,使得其中存储有指令的计算机可读存储介质包括制品,该制品包括实现流程图和/或框图的一个或多个框中指定的功能/动作的各方面的指令。
计算机可读程序指令还可以被加载到计算机、其他可编程数据处理装置或其他设备上,以使得在计算机、其他可编程装置或其他设备上执行一系列操作步骤,以产生计算机实现的过程,使得在计算机、其他可编程装置或其他设备上执行的指令实现流程图和/或框图的一个或多个框中指定的功能/动作。
附图中的流程图和框图示出了根据本发明的各种实施例的系统、方法和计算机程序产品的可能实现的架构、功能和操作。在这点上,流程图或框图中的每个框可以表示指令的模块、段或部分,其包括用于实现指定的逻辑功能的一个或多个可执行指令。在一些替代实施方案中,框中所注明的功能可不按图中所注明的次序发生。例如,连续示出的两个框实际上可以作为一个步骤来实现,同时、基本同时、以部分或全部时间重叠的方式执行,或者这些框有时可以以相反的顺序执行,这取决于所涉及的功能。还将注意,框图和/或流程图图示的每个框以及框图和/或流程图图示中的框的组合可以由执行指定功能或动作或执行专用硬件和计算机指令的组合的专用的基于硬件的系统来实现。
已经出于说明的目的给出了本发明的各种实施例的描述,但是其不旨在是穷尽的或限于所公开的实施例。在不背离本发明的范围和精神的情况下,许多修改和变化对于本领域的普通技术人员来说是显而易见的。选择本文所使用的术语是为了最好地解释实施例的原理、实际应用或对市场上存在的技术改进,或为了使本领域的其他普通技术人员能够理解本文所公开的实施例。
- 应用于5G小站的网络拓扑结构发现方法及电子设备
- 一种基于CMDB和Netstat发现应用拓扑关系的实现方法