CN114341810A - 跨服务基础设施部署微服务 - Google Patents

跨服务基础设施部署微服务 Download PDF

Info

Publication number
CN114341810A
CN114341810A CN202080061597.4A CN202080061597A CN114341810A CN 114341810 A CN114341810 A CN 114341810A CN 202080061597 A CN202080061597 A CN 202080061597A CN 114341810 A CN114341810 A CN 114341810A
Authority
CN
China
Prior art keywords
microservices
determining
resources
resource
service infrastructure
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
CN202080061597.4A
Other languages
English (en)
Inventor
O.P.马斯特斯
A.J.奈勒-蒂斯
S.C.史密斯
A.J.邓宁斯
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of CN114341810A publication Critical patent/CN114341810A/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/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3664Environments for testing or debugging software
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0803Configuration setting
    • H04L41/0806Configuration setting for initial configuration or provisioning, e.g. plug-and-play
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0895Configuration of virtualised networks or elements, e.g. virtualised network function or OpenFlow elements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/12Discovery or management of network topologies
    • H04L41/122Discovery or management of network topologies of virtualised topologies, e.g. software-defined networks [SDN] or network function virtualisation [NFV]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/40Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks using virtualisation of network functions or resources, e.g. SDN or NFV entities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0805Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/20Arrangements for monitoring or testing data switching networks the monitoring system or the monitored elements being virtualised, abstracted or software-defined entities, e.g. SDN or NFV
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1074Peer-to-peer [P2P] networks for supporting data block transmission mechanisms
    • H04L67/1076Resource dissemination mechanisms or network resource keeping policies for optimal resource availability in the overlay network
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/14Network analysis or design
    • H04L41/142Network analysis or design using statistical or mathematical methods
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/50Network service management, e.g. ensuring proper service fulfilment according to agreements
    • H04L41/5003Managing SLA; Interaction between SLA and QoS
    • H04L41/5009Determining service level performance parameters or violations of service level contracts, e.g. violations of agreed response time or mean time between failures [MTBF]
    • H04L41/5012Determining service level performance parameters or violations of service level contracts, e.g. violations of agreed response time or mean time between failures [MTBF] determining service availability, e.g. which services are available at a certain point in time
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/50Network service management, e.g. ensuring proper service fulfilment according to agreements
    • H04L41/5003Managing SLA; Interaction between SLA and QoS
    • H04L41/5019Ensuring fulfilment of SLA
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/16Threshold monitoring
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/2866Architectures; Arrangements
    • H04L67/30Profiles
    • H04L67/306User profiles
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/34Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters 

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Environmental & Geological Engineering (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Debugging And Monitoring (AREA)
  • Stored Programmes (AREA)
  • Hardware Redundancy (AREA)

Abstract

提供了一种用于跨具有多个资源的服务基础设施部署多个微服务的方法、计算机系统和计算机程序产品。本发明可以包括确定多个微服务的至少一个依赖性。本发明可包括对于多个资源中的每个资源确定描述该资源相对于时间的可用性的中断分布。本发明可包括基于与每个资源相关联的中断分布和多个微服务的至少一个依赖性,确定跨服务基础设施的资源的多个微服务的部署配置。

Description

跨服务基础设施部署微服务
技术领域
本发明一般涉及服务基础设施中的微服务,并且更具体地涉及用于跨具有多个资源的服务基础设施部署多个微服务的方法。
本发明还涉及一种计算机程序产品,其包括使得系统的处理器或网络的多个处理器能够实现这种方法的计算机可读程序代码。
本发明还涉及一种计算机系统,其包括至少一个处理器和这种计算机程序产品,其中该至少一个处理器适于执行所述计算机程序产品的计算机可读程序代码。
本发明还涉及一种用于跨具有多个资源的服务基础设施部署多个微服务的系统。
背景技术
传统软件服务可以通过传统现场部署而被托管在云服务中。实现云服务基础设施可以提高使用的便利性、设置的简易性,并且可以优化基础设施的灵活性和可扩展性。确保云服务以最优可靠性运行以便最小化服务基础设施的停机时间(downtime)可能是有益的。这可以确保满足服务级别协议,即在服务提供商和服务客户端之间达成一致的承诺。
云服务中托管的微服务可能偶尔发生故障,导致故障的微服务的重新部署。在重新部署所需的时间期间,故障的微服务可能经历停机时间,其中微服务不起作用并且不可使用。停机时间可以取决于云服务的系统体系结构。云服务中托管的其他微服务可能不知道故障的微服务的停机时间,并且可能尝试继续与故障的微服务交互。这可能导致超出仅故障的微服务的问题,例如丢失事务。因此,当将微服务连接到相同有界(内部)基础设施内或远程(外部)基础设施内的其他故障的微服务时,可能出现问题。内部和外部的微服务和服务基础设施都可能变慢或停机。如果连接的微服务没有被设计为最优地处理这种情况,则这可能对总体服务基础设施(在该示例中,云服务)的性能和稳定性产生不利影响。
可以监视系统基础设施中的微服务相对于预定性能阈值的性能。如果微服务在预期之下执行,即微服务性能在阈值之下,则可以调查微服务的位置以确定低性能的原因。如果发现原始位置是低性能的原因,则可以将微服务迁移到系统基础设施内的另一位置。这可以实现系统基础设施中微服务性能的优化;然而,这种方法可能不能优化微服务的可靠性和可用性。
发明内容
本发明寻求提供一种用于跨具有多个资源的服务基础设施部署多个微服务的计算机实现的方法。
本发明还寻求提供一种计算机程序产品,其包括用于在由控制器单元执行时实现所提出的方法的计算机程序代码。
本发明还寻求提供一种适于执行该计算机程序代码的处理系统。
本发明还寻求提供一种用于跨具有多个资源的服务基础设施部署多个微服务的系统。
根据本发明的一方面,提供了一种计算机实现的方法。该方法包括确定多个微服务的依赖性。对于服务基础设施的每个资源,该方法还包括确定描述资源相对于时间的可用性的中断分布(outage distribution)。基于与每个资源相关联的中断分布和多个微服务的依赖性,该方法然后包括确定跨服务基础设施的资源的多个微服务的部署配置。
根据本发明的又一方面,提供了一种数据处理系统。该系统包括分析组件,分析组件被配置为确定多个微服务的依赖性的。该系统还包括处理组件,处理组件被配置为对于服务基础设施的每个资源,确定描述资源相对于时间的可用性的中断分布。该系统还包括配置组件,配置组件被配置为基于与每个资源相关联的中断分布和多个微服务的依赖性,确定跨服务基础设施的资源的多个微服务的部署配置。
根据本发明的另一方面,提供了一种用于跨具有多个资源的服务基础设施部署多个微服务的计算机程序产品。该计算机程序产品包括计算机可读存储介质,该计算机可读存储介质具有随其体现的程序指令,该程序指令可由处理单元执行以使处理单元执行根据所提出的实施例的方法。
根据本发明的另一方面,提供了一种处理系统,包括至少一个处理器和根据实施例的计算机程序产品。该至少一个处理器适于执行所述计算机程序产品的计算机程序代码。
附图说明
本发明的这些和其它目的、特征和优点将从以下结合附图阅读的对其说明性实施例的详细描述中变得显而易见。附图的各种特征不是按比例的,因为为了清楚起见,图示是为了帮助本领域技术人员结合详细描述理解本发明。在附图中:
图1描绘了其中可以实现说明性实施例的各方面的示例分布式系统的图形表示;
图2是其中可以实现说明性实施例的各方面的示例系统的框图;
图3是用于跨具有多个资源的服务基础设施部署多个微服务的计算机实现的方法的流程图;
图4是用于跨具有多个资源的服务基础设施部署多个微服务的系统的示例性实施例的简化框图;以及
图5是用于跨具有多个资源的服务基础设施部署多个微服务的系统的示例性实施例的简化框图。
图6是根据本公开的实施例的包括图1中描绘的计算机系统的说明性云计算环境的框图;以及
图7是根据本公开的实施例的图6的说明性云计算环境的功能层的框图。
具体实施方式
应当理解,附图仅仅是示意性的,并且不是按比例绘制的。还应当理解,在所有附图中使用相同的附图标记来表示相同或相似的部件。
在本申请的上下文中,其中本发明的实施例构成方法,应当理解,这种方法可以是用于由计算机执行的过程,即,可以是计算机可实现的方法。因此,该方法的各个步骤可以反映计算机程序的各个部分,例如一个或多个算法的各个部分。
此外,在本申请的上下文中,系统可以是适于执行本发明的方法的一个或多个实施例的单个设备或分布式设备的集合。例如,系统可以是个人计算机(PC)、服务器或经由诸如局域网、因特网等网络连接的PC和/或服务器的集合,以便协作地执行本发明的方法的至少一个实施例。系统还可以包括瘦客户端、胖客户端、手持式或膝上型设备、多处理器系统、基于微处理器的系统、网络PC、小型计算机系统以及包括任何上述系统或设备的分布式云计算环境。
提出了用于跨具有多个资源的服务基础设施部署多个微服务的概念。这种概念可以使得能够确定最优部署拓扑,该最优部署拓扑适于最小化基于微服务的服务基础设施招致停机时间的概率。因此,实施例可以促进跨服务基础设施部署微服务。
实施例可结合用于确定多个微服务的最优部署配置的统计方法、连续监视和/或采样以及优化算法来实现。
所提出的实施例可以采用考虑可能影响服务基础设施的不同的可能中断,并且确保对所有这种中断的最大容限,通过中断的统计分布的估计进行加权的概念。
发明人提出提供配置组件。这种配置组件可以被配置为基于与每个资源相关联的中断分布和多个微服务的依赖性来确定跨服务基础设施的资源的多个微服务的部署配置。例如,配置组件可进一步被配置为,对于服务基础设施的每个资源,基于与该资源相关联的中断分布来确定在预定时间段内的该资源的不可用性的概率。基于每个资源的不可用性得到概率和多个微服务的依赖性,配置组件可以被配置为确定跨服务基础设施的资源的多个微服务的部署配置。部署配置最小化多个微服务的不可用性的概率。
实施例因此可以促进识别多个微服务的优选部署配置,其降低了多个微服务的不可用性的概率。这可以增加服务基础设施的总体可用性而不增加成本,例如通过确定部署一个或多个微服务的(一个或多个)最优位置,使得关键微服务“停机(down)”的概率最小。
在所提出的实施例中,确定多个微服务之间的依赖性可以包括识别多个微服务的多个不同配置。每个配置可以包括相应的微服务实例集合。对于多个微服务的每个配置,步骤还可以包括确定相应的微服务实例集合的功能性(functionality),并且基于对于每个配置的确定的功能性,确定多个微服务中的至少一个微服务的依赖性。以这种方式,可以确定多个微服务的最优或优选配置。基于这种配置,可以确定多个微服务的依赖性。因此,可以优化确定的依赖性,这可以提高服务基础设施的效率。
在一些实施例中,识别多个微服务的多个不同配置可以包括接收用于识别多个微服务的配置的用户输入,然后基于用户输入识别多个微服务的配置。因此,可以基于用户偏好来调整多个微服务的配置。这可以改进识别配置的控制简易性和适应性,这因此可以改进跨服务基础设施的资源的多个微服务的确定的部署配置的控制简易性和适应性。
在一些实施例中,确定相应的微服务实例集合的功能性可以包括模拟或测试微服务实例集合的执行,并且基于模拟或测试的结果来确定微服务集合的功能性。以这种方式,可以确定导致被认为是“运行(UP)”的服务基础设施的相应的微服务实例集合。这可以使得能够确定多个微服务中的至少一个微服务的依赖性,这可以优化确定跨服务基础设施的资源的多个微服务的部署配置的过程。
在所提出的实施例中,确定资源的中断分布可以包括分析与资源相关联的服务等级协议和/或处理与资源的先前可用性相关的历史中断信息。这样,中断分布可以直接从服务基础设施的提供商的服务等级协议(SLA)中获得。提供商例如可以是基础设施的维护者和/或由基础设施实现的硬件的制造商。因此,可以基于在服务基础设施的提供者和客户之间保持的承诺,包括诸如服务基础设施的质量、可用性和责任的方面,来识别分发。此外,分布可由长期正常运行时间(uptime)度量来推断。这可以改进用于确定中断分布的过程的控制的简易型和适应性,以及增加确定的分布的可靠性。
在所提出的实施例中,确定跨服务基础设施的资源的多个微服务的部署配置可以包括,对于每个资源,基于与资源相关联的中断分布来确定在预定时间段内资源的不可用性的概率。基于每个资源的不可用性的概率和多个微服务的依赖性,该步骤还可以包括确定跨服务基础设施的资源的多个微服务的部署配置。部署配置可以最小化多个微服务的不可用性的概率。这样,可以确定每个资源的不可用性的概率。这可以使得能够基于每个资源的不可用性的概率来确定部署配置,这因此可以优化确定部署配置的过程并且可以提高该方法的效率。
在一些实施例中,确定跨服务基础设施的资源的多个微服务的部署配置可以包括采用蒙特卡罗(Monte-Carlo)方法来评估对于多个不同部署配置的多个微服务的不可用性。以这种方式,可以将对于多个不同配置的多个微服务的不可用性的概率评估为成本函数。成本函数可以使得能够采用传统的优化试探,例如模拟退火。优化试探的结果可以用于以使得可以最小化发生任何停机时间的概率的方式部署服务基础设施。然而,将理解,可以采用评估对于不同部署配置的不可用性的其他方法。例如,对于简单可用性区域的正常运行时间分布,可以使用统计分析来计算总体分布的封闭形式。
在所提出的实施例中,该方法还可以包括监视服务基础设施的多个资源的可用性。该步骤还可以包括检测服务基础设施的资源的可用性的改变。响应于检测到服务基础设施的资源的可用性的改变,该方法还可以包括确定跨服务基础设施的资源的多个微服务的修改的部署。以这种方式,服务基础设施可以迭代地检查最优部署配置,使得确定的部署配置能够被定期更新。这可以优化该方法的效率,并且可以确保部署配置在当前时间点被优化。
在示例中,系统可以包括具有相同资源要求的两个微服务。两个微服务可以具有用于高可用性的许多实例。该系统还可以包括三个资源,例如可以被称为”可用性区域“的数据中心。传统上,用于改进系统的可用性的方法是在每个数据中心中具有两个微服务中的每一个的一个实例。因此,在该传统方法中,需要微服务的六个实例。
进一步考虑该示例,三个数据中心可以被标记为数据中心1、数据中心2和数据中心3,数据中心2和数据中心3可以具有大致相等的可靠性,并且数据中心1可以比数据中心2和数据中心3中的每一个更可靠,时间可以被离散化,并且在每个时间段中,数据中心n(其中n=1、2或3)中的任何服务基础设施可以具有“停机”的概率sn。如果服务基础设施停机,则部署到该停机服务基础设施的任何微服务也可能停机。此外,数据中心n可以具有在每个数据点停机的概率dn,其中,对于每个n:
dn<<sn
可以进行简化假设,对于所有n:
Figure BDA0003527710510000061
其中a可以是预定正常数。
可以进行进一步简化的假设,其中:
Figure BDA0003527710510000071
其中b可以是0和1之间的预定正常数。
在该示例中,一个微服务可以被确定为关键的,而其他微服务可以被确定为非关键的。因此,关键微服务的两个实例可以被分配给数据中心1中的不同服务基础设施,一个实例可以被分配给数据中心2中的服务基础设施,并且没有实例可以被分配给数据中心3。以这种方式,系统可以比上述需要部署微服务的六个实例的传统方法需要更少的资源。
在该示例中,s1=0.0001,即数据中心1中的每个服务基础设施具有99.99%的运行的机会。此外,a=0.001,因此数据中心1具有99.99999%的运行的机会。此外,b=0.01,因此数据中心2和数据中心3分别具有99.999%的运行的机会,并且数据中心2和数据中心3中的每个服务基础设施具有99%的运行的机会。在该示例中,与传统方法的系统的99.99999896990403%的概率相比,本发明的方法导致99.99999898000101%的系统的可用性概率。因此,可用性的概率增加了9.11倍,其中仅实现了三个资源中的两个。
图1描绘了其中可以实现示例性实施例的各方面的示例性分布式系统的图形表示。分布式系统100可以包括其中可以实现说明性实施例的各方面的计算机网络。分布式系统100包含至少一个网络102,其是用于在分布式数据处理系统100内连接在一起的各种设备和计算机之间提供通信链路的介质。网络102可以包括诸如有线、无线通信链路或光纤电缆的连接。
在所描绘的示例中,第一服务器104和第二服务器106与存储单元108一起连接到网络102。另外,客户端110、112和114也连接到网络102。客户端110、112和114可以是例如个人计算机、网络计算机等。在所描绘的示例中,第一服务器104向客户端110、112和114提供数据,诸如引导文件、操作系统映像和应用。在所描绘的示例中,客户端110、112和114是第一服务器104的客户端。分布式处理系统100可以包括未示出的附加服务器、客户端和其他设备。
在所描绘的示例中,分布式系统100是因特网,其中网络102表示使用传输控制协议/因特网协议(TCP/IP)协议套件来彼此通信的网络和网关的世界范围的集合。因特网的核心是主节点或主机之间的高速数据通信线路的主干,其由路由数据和消息的数千个商业、政府、教育和其它计算机系统组成。当然,分布式系统100也可以被实现为包括多个不同类型的网络,诸如内联网、局域网(LAN)、广域网(WAN)等。如上所述,图1旨在作为示例,而不是作为对本发明的不同实施例的体系结构限制,因此,图1中所示的特定元素不应被认为是对其中可实现本发明的说明性实施例的环境的限制。
图2是其中可以实现说明性实施例的各方面的示例系统200的框图。系统200是诸如图1中的客户端110的计算机的示例,实现本发明的说明性实施例的过程的计算机可用代码或指令可以位于其中。
在所描绘的示例中,系统200采用集线器体系结构,其包括北桥和存储器控制器集线器(NB/MCH)202以及南桥和输入/输出(I/O)控制器集线器(SB/ICH)204。处理单元206、主存储器208和图形处理器210连接到NB/MCH202。图形处理器210可以通过加速图形端口(AGP)连接到NB/MCH 202。
在所描绘的示例中,局域网(LAN)适配器212连接到SB/ICH 204。音频适配器216、键盘和鼠标适配器220、调制解调器222、只读存储器(ROM)224、硬盘驱动器(HDD)226、CD-ROM驱动器230、通用串行总线(USB)端口和其它通信端口232,以及PCI/PCIe设备234通过第一总线238和第二总线240连接到SB/ICH 204。PCI/PCIe设备可以包括例如以太网适配器、附加卡和用于笔记本计算机的PC卡。PCI使用卡总线控制器,而PCIe不使用。ROM 224可以是例如闪速基本输入/输出系统(BIOS)。
HDD 226和CD-ROM驱动器230通过第二总线240连接到SB/ICH 204。HDD 226和CD-ROM驱动器230可以使用例如集成驱动电子设备(IDE)或串行高级技术附件(SATA)接口。超级I/O(SIO)设备236可以连接到SB/ICH 204。
操作系统在处理单元206上运行。操作系统协调并提供对图2中的系统200内的各种组件的控制。作为客户机,操作系统可以是市场上可用的操作系统。面向对象的编程系统,例如JavaTM编程系统,可以与操作系统一起运行,并提供从在系统200上执行的JavaTM程序或应用到操作系统的调用。
作为服务器,系统200可以是例如运行高级交互执行
Figure BDA0003527710510000081
操作系统或
Figure BDA0003527710510000082
操作系统的
Figure BDA0003527710510000083
eServerTM System
Figure BDA0003527710510000084
计算机系统。系统200可以是在处理单元206中包括多个处理器的对称多处理器(SMP)系统。或者,可以采用单处理器系统。
用于操作系统、编程系统以及应用或程序的指令位于诸如HDD 226的存储设备上,并且可以被加载到主存储器208中以便由处理单元206执行。类似地,根据实施例的一个或多个消息处理程序可以适于由存储设备和/或主存储器208存储。
本发明的说明性实施例的过程可以由处理单元206使用计算机可用程序代码来执行,该计算机可用程序代码可以位于诸如例如主存储器208、ROM 224的存储器中,或者位于一个或多个外围设备226和230中。
诸如图2所示的第一总线238或第二总线240的总线系统可以包括一个或多个总线。当然,总线系统可以使用任何类型的通信结构或体系结构来实现,通信结构或体系结构提供在附接到该结构或体系结构的不同组件或设备之间的数据传输。诸如图2的调制解调器222或网络适配器212的通信单元可以包括用于发送和接收数据的一个或多个设备。存储器可以是例如主存储器208、ROM 224或诸如在图2中的NB/MCH 202中找到的高速缓存。
本领域的普通技术人员将理解,图1和图2中的硬件可以根据实现而变化。除了图1和图2中描述的硬件之外,或者作为其替代,可以使用诸如闪存、等效的非易失性存储器或光盘驱动器等的其它内部硬件或外围设备,此外,在不脱离本发明的精神和范围的情况下,除了先前提到的系统之外,可以将示例性实施例的处理应用于多处理器数据处理系统。
此外,系统200可以采取多种不同数据处理系统中的任何一种的形式,包括客户端计算设备、服务器计算设备、平板计算机、膝上型计算机、电话或其他通信设备、个人数字助理(PDA)等。在一些说明性示例中,系统200可以是便携式计算设备,其配置有闪存以提供用于存储例如操作系统文件和/或用户生成的数据的非易失性存储器。因此,系统200本质上可以是任何已知的或以后开发的数据处理系统,而没有体系结构限制。
现在参考图3,描绘了用于跨具有多个资源的服务基础设施部署多个微服务的计算机实现的方法的流程图。
步骤310包括确定多个微服务的依赖性。在实施例中,确定多个微服务的依赖性包括识别多个微服务的多个不同配置。每个配置包括相应的微服务实例集合。对于多个微服务的每个配置,该步骤还包括确定相应的微服务实例集合的功能性,并且基于对于每个配置的确定的功能性,确定多个微服务中的至少一个微服务的依赖性。
例如,M是包括服务基础设施的多个微服务。微服务的示例包括容器、虚拟机或任何其他虚拟化环境。需要确定M的子集,即多个微服务的配置,其导致服务基础设施按要求起作用,即被认为是“运行”的。M的若干不同元素,即微服务,可以是具有多个实例的相同组件。导致服务基础设施按需执行的M的子集可以被公式化为需要确定函数:
Figure BDA0003527710510000101
其中:
Figure BDA0003527710510000102
当且仅当其中仅S的微服务“运行”的服务基础设施将被认为起作用时。
在实施例中,识别多个微服务的多个不同配置包括接收用于识别多个微服务的配置的用户输入,然后基于用户输入识别多个微服务的配置。
在该示例中,确定f的方法可以包括允许用户,例如产品设计师,来手动输入可能的可接受集合。并非
Figure BDA0003527710510000103
的所有元素,即M的子集,需要被枚举,因为:
Figure BDA0003527710510000104
使得y是x的超集,以及:
Figure BDA0003527710510000105
使得y是x的子集。
在实施例中,确定相应的微服务实例集合的功能性包括模拟或测试微服务实例集合的执行,以及基于模拟或测试的结果来确定微服务集合的功能性。
在该示例中,确定f的方法可以包括确保存在相对全面的系统测试套件,然后使用该套件来经验地确定哪些微服务被认为对于服务基础设施的性能是关键的而哪些不是。这可以通过迭代通过每个容器、关闭每个容器并重新运行测试套件、以及使用结果来确定是否将微服务保持在关键集合内来实现,关键集合即被认为对于服务基础设施的性能是关键的微服务集合。该方法隐含地假定偏序集:
Figure BDA0003527710510000111
具有最小元素,即微服务。当该假设不正确时,可以替代地采样随机方法来确定最小元素中的每一个的位置。
步骤320包括,对于服务基础设施的每个资源,确定描述资源相对于时间的可用性的中断分布。在一个实施例中,确定资源的中断分布包括分析与资源相关联的服务等级协议和/或处理与资源的先前可用性相关的历史中断信息。
在该示例中,生成多个资源的层级。该层级表示各种不同级别的“可用性区域”。中断分布,即停机时间分布,与每个可用性区域相关联。多个资源的层级可以包括每个物理服务器,其中每个物理服务器具有包括1%的机会“停机”3小时(直到物理替换)和0%的机会任何其他事情的中断分布。该层级结构还可以包括包含许多服务器的数据中心,其中每个服务器具有中断分布,该中断分布包括0.001%的“停机”5小时的机会、0.01%的“停机”10分钟的机会,在两个数据点之间具有线性分布。该层级还可以包括覆盖许多数据中心的电网和/或跨越多个数据中心但不一定与电网边界一致的网络。
在该示例中,中断分布可以直接从与资源相关联的服务级别协议中取得,例如服务基础设施的维护者和/或所使用的硬件的制造商。中断分布也可以由长期正常运行时间度量来推断。
步骤330包括基于与每个资源相关联的中断分布和多个微服务的依赖性,确定跨服务基础设施的资源的多个微服务的部署配置。
在实施例中,确定跨服务基础设施的资源的多个微服务的部署配置包括,对于每个资源,基于与资源相关联的中断分布来确定在预定时间段内的资源不可用性的概率。基于每个资源的不可用性的概率和多个微服务的依赖性,该步骤还包括确定跨服务基础设施的资源的多个微服务的部署配置。部署配置使最小化多个微服务的不可用性的概率。
在实施例中,确定跨服务基础设施的资源的多个微服务的部署配置包括采用蒙特卡罗方法来评估对于多个不同部署配置的多个微服务的不可用性。
在该示例中,基于确定的跨服务基础设施的资源的多个微服务的部署配置,计算引起停机时间的概率,即,在预定时间段内的多个微服务不可用性。不可用性是使用蒙特卡罗方法来计算的,使得能够确定概率而不是分布。假设服务基础设施能够通过重新供应新实例来替换故障的、即崩溃的实例而恢复,但是如果来自微服务关键集合的任何内容丢失其所有实例,则相对小但有害的停机时间量发生。
仅作为示例,停机时间可以是三十秒(包括故障的检测和替换服务的启动)。然而,这可能显著地取决于所涉及的系统,并且因此在其他示例中,停机时间可能高得多或低得多。
在实施例中,步骤340包括监视服务基础设施的多个资源的可用性。步骤345包括检测服务基础设施的资源的可用性的改变。响应于检测到服务基础设施的资源的可用性的改变,步骤350包括确定跨服务基础设施的资源的多个微服务的修改的部署。
现在参考图4,描绘了用于跨具有多个资源的服务基础设施部署多个微服务的系统的示例性实施例的简化框图。
该系统包括分析组件410,其被配置为确定多个微服务的依赖性。该系统还包括处理组件420,其被配置为对于服务基础设施的每个资源确定描述资源相对于时间的可用性的中断分布。该系统还包括配置组件430,其被配置为基于与每个资源相关联的中断分布和多个微服务的依赖性来确定跨服务基础设施的资源的多个微服务的部署配置。
在实施例中,分析组件410包括识别组件412,其被配置为识别多个微服务的多个不同配置。每个配置包括相应的微服务实例集合。分析组件410还包括功能性评估组件414,其被配置为对于多个微服务的每个配置,确定相应的微服务实例集合的功能性。分析组件410还包括数据分析组件416,用于基于对于每个配置的确定的功能性来确定多个微服务中的至少一个微服务的依赖性。
在实施例中,识别组件412还被配置为接收用于识别多个微服务的配置的用户输入,并且基于用户输入来识别多个微服务的配置。
在实施例中,功能性评估组件414还被配置为模拟或测试微服务实例集的执行,并且基于模拟或测试的结果来确定微服务集的功能性。
在实施例中,处理组件420还被配置为分析与资源相关联的服务级别协议,并且处理与资源的先前可用性相关的历史中断信息。
在实施例中,配置组件430还被配置为,对于每个资源,基于与该资源相关联的中断分布来确定在预定时间段内该资源的不可用性的概率。基于每个资源的不可用性的概率和多个微服务的依赖性,配置组件430还被配置为确定跨服务基础设施的资源的多个微服务的部署配置。部署配置最小化多个微服务的不可用性的概率。配置组件430还被配置为采用蒙特卡罗方法来评估对于多个不同部署配置的多个微服务的不可用性。
在实施例中,该系统还可以包括监视器组件440,其被配置为监视服务基础设施的多个资源的可用性,以检测服务基础设施的资源的可用性的改变。配置组件430还被配置为响应于检测到的服务基础设施的资源的可用性的改变,确定跨服务基础设施的资源的多个微服务的修改的部署。
作为进一步的示例,如图5所示,实施例可以包括计算机系统70,其可以形成联网系统7的一部分,计算机系统/服务器70的组件可以包括但不限于一个或多个处理装置,例如包括处理器或处理单元71、系统存储器74和将包括系统存储器74的各种系统组件耦合到处理单元71的总线90。
处理单元71被配置为定义目标对象类型;目标对象类型适于保存中间件功能的结果。此外,处理单元71被配置为接收用于应用的第一对象,然后使用第一对象执行中间件功能的处理以生成处理结果。基于处理结果,处理单元71被配置为生成目标对象类型的第二对象,并且将第二对象提供给应用。
总线90表示若干类型的总线结构中的任何一种的一个或多个,包括存储器总线或存储器控制器、外围总线、加速图形端口、以及使用各种总线体系结构中的任何一种的处理器或局部总线。作为示例而非限制,这些体系结构包括工业标准体系结构(ISA)总线、微通道体系结构(MCA)总线、增强型ISA(EISA)总线、视频电子技术标准协会(VESA)局部总线和外围部件互连(PCI)总线。
计算机系统/服务器70通常包括各种计算机系统可读介质。这种介质可以是可由计算机系统/服务器70访问的任何可用介质,并且它包括易失性和非易失性介质、可移动和不可移动介质。
系统存储器74可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(RAM)75和/或高速缓冲存储器76。计算机系统/服务器70还可以包括其他可移动/不可移动、易失性/非易失性计算机系统存储介质。仅作为示例,存储系统74可被提供用于从不可移动、非易失性磁介质(未示出,并且通常被称为“硬盘驱动器”)读取和向其写入。尽管未示出,但是可以提供用于从可移动、非易失性磁盘(例如,“软盘”)读取和向其写入的磁盘驱动器,以及用于从诸如CD-ROM、DVD-ROM或其它光学介质等可移动、非易失性光盘读取或向其写入的光盘驱动器。在这种情况下,每个都可以通过一个或多个数据介质接口连接到总线90。如下面将进一步描绘和描述的,存储器74可以包括至少一个程序产品,该程序产品具有一组(例如,至少一个)程序模块,该程序模块被配置为执行本发明的实施例的功能。
具有一组(至少一个)程序模块79的程序/实用程序78,以及操作系统、一个或多个应用程序、其它程序模块和程序数据,可作为示例而非限制存储在存储器74中。操作系统、一个或多个应用程序、其它程序模块和程序数据或其某种组合中的每一个可包括联网环境的实现。程序模块79通常执行本文描述的本发明实施例的功能和/或方法。
计算机系统/服务器70还可以与一个或多个外部设备80通信,诸如键盘、指示设备、显示器85等;一个或多个设备,其使得用户能够与计算机系统/服务器70交互;和/或任何使计算机系统/服务器70能够与一个或多个其它计算设备通信的设备(例如网卡、调制解调器等)。这种通信可以经由输入/输出(I/O)接口72发生,然而,计算机系统/服务器70可以经由网络适配器73与一个或多个网络通信,该网络诸如局域网(LAN)、通用广域网(WAN)和/或公有网络(例如,因特网)。如图所示,网络适配器73通过总线90与计算机系统/服务器70的其它组件通信,应当理解,尽管未示出,其它硬件和/或软件组件可以与计算机系统/服务器70结合使用,示例包括但不限于:微码、设备驱动程序、冗余处理单元、外部磁盘驱动器阵列、RAID系统、磁带驱动器和数据档案存储系统等。
在本申请的上下文中,其中本发明的实施例构成方法,应当理解,这种方法是用于由计算机执行的过程,即,是计算机可实现的方法。因此,该方法的各个步骤反映了计算机程序的各个部分,例如一个或多个算法的各个部分。
本发明可以是系统、方法和/或计算机程序产品。计算机程序产品可以包括其上具有计算机可读程序指令的计算机可读存储介质(或多个介质),该计算机可读程序指令用于使处理器执行本发明的各方面。
计算机可读存储介质可以是能够保留和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质可以是例如但不限于电子存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或前述的任何合适的组合。计算机可读存储介质的更具体示例的非穷举列表包括以下:便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或闪存)、存储级存储器(SCM)、静态随机存取存储器(SRAM)、便携式光盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、诸如其上记录有指令的打孔卡或凹槽中的凸起结构之类的机械编码设备,以及上述的任何合适的组合。如本文所使用的计算机可读存储介质不应被解释为暂时性信号本身,诸如无线电波或其他自由传播的电磁波、通过波导或其他传输介质传播的电磁波(例如,通过光纤线缆的光脉冲)、或通过导线传输的电信号。
本文描述的计算机可读程序指令可以从计算机可读存储介质下载到相应的计算/处理设备,或者经由网络,例如因特网、局域网、广域网和/或无线网络,下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光传输光纤、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或网络接口从网络接收计算机可读程序指令,并转发计算机可读程序指令以存储在相应计算/处理设备内的计算机可读存储介质中。
用于执行本发明的操作的计算机可读程序指令可以是汇编指令、指令集体系结构(ISA)指令、机器相关指令、微代码、固件指令、状态设置数据,或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言(例如Smalltalk、C++等)以及常规的过程式编程语言(例如“C”编程语言或类似的编程语言)。计算机可读程序指令可以完全在用户的计算机上执行,部分在用户的计算机上执行,作为独立的软件包执行,部分在用户的计算机上并且部分在远程计算机上执行,或者完全在远程计算机或服务器上执行。在后一种情况下,远程计算机可以通过任何类型的网络连接到用户的计算机,包括局域网(LAN)或广域网(WAN),或者可以连接到外部计算机(例如,使用因特网服务提供商通过因特网)。在一些实施例中,为了执行本发明的各方面,包括例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA)的电子电路可以通过利用计算机可读程序指令的状态信息来执行计算机可读程序指令以使电子电路个性化。
本文参考根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述本发明的各方面。将理解,流程图和/或框图的每个框以及流程图和/或框图中的框的组合可以由计算机可读程序指令来实现。
这些计算机可读程序指令可以被提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器以产生机器,使得经由计算机或其他可编程数据处理装置的处理器执行的指令创建用于实现流程图和/或框图的一个或多个框中指定的功能/动作的装置。这些计算机可读程序指令还可以存储在计算机可读存储介质中,其可以引导计算机、可编程数据处理装置和/或其他设备以特定方式工作,使得其中存储有指令的计算机可读存储介质包括制品,该制品包括实现流程图和/或框图的一个或多个框中指定的功能/动作的各方面的指令。
计算机可读程序指令还可以被加载到计算机、其他可编程数据处理装置或其他设备上,以使得在计算机、其他可编程装置或其他设备上执行一系列操作步骤,以产生计算机实现的过程,使得在计算机、其他可编程装置或其他设备上执行的指令实现流程图和/或框图的一个或多个框中指定的功能/动作。
附图中的流程图和框图示出了根据本发明的各种实施例的系统、方法和计算机程序产品的可能实现的体系结构、功能性和操作。在这点上,流程图或框图中的每个框可以表示指令的模块、段或部分,其包括用于实现指定的逻辑功能的一个或多个可执行指令。在一些替代实施方案中,框中所提及的功能可不按图中所提及的次序发生。例如,连续示出的两个框实际上可以基本上同时执行,或者这些框有时可以以相反的顺序执行,这取决于所涉及的功能性。还将注意,框图和/或流程图图示的每个框以及框图和/或流程图图示中的框的组合可以由执行指定功能或动作或执行专用硬件和计算机指令的组合的专用的基于硬件的系统来实现。
预先理解,尽管本公开包括关于云计算的详细描述,但是本文中记载的教导的实现不限于云计算环境。相反,本发明的实施例能够结合现在已知或以后开发的任何其它类型的计算环境来实现。
云计算是一种服务递送模型,用于实现对可配置计算资源(例如,网络、网络带宽、服务器、处理、存储器、存储、应用、虚拟机和服务)的共享池的方便的按需网络访问,所述可配置计算资源可以以最小的管理努力或与服务的提供者的交互来快速供应和释放。该云模型可以包括至少五个特性、至少三个服务模型和至少四个部署模型。
特性如下:
按需自助:云消费者可以单方面地自动地根据需要提供计算能力,诸如服务器时间和网络存储,而不需要与服务的提供者进行人工交互。
广域网接入:能力在网络上可用,并且通过促进由异构的薄或厚客户端平台(例如,移动电话、膝上型计算机和PDA)使用的标准机制来访问。
资源池化:供应商的计算资源被集中以使用多租户模型来服务多个消费者,其中不同的物理和虚拟资源根据需求被动态地分配和重新分配。存在位置无关的意义,因为消费者通常不控制或不知道所提供的资源的确切位置,但是能够在较高抽象级别(例如国家、州或数据中心)指定位置。
快速弹性:在一些情况下,可以快速且弹性地提供快速向外扩展的能力和快速向内扩展的能力。对于消费者,可用于提供的能力通常看起来不受限制,并且可以在任何时间以任何数量购买。
测量服务:云系统通过利用在适合于服务类型(例如,存储、处理、带宽和活动用户账户)的某一抽象级别的计量能力来自动地控制和优化资源使用。可以监视、控制和报告资源使用,从而为所利用服务的提供者和消费者两者提供透明度。
服务模型如下:
软件即服务(SaaS):提供给消费者的能力是使用在云基础设施上运行的提供者的应用。应用可通过诸如web浏览器(例如,基于web的电子邮件)等瘦客户机界面从各种客户机设备访问。消费者不管理或控制包括网络、服务器、操作系统、存储、或甚至个别应用能力的底层云基础设施,可能的例外是有限的用户专用应用配置设置。
平台即服务(PaaS):提供给消费者的能力是将消费者创建或获取的应用部署到云基础设施上,该消费者创建或获取的应用是使用由提供商支持的编程语言和工具创建的。消费者不管理或控制包括网络、服务器、操作系统或存储的底层云基础设施,但具有对部署的应用和可能的应用托管环境配置的控制。
基础设施即服务(IaaS):提供给消费者的能力是提供处理、存储、网络和消费者能够部署和运行任意软件的其它基本计算资源,所述软件可以包括操作系统和应用。消费者不管理或控制底层云基础设施,但具有对操作系统、存储、部署的应用的控制,以及可能对选择的联网组件(例如,主机防火墙)的有限控制。
部署模型如下:
私有云:云基础设施仅为组织操作。它可以由组织或第三方管理,并且可以存在于建筑物内或建筑物外。
社区云:云基础设施由若干组织共享,并且支持具有共享关注(例如,任务、安全要求、策略和合规性考虑)的特定社区。它可以由组织或第三方管理,并且可以存在于场所内或场所外。
公有云:云基础设施可用于一般公众或大型工业群体,并且由销售云服务的组织拥有。
混合云:云基础设施是两个或更多云(私有、社区或公有)的组合,该云保持唯一实体,但是通过使数据和应用能够移植的标准化或私有技术(例如,用于云之间的负载平衡的云突发)绑定在一起。
云计算环境是面向服务的,其焦点在于无状态、低耦合、模块性和语义互操作性。在云计算的核心是包括互连节点的网络的基础设施。
现在参考图6,描绘了说明性云计算环境1000。如图所示,云计算环境1000包括云消费者使用的本地计算设备可以与其通信的一个或多个云计算节点101,所述本地计算设备例如个人数字助理(PDA)或蜂窝电话1000A、台式计算机1000B、膝上型计算机1000C和/或汽车计算机系统1000N。节点101可以彼此通信。它们可以被物理地或虚拟地分组(未示出)在一个或多个网络中,诸如如上文描述的私有云、社区云、公有云或混合云或其组合。这允许云计算环境1000提供基础设施、平台和/或软件作为服务,云消费者不需要为其维护本地计算设备上的资源。应当理解,图6中所示的计算设备1000A-N的类型仅旨在说明,并且计算节点101和云计算环境1000可以通过任何类型的网络和/或网络可寻址连接(例如,使用web浏览器)与任何类型的计算设备通信。
现在参考图7,示出了由云计算环境1000提供的一组功能抽象层1100。应当预先理解,图7中所示的组件、层和功能仅旨在说明,并且本发明的实施例不限于此。如所描绘的,提供了以下层和相应的功能:
硬件和软件层1102包括硬件和软件组件。硬件组件的示例包括:主机1104;基于RISC(精简指令集计算机)体系结构的服务器1106;服务器1108;刀片服务器1110;存储设备1112;以及网络和联网组件1114。在一些实施例中,软件组件包括网络应用服务器软件1116和数据库软件1118。
虚拟化层1120提供抽象层,从该抽象层可以提供虚拟实体的以下示例:虚拟服务器1122;虚拟存储1124;虚拟网络1126,包括虚拟专用网络;虚拟应用和操作系统1128;以及虚拟客户端1130。
在一个示例中,管理层1132可以提供下面描述的功能。资源供应1134提供用于在云计算环境内执行任务的计算资源和其他资源的动态采购。计量和定价1136提供了在云计算环境中利用资源时的成本跟踪,以及用于消耗这些资源的记帐或发票。在一个示例中,这些资源可以包括应用软件许可证。安全性为云消费者和任务提供身份验证,以及为数据和其他资源提供保护。用户门户1138为消费者和系统管理员提供对云计算环境的访问。服务级别管理1140提供云计算资源分配和管理,使得满足所需的服务级别。服务水平协议(SLA)规划和履行1142提供对云计算资源的预先安排和采购,其中根据SLA预期未来需求。
工作负载层1144提供了可以利用云计算环境的功能性的示例。可以从该层提供的工作负载和功能的示例包括:映射和导航1146;软件开发和生命周期管理1148;虚拟教室教育传送1150;数据分析处理1152;事务处理1154;以及跨具有多个资源的服务基础设施部署多个微服务1156。
已经出于说明的目的给出了本发明的各种实施例的描述,但是其不旨在是穷尽的或限于所公开的实施例。在不背离所描述的实施例的范围和精神的情况下,许多修改和变化对于本领域的普通技术人员将是显而易见的。选择本文所使用的术语以最好地解释实施例的原理、实际应用或对市场上存在的技术改进,或使本领域的其他普通技术人员能够理解本文所公开的实施例。

Claims (20)

1.一种用于跨具有多个资源的服务基础设施部署多个微服务的计算机实现的方法,所述方法包括:
确定所述多个微服务的至少一个依赖性;
对于所述多个资源中的每个资源,确定描述所述资源相对于时间的可用性的中断分布;以及
基于与每个资源相关联的所述中断分布和所述多个微服务的所述至少一个依赖性,确定跨所述服务基础设施的所述资源的所述多个微服务的部署配置。
2.根据权利要求1所述的计算机实现的方法,其中确定所述多个微服务的至少一个依赖性包括:
识别所述多个微服务的多个不同配置,其中所述多个不同配置中的每个配置包括相应的微服务实例集合;
对于所述多个微服务的所述多个不同配置中的每个配置,确定所述相应的微服务实例集合的功能性;以及
基于对于所述多个不同配置中的每个配置的确定的所述相应的微服务实例集合的功能性,确定所述多个微服务中的至少一个微服务的依赖性。
3.根据权利要求2所述的计算机实现的方法,其中确定所述相应的微服务实例集合的功能性包括:
模拟或测试所述相应的微服务实例集合的执行;以及
基于所述模拟或测试的结果来确定所述相应的微服务实例集合的功能性。
4.根据权利要求2所述的计算机实现的方法,其中识别所述多个微服务的所述多个不同配置包括:
接收与识别所述多个微服务中的每个微服务的配置相关的用户输入;以及
基于所述用户输入来识别所述多个微服务中的每个微服务的所述配置。
5.根据权利要求1所述的计算机实现的方法,其中确定跨所述服务基础设施的所述资源的所述多个微服务的所述部署配置包括:
对于所述服务基础设施的每个资源,基于与所述资源相关联的所述中断分布来确定在预定时间段内的所述资源的不可用性的概率;以及
基于所述服务基础设施的每个资源的不可用性的概率以及所述多个微服务的所述至少一个依赖性,确定跨所述服务基础设施的所述资源的所述多个微服务的所述部署配置,其中所述部署配置最小化所述多个微服务的所述不可用性的概率。
6.根据权利要求5所述的计算机实现的方法,其中确定跨所述服务基础设施的所述资源的所述多个微服务的所述部署配置包括采用蒙特卡罗方法来评估对于多个不同部署配置的所述多个微服务的不可用性。
7.根据权利要求1所述的计算机实现的方法,还包括:
监视所述服务基础设施的所述多个资源的可用性以检测所述服务基础设施的资源的可用性的改变;以及
响应于检测到所述服务基础设施的所述资源的可用性的改变,确定跨所述服务基础设施的所述多个资源的所述多个微服务的修改的部署。
8.根据权利要求1所述的计算机实现的方法,其中确定所述中断分布包括以下中的至少一个:
分析与所述多个资源中的每个资源相关联的服务级别协议;以及
处理与所述资源的先前可用性相关的多个历史中断信息。
9.一种用于跨具有多个资源的服务基础设施部署多个微服务的计算机系统,包括:
一个或多个处理器、一个或多个计算机可读存储器、一个或多个计算机可读有形存储介质、以及存储在所述一个或多个有形存储介质中的至少一个有形存储介质上的程序指令,所述程序指令用于由所述一个或多个处理器中的至少一个处理器经由所述一个或多个存储器中的至少一个存储器来执行,其中所述计算机系统能够执行方法,所述方法包括:
确定所述多个微服务的至少一个依赖性;
对于所述多个资源中的每个资源,确定描述所述资源相对于时间的可用性的中断分布;以及
基于与每个资源相关联的所述中断分布和所述多个微服务的所述至少一个依赖性,确定跨所述服务基础设施的所述资源的所述多个微服务的部署配置。
10.根据权利要求9所述的计算机系统,其中确定所述多个微服务的至少一个依赖性包括:
识别所述多个微服务的多个不同配置,其中所述多个不同配置中的每个配置包括相应的微服务实例集合;
对于所述多个微服务的所述多个不同配置中的每个配置,确定所述相应的微服务实例集合的功能性;以及
基于对于所述多个不同配置中的每个配置的确定的所述相应的微服务实例集合的功能性,确定所述多个微服务中的至少一个微服务的依赖性。
11.根据权利要求10所述的计算机系统,其中确定所述相应的微服务实例集合的功能性包括:
模拟或测试所述相应的微服务实例集合的执行;以及
基于所述模拟或测试的结果来确定所述相应的微服务实例集合的功能性。
12.根据权利要求10所述的计算机系统,其中识别所述多个微服务的所述多个不同配置包括:
接收与识别所述多个微服务中的每个微服务的配置相关的用户输入;以及
基于所述用户输入来识别所述多个微服务中的每个微服务的所述配置。
13.根据权利要求9所述的计算机系统,其中确定跨所述服务基础设施的所述资源的所述多个微服务的所述部署配置包括:
对于所述服务基础设施的每个资源,基于与所述资源相关联的所述中断分布来确定在预定时间段内的所述资源的不可用性的概率;以及
基于所述服务基础设施的每个资源的不可用性的概率以及所述多个微服务的所述至少一个依赖性,确定跨所述服务基础设施的所述资源的所述多个微服务的所述部署配置,其中所述部署配置最小化所述多个微服务的所述不可用性的概率。
14.根据权利要求13所述的计算机系统,其中确定跨所述服务基础设施的所述资源的所述多个微服务的所述部署配置包括采用蒙特卡罗方法来评估对于多个不同部署配置的所述多个微服务的不可用性。
15.根据权利要求9所述的计算机系统,还包括:
监视所述服务基础设施的所述多个资源的可用性以检测所述服务基础设施的资源的可用性的改变;以及
响应于检测到所述服务基础设施的所述资源的可用性的改变,确定跨所述服务基础设施的所述多个资源的所述多个微服务的修改的部署。
16.根据权利要求9所述的计算机系统,其中确定所述中断分布包括以下中的至少一个:
分析与所述多个资源中的每个资源相关联的服务级别协议;以及
处理与所述资源的先前可用性相关的多个历史中断信息。
17.一种用于跨具有多个资源的服务基础设施部署多个微服务的计算机程序产品,包括:
一个或多个非暂时性计算机可读存储介质和存储在所述一个或多个有形存储介质中的至少一个上的程序指令,所述程序指令可由处理器执行以使所述处理器执行方法,所述方法包括:
确定所述多个微服务的至少一个依赖性;
对于所述多个资源中的每个资源,确定描述所述资源相对于时间的可用性的中断分布;以及
基于与每个资源相关联的所述中断分布和所述多个微服务的所述至少一个依赖性,确定跨所述服务基础设施的所述资源的所述多个微服务的部署配置。
18.根据权利要求17所述的计算机程序产品,其中确定所述多个微服务的至少一个依赖性包括:
识别所述多个微服务的多个不同配置,其中所述多个不同配置中的每个配置包括相应的微服务实例集合;
对于所述多个微服务的所述多个不同配置中的每个配置,确定所述相应的微服务实例集合的功能性;以及
基于对于所述多个不同配置中的每个配置的确定的所述相应的微服务实例集合的功能性,确定所述多个微服务中的至少一个微服务的依赖性。
19.根据权利要求18所述的计算机程序产品,其中确定所述相应的微服务实例集合的功能性包括:
模拟或测试所述相应的微服务实例集合的执行;以及
基于所述模拟或测试的结果来确定所述相应的微服务实例集合的功能性。
20.根据权利要求18所述的计算机程序产品,其中识别所述多个微服务的所述多个不同配置包括:
接收与识别所述多个微服务中的每个微服务的配置相关的用户输入;以及
基于所述用户输入来识别所述多个微服务中的每个微服务的所述配置。
CN202080061597.4A 2019-09-06 2020-09-01 跨服务基础设施部署微服务 Pending CN114341810A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/562,827 2019-09-06
US16/562,827 US11556321B2 (en) 2019-09-06 2019-09-06 Deploying microservices across a service infrastructure
PCT/IB2020/058128 WO2021044296A1 (en) 2019-09-06 2020-09-01 Deploying microservices across a service infrastructure

Publications (1)

Publication Number Publication Date
CN114341810A true CN114341810A (zh) 2022-04-12

Family

ID=74849728

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202080061597.4A Pending CN114341810A (zh) 2019-09-06 2020-09-01 跨服务基础设施部署微服务

Country Status (6)

Country Link
US (1) US11556321B2 (zh)
JP (1) JP2022546994A (zh)
CN (1) CN114341810A (zh)
DE (1) DE112020002987T5 (zh)
GB (1) GB2603340B (zh)
WO (1) WO2021044296A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11556321B2 (en) 2019-09-06 2023-01-17 International Business Machines Corporation Deploying microservices across a service infrastructure

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20210075887A1 (en) * 2019-09-09 2021-03-11 Red Hat, Inc. Artificial intelligence-powered diagram-to-deployment converter
KR20210063025A (ko) * 2019-11-22 2021-06-01 삼성전자주식회사 통신 시스템에서 네트워크 엘리먼트를 제어하기 위한 서버 및 그의 동작 방법
US10992540B1 (en) * 2020-05-19 2021-04-27 Cisco Technology, Inc. Determining formal models using weighting factors for computing elements in multi-cloud environments
US11449407B2 (en) * 2020-05-28 2022-09-20 Bank Of America Corporation System and method for monitoring computing platform parameters and dynamically generating and deploying monitoring packages
US11789852B2 (en) 2020-10-26 2023-10-17 Capital One Services, Llc Generating test accounts in a code-testing environment
US11994976B2 (en) * 2020-10-26 2024-05-28 Capital One Services, Llc Methods, systems, and media for a microservices orchestration engine
CN114826866B (zh) * 2022-03-31 2022-11-15 北京翼辉信息技术有限公司 跨平台微服务体系结构、计算设备及存储介质

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7496893B2 (en) 2006-06-15 2009-02-24 International Business Machines Corporation Method for no-demand composition and teardown of service infrastructure
US20160364666A1 (en) * 2015-06-12 2016-12-15 General Electric Company Dynamically controlling industrial system outage assignments to achieve dose states
US10387181B2 (en) * 2016-01-12 2019-08-20 International Business Machines Corporation Pre-deployment of particular virtual machines based on performance and due to service popularity and resource cost scores in a cloud environment
US10255413B2 (en) 2016-02-04 2019-04-09 International Business Machines Corporation Microservices inter-operational trust management
US9716617B1 (en) 2016-06-14 2017-07-25 ShieldX Networks, Inc. Dynamic, load-based, auto-scaling network security microservices architecture
US20180026856A1 (en) 2016-07-21 2018-01-25 Cisco Technology, Inc. Orchestrating micro-service deployment based on network policy health
US10255061B2 (en) 2016-08-05 2019-04-09 Oracle International Corporation Zero down time upgrade for a multi-tenant identity and data security management cloud service
US10261891B2 (en) * 2016-08-05 2019-04-16 International Business Machines Corporation Automated test input generation for integration testing of microservice-based web applications
CN106506605B (zh) 2016-10-14 2020-09-22 华南理工大学 一种基于微服务架构的SaaS应用构建方法
US10579407B2 (en) 2016-10-28 2020-03-03 ShieldX Networks, Inc. Systems and methods for deploying microservices in a networked microservices system
US10659496B2 (en) 2017-03-28 2020-05-19 ShieldX Networks, Inc. Insertion and configuration of interface microservices based on security policy changes
US10523507B2 (en) 2017-05-11 2019-12-31 Nirmata, Inc. Method and system for tuning performance of microservices-based applications
US10528450B2 (en) * 2017-08-15 2020-01-07 Sap Se Predicting defects in software systems hosted in cloud infrastructures
US10805382B2 (en) 2018-01-29 2020-10-13 International Business Machines Corporation Resource position planning for distributed demand satisfaction
CN110069380B (zh) 2019-03-20 2024-01-16 陕西合友网络科技有限公司 一种基于微服务的Web分布式软件演化与监控方法
US11556321B2 (en) 2019-09-06 2023-01-17 International Business Machines Corporation Deploying microservices across a service infrastructure

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11556321B2 (en) 2019-09-06 2023-01-17 International Business Machines Corporation Deploying microservices across a service infrastructure

Also Published As

Publication number Publication date
DE112020002987T5 (de) 2022-04-07
WO2021044296A1 (en) 2021-03-11
JP2022546994A (ja) 2022-11-10
GB2603340B (en) 2023-04-26
US11556321B2 (en) 2023-01-17
GB2603340A (en) 2022-08-03
US20210072965A1 (en) 2021-03-11
GB202203977D0 (en) 2022-05-04

Similar Documents

Publication Publication Date Title
US11556321B2 (en) Deploying microservices across a service infrastructure
US9405661B1 (en) Resource-constrained test automation
US11093289B2 (en) Provisioning disaster recovery resources across multiple different environments based on class of service
US10540188B2 (en) Automated deployment and performance evaluation of a virtualized-computing environment
US10977167B2 (en) Application monitoring with a decoupled monitoring tool
US10545847B2 (en) Grouping and isolating software changes to increase build quality
US10585789B2 (en) Intelligent generation of log messages by a SaaS offering in a continuous pipeline
CN109901985B (zh) 分布式测试装置及方法、存储介质和电子设备
WO2022116814A1 (en) Migrating complex legacy applications
US10360129B2 (en) Setting software error severity ranking
CN114595055A (zh) 基于上下文场景的资源分配
US10552282B2 (en) On demand monitoring mechanism to identify root cause of operation problems
CN114341809A (zh) 分布式系统部署
US20150295794A1 (en) High-performance computing evaluation
CN117859309A (zh) 自动选择在其上执行任务的节点
US10680912B1 (en) Infrastructure resource provisioning using trace-based workload temporal analysis for high performance computing
US11188453B1 (en) Verification of software test quality using hidden variables
US11151121B2 (en) Selective diagnostics for computing systems
US11907099B2 (en) Performance evaluation method using simulated probe data mapping
US20230409419A1 (en) Techniques for controlling log rate using policy
US20220374220A1 (en) Autonomous management of temporal updates and rollbacks
US20220138614A1 (en) Explaining machine learning based time series models
US10291508B2 (en) Optimizing monitoring for software defined ecosystems
CN115758228A (zh) 基于不平衡数据集的分类
CN115249071A (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