[go: up one dir, main page]

CN104737133A - 使用服务组的分布式应用优化 - Google Patents

使用服务组的分布式应用优化 Download PDF

Info

Publication number
CN104737133A
CN104737133A CN201380054074.7A CN201380054074A CN104737133A CN 104737133 A CN104737133 A CN 104737133A CN 201380054074 A CN201380054074 A CN 201380054074A CN 104737133 A CN104737133 A CN 104737133A
Authority
CN
China
Prior art keywords
application
computer system
inventory
service group
feature
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.)
Granted
Application number
CN201380054074.7A
Other languages
English (en)
Other versions
CN104737133B (zh
Inventor
M·G·塔塔
G·K·R·卡基瓦亚
A·古普塔
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.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft 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 Microsoft Corp filed Critical Microsoft Corp
Publication of CN104737133A publication Critical patent/CN104737133A/zh
Application granted granted Critical
Publication of CN104737133B publication Critical patent/CN104737133B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5072Grid computing

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Physics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

实施例针对使用服务组来管理多个不同类型的应用。在一种场景下,计算机系统接收关于一个或多个应用依存关系和特征的指示,该应用依存关系和特征在要当在分布式主机计算机系统上提供应用时实现。计算机系统创建应用清单,该应用清单为各个不同的服务组声明性地定义了应用依存关系和特征。每个服务组包括与声明性地定义的应用依存关系和特征相匹配的应用。计算机系统还将该清单发送至分布式主机计算机系统,该分布式主机计算机系统根据该清单中所指定的服务组来将符合清单标准的那些应用加载到分布式主机计算机系统的可用节点上。

Description

使用服务组的分布式应用优化
背景
计算机已经高度集成于工作场所、家庭、移动设备以及许多其他地点。计算机可以快速且有效地处理大量信息。被设计成在计算机系统上运行的软件应用允许用户执行包括商业应用、学校作业、娱乐等在内的各种功能。软件应用通常被设计成执行特定任务,诸如用于撰写文档的字处理器应用、或者用于发送、接收和组织电子邮件的电子邮件程序。
在一些情况下,软件应用主存在诸如云计算系统这样的大型、分布式的计算系统上。这些应用被提供给遍布于广泛地理区域的大量用户。应用(或其实例)可以在位于地理上分散区域中的各种不同的物理和/或虚拟计算机系统上运行。管理这些分布式应用可能需要实质的工作。
简述
此处所述的实施例针对使用服务组来管理多个不同类型的应用。在一实施例中,计算机系统接收一个或多个应用依存关系和特征的指示,该应用依存关系和特征要在当在分布式主机计算机系统上提供应用时实现。计算机系统创建应用清单,该应用清单为各个不同的服务组声明性地定义了应用依存关系和特征。每个服务组包括与声明性地定义的应用依存关系和特征相匹配的应用。计算机系统还将该清单发送至分布式主机计算机系统,该分布式主机计算机系统根据该清单中所指定的服务组来将符合清单标准的那些应用加载到分布式主机计算机系统的可用节点上。
在另一实施例中,计算机系统接收为不同的服务组声明性地定义应用依存关系和特征的应用清单,使得每个服务组包括与声明性地定义的应用依存关系和特征相匹配的应用。计算机系统根据清单确定哪些应用要被加载到指定服务组中并且将符合该指定服务组的清单标准的那些应用加载到分布式计算机系统的单个节点上,使得符合该指定服务组的清单标准的那些应用被协同定位。协同定位允许应用一起进行故障备援和迁移。
提供该概述以便以简化形式介绍多个概念的选集,多个概念将在以下详细描述中进一步描述。该概述并非意图标识所要求保护的主题的关键特征或基本特征,也不意图被用来帮助确定所要求保护的主题的范围。
在以下描述中将提出附加的特征和优点,这些附加的特征和优点是本领域普通技术人员根据描述显而易见的,并且可通过实践此处原理而获悉。此处描述的实施例的特征和优点可以通过在所附权利要求书中特别指出的装置手段和组合来实现和获得。此处所述实施例的特征从以下描述和所附权利要求书中将变得更完全明显。
附图简述
为了进一步阐明此处所述的实施例的以上特征及其他特征,将参照附图呈现更具体的描述。可以理解,这些附图仅描述了此处所述实施例的示例,因此不应被视为限制实施例的范围。通过使用附图,将以附加的具体内容和细节来描述和说明这些实施例,附图中:
图1说明了此处所述的实施例可在其中操作的计算机体系结构,操作包括使用服务组来管理多个不同类型的应用。
图2说明了使用服务组来管理多个不同类型的应用的示例方法的流程图。
图3说明了使用服务组来管理多个不同类型的应用的替代示例方法的流程图。
图4说明了在其中分布式主机计算机系统在不同的计算节点上主存多个应用的实施例。
详细描述
此处描述的实施例针对使用服务组来管理多个不同类型的应用。在一实施例中,计算机系统接收一个或多个应用依存关系和特征的指示,该应用依存关系和特征要在当在分布式主机计算机系统上提供应用时实现。计算机系统创建应用清单,该应用清单为各个不同的服务组声明性地定义了应用依存关系和特征。每个服务组包括与声明性地定义的应用依存关系和特征相匹配的应用。计算机系统还将该清单发送至分布式主机计算机系统,该分布式主机计算机系统根据该清单中所指定的服务组来将符合清单标准的那些应用加载到分布式主机计算机系统的可用节点上。
在另一实施例中,计算机系统接收为不同的服务组声明性地定义应用依存关系和特征的应用清单,使得每个服务组包括与声明性地定义的应用依存关系和特征相匹配的应用。计算机系统根据清单确定哪些应用要被加载到指定服务组中并且将符合该指定服务组的清单标准的那些应用加载到分布式计算机系统的单个节点上,使得符合该指定服务组的清单标准的那些应用被协同定位。协同定位允许应用一起进行故障备援和迁移。
以下讨论现在是指可执行的多个方法和方法动作。应当注意,尽管方法动作可以以特定次序讨论或者在流程图中图示为以特定次序出现,但是除非特别声明或因为动作是取决于在正在执行的动作之前完成的另一动作所要求的,不是必须要求任何特定次序。
计算机存储介质包括RAM、ROM、EEPROM、CD-ROM、基于RAM的固态驱动器(SSD)、闪存、相变存储器(PCM)或其他类型的存储器、或其他光盘存储器、磁盘存储器或其他磁性存储设备、或者可用于以计算机可执行指令、数据或数据结构形式存储并且可由通用或专用计算机来存取的期望程序代码手段的任何其他介质。
“网络”被定义为允许在计算机系统和/或模块和/或其他电子设备之间传输电子数据的一个或多个数据链路和/或数据交换机。当信息通过网络(或者硬线、无线或硬线或无线的组合)被传输或提供给计算机时,计算机将该连接适当地视为传输介质。传输介质可以包括可用于以计算机可执行指令或数据结构形式来承载并且可由通用或专用计算机存取的数据或期望程序代码手段的网络。以上的组合也应包括在计算机可读介质的范围内。
而且,在到达各个计算机系统组件之际,形式为计算机可执行指令或数据结构的程序代码手段可以从传输介质被自动传输至计算机存储介质(或反之亦然)。例如,通过网络或数据链路被接收的计算机可执行指令或数据结构可以在网络接口模块(例如,网络接口卡或“NIC”)内的RAM中被缓冲,然后最终被传输至计算机系统RAM和/或被传输至计算机系统处的较不易失的计算机存储介质。因此,应当理解,计算机存储介质可以被包括在也(或甚至主要)利用传输介质的计算机系统组件中。
计算机可执行(或计算机可解译)指令包括例如,使通用计算机、专用计算机或专用处理设备执行特定功能或功能组的指令。计算机可执行指令可以是例如二进制代码、诸如汇编语言这样的中间格式指令、或甚至是源代码。尽管已经用对结构特征和/或方法动作专用的语言描述了本发明的主题,但是应当理解,所附权利要求书中定义的主题不必要限于所述的特征或者上述的动作。所述的特征和动作而是应当被公开作为实现权利要求的示例形式。
本领域的技术人员将理解,各个实施例可以在具有许多类型的计算机系统配置的网络计算环境中实现,包括个人计算机、台式计算机、膝上型计算机、消息处理器、手持设备、多处理器系统、基于微处理器的或可编程的消费者电子设备、网络PC、微型计算机、大型计算机、移动电话、PDA、平板电脑、寻呼机、路由器、交换机等等。此处所述的实施例也可以在分布式系统环境中实现,在该分布式系统环境中,通过网络(或通过硬线数据电路、无线数据电路、或者通过硬线数据链路和无线数据链路的组合)链接的本地和远程的计算机系统各自执行多个任务(例如,云计算、云服务等)。在分布式系统环境中,程序模块可以位于本地和远程存储器存储设备两者中。
在本说明书及权利要求书中,“云计算”被定义为允许对可配置计算资源(例如,网络、服务器、存储、应用和服务)的共享池进行按需网络存取的模型。“云计算”的定义不限于在适当部署时可从这一模型获得的其他许多优点中的任一个。
例如,云计算目前在市场中采用以便提供对可配置计算资源的共享池的普遍且方便的按需存取。而且,可配置计算资源的共享池可以经由虚拟化快速提供,并且以低管理工作或服务提供商交互被释放,然后相应地缩放。
云计算模型可由各种特征组成,诸如按需的自助服务、宽带网络接入、资源组池、快速弹性、计次制通话服务等等。云计算模型也可以是各种服务模型的形式,诸如例如软件即服务(“SaaS”)、平台即服务(“PaaS”)以及基础结构即服务(“IaaS”)。云计算模型也可以用不同部署模型来部署,诸如私有云、社区云、公有云、混合云等等。在本说明书和权利要求书中,“云计算环境”是其中采用云计算的环境。
另外或或者,此处所述的功能可以至少部分由一个或多个硬件逻辑组件执行。例如且非限制,可使用的说明性类型的硬件逻辑组件包括:场可编程门阵列(FPGA)、程序专用集成电路(ASIC)、程序专用标准产品(ASSP)、片上系统(SOC)、复杂可编程逻辑器件(CPLD)以及其他类型的可编程硬件。
更进一步,此处所述的系统体系结构可以包括多个独立组件,多个独立组件各自对系统总体功能作出贡献。这种模块化允许在处理平台可缩放性问题时的增加的灵活性,并且为此提供了各种优点。系统复杂度和增长可以通过使用具有有限功能范围的较小规模的部分更容易地管理。平台容错性通过使用这些松散耦合的模块而增强。个别组件可以随着商业需求的指示而递增。模块化开发也转变成新功能进入市场的减少的时间。新功能可以被增加或减少,而不影响核心系统。
图1说明了其中可采用至少一个实施例的计算机体系结构100。计算机体系结构100包括计算机系统101。计算机系统101可以是任何类型的本地或分布式计算机系统,包括云计算系统。计算机系统包括用于执行各种不同功能的各个模块。例如,应用清单生成模块110可用于从用户105提供的应用依存关系106和特征107生成应用清单。应用清单115可以包括要被包括在给定服务组中的应用的描述或声明性定义。例如,如果应用需要某种计算能力保证,那些需求可以表示在应用特征107中。如果应用依赖于另一应用或服务,那些依存关系可以表示在应用依存关系106中。许多其他依存关系和/或特征可由用户105指示。
此处所称的服务组是满足包括依存关系106和/或特征107在内的一个或多个标准的应用或服务的组。可以实现服务组以便向托管的应用或服务提供计算性能和缩放能力。服务组内的服务可能不知道它们(或其他服务)是一个服务组的一部分(或者不是服务组的一部分)。如此,无论服务是否是一个服务组的一部分,该服务的编程模型或服务模型都将会相同。这允许相关服务(例如,在应用逻辑中相关)以及不相关服务在同一个服务组内组成。服务组可以容纳以本机代码、托管代码编写的应用或服务、或者本机和托管代码服务两者的分组。服务组的服务主机(例如,分布式主机计算机系统130)可以是本机的以及托管的。
当服务组专用的特征和能力由服务组内的服务(例如,服务组116A内的应用120A)存取时,服务组是明确的。在这种情况下,功能通过明确的API和构件(constructs)仅对于该服务组中的服务(而非常规服务)可用。应用开发者(例如,用户105)可能知道服务分组。服务组中的服务可以是相同或不同的服务类型。应当注意,尽管术语“应用”和“服务”均指可执行软件代码的部分,但是应用可以包括一个或多个服务组以及一个或多个服务。服务模型可用于表达已分组服务的模型,并且还可用于管理服务组。
作为同一服务组的部分的服务可以一起被分组在分布式主机计算机系统130的同一物理硬件上(例如,在节点A(131A)上)。这种服务被称为是“协同定位”的。协同定位的服务在一起被负载平衡,还在存在硬件故障时一起进行故障备援。因此,例如,如果特定节点(例如,131B或131C)变得可用来处理节点131A的一些负载,则节点131A上运行的协同定位的服务会一起从131A被移至131B或131C。类似地,如果有两个协同定位的服务在节点131A上运行且它发生故障(无论出于什么原因),则这两个协同定位的服务可以一起被迁移至节点131B或131C。该故障备援或负载平衡可以自动发生,如由分布式主机计算机系统所管理。尽管以上示例描述了协同定位两个服务,但应当理解实质上任何数量的服务或应用可以被协同定位。负载平衡属性(放置约束条件、负载利用率报告等等)可以在服务组级别应用。服务组中的每个服务成员将报告其负载度量,服务组将执行适当的聚集。
服务组可以在分布式主机计算机系统130的任一节点中运行。具有不同实例的服务组可以在相同或不同的主机节点中被激活。不同的服务组可以在同一主机内被激活。服务组中的服务可以提供它们自身的二进制代码。服务组以及服务组中的服务两者都被称为实体。使用命名客户端API,客户端可以解析服务组名称、以及该服务组内的任何服务的名称。此外,服务组内的服务可以解析并获得对该同一服务组内的任何其他服务的存取(经由服务端点或接口指针),以进行有效的服务间通信。接口指针存取还可用于同一服务主机过程内的有效服务间通信。以下将分别关于图2和3的方法200和300进一步说明这些概念。
考虑到上述的系统和体系结构,参照图2和3的流程图将更好地理解可以按照所公开的主题实现的方法。为说明简洁起见,方法作为一系列框被示出和描述。然而应当理解和领会,所要求保护的主题不受框的次序所限制,因为一些框可以相对于此处图示和描述的其他框以不同的次序和/或并行地发生。此外,可以不需要所有图示的框来实现下文描述的方法。
图2说明了使用服务组来管理多个不同类型的应用的方法200的流程图。现在将频繁参照环境100的组件和数据来描述方法200。
方法200包括以下动作:接收要在当在分布式主机计算机系统上提供应用时实现的一个或多个应用依存关系和特征的指示(动作210)。例如,应用清单生成模块110可以接收要在当在分布式主机计算机系统130上提供应用(例如,应用120A之一)时实现的应用依存关系106和/或应用特征107。分布式主机计算机系统130可以是任何类型的分布式或云计算系统,并且可以包括实质上任何数量的计算节点,每个节点具有可变数量的处理器、线程、虚拟计算机系统或者其他硬件或逻辑组件。
方法200包括以下动作:创建应用清单,该应用清单为多个不同服务组的每一个服务组声明性地定义应用依存关系和特征,使得每个服务组包括与声明性定义的应用依存关系和特征相匹配的应用(动作220)。服务组的应用(例如,服务组116A的应用120A)包括满足该服务组的依存关系和特征的那些应用或服务。因此,对于服务组116B,应用120B会包括满足清单115中描述的依存关系106B和特征107B的那些应用。清单可以包括对于实质上任何数量的不同服务组的依存关系和特征。
应用特征的示例可以包括应用的计算能力规格。管理员或应用开发者可以基于应用对处理能力的需求(高或低)将多个应用一起分组到一个服务组。应用特征也可以包括访问该应用的客户的性质。例如,如果一个应用被非常多的人访问,则它可以被分组在服务组116A中,而具有相对低访问的应用可以被分组在服务组116B中。类似地,如果应用需要在特定时间缩放(例如,临近圣诞节假期的购物车应用),它可以与其他这样的应用分组在一起。因此,管理员、应用开发者、IP专家或其他用户可以用应用特征对应用进行分组。此外,如果一个应用或服务依赖于另一个应用或服务进行输入(或者出于任何其他原因),则用户105可以指示该应用依赖于该另一个应用,且要使一个应用运行,则两个应用都需要运行。以此方式,用户可以提供实质上任何类型的服务组所基于的应用特征或依存关系。特征和依存关系也可以是基于时间的,使得某些特征或依存关系仅应用于工作日或周末、或者在一天中的某个时间。
在一些实施例中,应用清单115中声明性定义的应用依存关系之一可以包括为该应用估计的工作负载(例如,所估计的该应用将消耗的计算资源量的指示)。应用清单中声明性定义的另一应用依存关系可以包括对于运行该(多个)应用的硬件的期望的(或所需的)硬件特征。服务组可以包括不同的应用类型,包括以托管代码(例如,C#)编写的应用、或以本机代码(例如,C++)编写的应用、或者托管和本机应用两者。清单115指示应用是托管的还是本机的。类似地,服务组可以包括相关的应用和不相关的应用两者。因此,如图4所示,单个节点(例如,431C)可以包括应用A(实例420A4)、应用B(实例420B1)和应用C(实例420C2),每个应用都可以彼此相关或不相关。应用开发者不需要表示甚至考虑它们是哪个服务组的部分,因为服务组可以容纳所有类型的应用。
服务组允许应用在分布式主机计算机系统中的多个不同节点上缩放。例如,如图4所示,分布式主机计算机系统430可以包括三个节点(更多或更少是可能的):节点431A、431B和431C。每个节点可以运行多个应用或应用实例。例如,节点431A被示出为运行两个应用(应用A的两个实例(420A1和420A2)以及应用B(实例420B1))。节点431B被示出为运行应用A的实例420A3以及应用C的实例420C1,而节点431C被示出为运行应用A的实例420A4、应用B的实例420B2以及应用C的实例420C2。相应的,群集430中的每个节点可以运行相关或不相关的、托管或本机的应用的不同实例。如下将进一步说明,特定服务组内的应用可以是协同定位的,如同应用实例420A1和420A2。这些应用实例将一起进行故障备援和负载平衡,并且将被保持在同一物理群集节点上。
应用清单115也可以为是为指定服务组的一部分的应用指定一个或多个运行时特征。运行时特征可以指示每个应用有多少实例要在应用被初始化时启动。此外,运行时特征可以指示要被启动的每个应用的名称。其他运行时特征也可以在应用清单中指定。
方法200接着包括以下动作:将清单发送至分布式主机计算机系统,该分布式主机计算机系统根据清单中指定的服务组将符合清单标准的那些应用加载到分布式主机计算机系统的一个或多个可用节点上(动作230)。例如,应用清单115可由计算机系统101发送至分布式主机计算机系统130。清单指示哪些应用要被加载到哪些服务组中,且对于要协同定位的那些应用实例,主机系统将这些实例加载到同一群集节点(例如,131C)上。一旦应用被最初加载,应用的生命周期就可由用户105管理。因此,应用可以被升级、移除、拆卸、修改或以其他方式在主机系统130上被管理。管理应用也可以包括确定哪些节点当前具有可用的计算资源。然后,一旦那些节点已被定位,则管理可以包括在被确定具有可用处理资源的那些节点上启动应用。管理员可以类似地基于其他因素来选择节点,其他因素诸如非常高的正常运行时间的历史、处理大量网络请求的能力、指示节点在物理上没有攻击者危险的安全状态、或者任何数量的其他因素。因此,以此方式,管理员可以既管理服务组,又管理服务组内的应用的生命周期。
图3说明了使用服务组来管理多个不同类型的应用的替代方法300的流程图。现在将频繁参照环境100的组件和数据来描述方法300。
方法300包括以下动作:接收应用清单,该应用清单为多个不同服务组的每一个声明性地定义应用依存关系和特征,使得每个服务组包括与声明性定义的应用依存关系和特征相匹配的应用(动作310)。例如,应用清单生成模块110可以从用户105接收应用依存关系106和应用特征107。计算机系统101可以基于清单来确定哪些应用要被加载到指定服务组中(动作320)。然后,符合指定服务组的清单标准的那些应用根据清单115被加载到分布式计算机系统的单个节点上,使得符合指定服务组的清单标准的那些应用被协同定位(动作330)。因而,在一示例中,服务组116A的应用120A是满足依存关系106A和特征107A的那些应用。
彼此依赖的应用可以被协同定位(例如,图4的协同定位的应用实例422(420A1和420A2))。这些协同定位的应用实例可以一起进行故障备援并且被负载平衡。例如,分布式主机计算机系统430可以确定指定服务组(例如,服务组116A)中的应用实例(例如,420A1)已在分布式主机计算机系统的节点431A上发生故障。在此确定之后,已发生故障的应用实例(420A1)以及在服务组中被协同定位的那些应用实例都被迁移至分布式主机计算机系统上的不同节点(例如,431B)。该迁移可以在确定已发生硬件或软件故障且一组协同定位的应用实例的至少一个已经停止之际自动发生。
如上所述,服务组可以既包括相关和不相关的应用,也包括托管的或本机的应用。服务组也可以包括无状态应用(不保持状态的应用)和/或有状态的应用(保持状态的应用)。当无状态应用被分组在一服务组中时,应用可以仅仅在新节点上被重新启动,而无须担忧应用最初停止时处于什么状态。当有状态的应用被分组在服务组中且一应用停止时,该状态连同该应用被存储并且被迁移至该新节点。当有状态的应用运行时,应用状态可以被复制在分布式主机计算机系统430节点的多个不同节点上。作为同一服务组的一部分的应用或服务可以经历原子的系统状态转换,该原子的系统状态转换在作为服务组的一部分的服务副本或实例之间实现全或无的语义。作为同一服务组的一部分的有状态的服务可以共享一个公共的复制符。这允许分摊复制符资源的成本。
在一些情况下,同一服务组中的应用可以使用本地名称解析彼此通信。例如,如果图4的应用A和B在同一服务组中,则应用A使用本地名称解析与B通信以确定应用B位于分布式主机计算机系统的哪个物理节点上。然后,应用A和B可一起工作例如以提交(commit)所作的任何应用变化。这些变化可以以提供传统ACID保证的方式作出。如此,原子组提供ACID所指定的原子性和可持续性保证。在其他实施例中,管理员或其他用户(例如,105)可以使用服务组来构建应用逻辑工作流。这些工作流可以指定哪些任务要由哪些服务组执行,以及以什么次序执行。如此,服务组可以彼此结合实现,以执行工作流中的指定任务或任务系列。相应地,提供了使用服务组来管理多个不同类型的应用的方法、系统和计算机程序产品。
此处所述的概念和特征可以体现于其他具体形式,而不背离其精神或描述性的特征。所述实施例要全面被考虑为仅仅是说明性的而非限制性的。因此,本公开的范围由所附权利要求书所指示,而不是由以上描述所指示。落入权利要求书的含义和等效性范围内的所有变化要被包含在其范围内。

Claims (10)

1.一种包括以下的计算机系统:
一个或多个处理器;
系统存储器;
其上存储有计算机可执行指令的一个或多个计算机可读存储介质,所述计算机可执行指令在由所述一个或多个处理器执行时,使所述计算系统执行一种使用服务组来管理多个不同类型的应用的方法,所述方法包括以下:
接收一个或多个应用依存关系和特征的指示的动作,所述一个或多个应用依存关系和特征在要当在分布式主机计算机系统上提供应用时实现;
创建为多个不同服务组的每一个声明性定义应用依存关系和特征的应用清单,使得每个服务组包括与声明性定义的应用依存关系和特征相匹配的应用的动作;以及
将所述清单发送至所述分布式主机计算机系统的动作,所述分布式主机计算机系统根据所述清单中指定的服务组将符合所述清单标准的那些应用加载到所述分布式主机计算机系统的一个或多个可用节点上。
2.如权利要求1所述的计算机系统,还包括:管理基于所述清单标准被加载到指定服务组中的那些应用的生命周期的动作。
3.如权利要求1所述的计算机系统,其特征在于,所述应用清单还为作为指定服务组的一部分的应用指定一个或多个运行时特征。
4.如权利要求3所述的计算机系统,其特征在于,所述一个或多个运行时特征的至少一个指定要启动每个应用的多少实例。
5.如权利要求3所述的计算机系统,其特征在于,所述一个或多个运行时特征的至少一个指定要启动的每个应用的名称。
6.如权利要求1所述的计算机系统,其特征在于,在所述应用清单中声明性定义的应用依存关系中的至少一个包括运行所述应用的硬件的一个或多个硬件特征。
7.如权利要求1所述的计算机系统,其特征在于,将所述应用加载到所述分布式计算机系统的一个或多个可用节点上包括:确定哪些节点当前具有可用的计算资源并且启动所确定的节点上的应用。
8.一种分布式计算机系统,包括以下:
一个或多个处理器;
系统存储器;
其上存储有计算机可执行指令的一个或多个计算机可读存储介质,所述计算机可执行指令在由所述一个或多个处理器执行时,使所述计算系统执行一种使用服务组来管理多个不同类型的应用的方法,所述方法包括以下:
接收为多个不同服务组的每一个声明性定义应用依存关系和特征的应用清单,使得每个服务组包括与声明性定义的应用依存关系和特征相匹配的应用的动作;
确定哪些应用要被加载到指定服务组中的动作;以及
根据所述清单将符合所指定的服务组的清单标准的那些应用加载到所述分布式计算机系统的单个节点上,使得符合所述所指定的服务组的清单标准的那些应用被协同定位的动作。
9.如权利要求8所述的计算机系统,还包括:
确定指定服务组中的应用实例已在所述分布式主机计算机系统的至少一个节点上发生故障;以及
将已发生故障的应用实例以及在所述服务组中被协同定位的那些应用都迁移至所述分布式主机计算机系统上的不同节点。
10.一种分布式计算机系统,包括以下:
一个或多个处理器;
系统存储器;
其上存储有计算机可执行指令的一个或多个计算机可读存储介质,所述计算机可执行指令在由所述一个或多个处理器执行时,使所述计算系统执行一种使用服务组来管理多个不同类型的应用的方法,所述方法包括以下:
接收为多个不同服务组的每一个声明性定义应用依存关系和特征的应用清单,使得每个服务组包括与声明性定义的应用依存关系和特征相匹配的应用的动作;
确定哪些应用要被加载到指定服务组中的动作;
根据所述清单将符合所述指定服务组的清单标准的那些应用加载到所述分布式计算机系统上的单个节点,使得符合所述指定服务组的清单标准的那些应用被协同定位的动作;
确定指定服务组中的应用实例已在所述分布式主机计算机系统的至少一个上发生故障;以及
将已发生故障的应用实例以及在所述服务组中被协同定位的那些应用都迁移至所述分布式主机计算机系统上的一个不同的节点。
CN201380054074.7A 2012-10-16 2013-10-16 使用服务组的分布式应用优化 Active CN104737133B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/653,255 2012-10-16
US13/653,255 US9569274B2 (en) 2012-10-16 2012-10-16 Distributed application optimization using service groups
PCT/US2013/065149 WO2014062743A1 (en) 2012-10-16 2013-10-16 Distributed application optimization using service groups

Publications (2)

Publication Number Publication Date
CN104737133A true CN104737133A (zh) 2015-06-24
CN104737133B CN104737133B (zh) 2019-06-18

Family

ID=49551740

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201380054074.7A Active CN104737133B (zh) 2012-10-16 2013-10-16 使用服务组的分布式应用优化

Country Status (4)

Country Link
US (1) US9569274B2 (zh)
EP (1) EP2909717A1 (zh)
CN (1) CN104737133B (zh)
WO (1) WO2014062743A1 (zh)

Families Citing this family (47)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9286037B2 (en) 2010-12-29 2016-03-15 Microsoft Technology Licensing, Llc Platform for distributed applications
US10462011B2 (en) 2015-08-27 2019-10-29 Nicira, Inc. Accessible application cluster topology
US10122626B2 (en) 2015-08-27 2018-11-06 Nicira, Inc. Self-managed overlay networks
US10153918B2 (en) * 2015-08-27 2018-12-11 Nicira, Inc. Joining an application cluster
US10193824B2 (en) 2015-09-06 2019-01-29 RISC Networks, LLC Systems and methods for intelligent application grouping
US20170070562A1 (en) * 2015-09-06 2017-03-09 Jeremy Lynn Littlejohn Method for denominating move groups of applications
CN105487946B (zh) * 2015-11-30 2019-03-12 北京四达时代软件技术股份有限公司 一种故障计算机自动切换方法及装置
US10785288B2 (en) 2017-02-22 2020-09-22 International Business Machines Corporation Deferential support of request driven cloud services
US11947489B2 (en) 2017-09-05 2024-04-02 Robin Systems, Inc. Creating snapshots of a storage volume in a distributed storage system
US10846001B2 (en) 2017-11-08 2020-11-24 Robin Systems, Inc. Allocating storage requirements in a distributed storage system
US10782887B2 (en) 2017-11-08 2020-09-22 Robin Systems, Inc. Window-based prority tagging of IOPs in a distributed storage system
US10896102B2 (en) 2018-01-11 2021-01-19 Robin Systems, Inc. Implementing secure communication in a distributed computing system
US10642697B2 (en) 2018-01-11 2020-05-05 Robin Systems, Inc. Implementing containers for a stateful application in a distributed computing system
US11582168B2 (en) 2018-01-11 2023-02-14 Robin Systems, Inc. Fenced clone applications
US11748203B2 (en) 2018-01-11 2023-09-05 Robin Systems, Inc. Multi-role application orchestration in a distributed storage system
US11392363B2 (en) 2018-01-11 2022-07-19 Robin Systems, Inc. Implementing application entrypoints with containers of a bundled application
US11099937B2 (en) 2018-01-11 2021-08-24 Robin Systems, Inc. Implementing clone snapshots in a distributed storage system
US10846137B2 (en) 2018-01-12 2020-11-24 Robin Systems, Inc. Dynamic adjustment of application resources in a distributed computing system
US10845997B2 (en) * 2018-01-12 2020-11-24 Robin Systems, Inc. Job manager for deploying a bundled application
US10642694B2 (en) 2018-01-12 2020-05-05 Robin Systems, Inc. Monitoring containers in a distributed computing system
US10733018B2 (en) * 2018-04-27 2020-08-04 Paypal, Inc. Systems and methods for providing services in a stateless application framework
US11023328B2 (en) 2018-07-30 2021-06-01 Robin Systems, Inc. Redo log for append only storage scheme
US10976938B2 (en) 2018-07-30 2021-04-13 Robin Systems, Inc. Block map cache
US10599622B2 (en) 2018-07-31 2020-03-24 Robin Systems, Inc. Implementing storage volumes over multiple tiers
US10817380B2 (en) 2018-07-31 2020-10-27 Robin Systems, Inc. Implementing affinity and anti-affinity constraints in a bundled application
US11036439B2 (en) 2018-10-22 2021-06-15 Robin Systems, Inc. Automated management of bundled applications
US10908848B2 (en) 2018-10-22 2021-02-02 Robin Systems, Inc. Automated management of bundled applications
US10620871B1 (en) 2018-11-15 2020-04-14 Robin Systems, Inc. Storage scheme for a distributed storage system
US11086725B2 (en) 2019-03-25 2021-08-10 Robin Systems, Inc. Orchestration of heterogeneous multi-role applications
US11256434B2 (en) 2019-04-17 2022-02-22 Robin Systems, Inc. Data de-duplication
US10831387B1 (en) 2019-05-02 2020-11-10 Robin Systems, Inc. Snapshot reservations in a distributed storage system
US10877684B2 (en) 2019-05-15 2020-12-29 Robin Systems, Inc. Changing a distributed storage volume from non-replicated to replicated
US11226847B2 (en) 2019-08-29 2022-01-18 Robin Systems, Inc. Implementing an application manifest in a node-specific manner using an intent-based orchestrator
US11249851B2 (en) 2019-09-05 2022-02-15 Robin Systems, Inc. Creating snapshots of a storage volume in a distributed storage system
US11520650B2 (en) 2019-09-05 2022-12-06 Robin Systems, Inc. Performing root cause analysis in a multi-role application
US11347684B2 (en) 2019-10-04 2022-05-31 Robin Systems, Inc. Rolling back KUBERNETES applications including custom resources
US11113158B2 (en) 2019-10-04 2021-09-07 Robin Systems, Inc. Rolling back kubernetes applications
US11403188B2 (en) 2019-12-04 2022-08-02 Robin Systems, Inc. Operation-level consistency points and rollback
US11108638B1 (en) 2020-06-08 2021-08-31 Robin Systems, Inc. Health monitoring of automatically deployed and managed network pipelines
US11528186B2 (en) 2020-06-16 2022-12-13 Robin Systems, Inc. Automated initialization of bare metal servers
US11740980B2 (en) 2020-09-22 2023-08-29 Robin Systems, Inc. Managing snapshot metadata following backup
US11743188B2 (en) 2020-10-01 2023-08-29 Robin Systems, Inc. Check-in monitoring for workflows
US11271895B1 (en) 2020-10-07 2022-03-08 Robin Systems, Inc. Implementing advanced networking capabilities using helm charts
US11456914B2 (en) 2020-10-07 2022-09-27 Robin Systems, Inc. Implementing affinity and anti-affinity with KUBERNETES
US11750451B2 (en) 2020-11-04 2023-09-05 Robin Systems, Inc. Batch manager for complex workflows
US11556361B2 (en) 2020-12-09 2023-01-17 Robin Systems, Inc. Monitoring and managing of complex multi-role applications
US11895119B2 (en) * 2021-01-31 2024-02-06 Salesforce, Inc. Systems, methods, and apparatuses for pre-configured per-tenant isolation in a multi-tenant cloud based computing environment

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7051098B2 (en) * 2000-05-25 2006-05-23 United States Of America As Represented By The Secretary Of The Navy System for monitoring and reporting performance of hosts and applications and selectively configuring applications in a resource managed system
CN101174219A (zh) * 2006-10-30 2008-05-07 西门子公司 根据使用环境执行和配置应用的方法和系统
US7412518B1 (en) * 2000-05-09 2008-08-12 Sun Microsystems, Inc. Method and apparatus for proximity discovery of services
CN101933000A (zh) * 2008-01-30 2010-12-29 微软公司 管理服务应用程序中的组件程序
US20120159424A1 (en) * 2010-12-21 2012-06-21 Microsoft Corporation Distributed application manifest
CN102541556A (zh) * 2010-12-29 2012-07-04 微软公司 分布式应用程序的设计平台

Family Cites Families (69)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2134059C (en) 1993-10-29 2009-01-13 Charles Simonyi Method and system for generating a computer program
US6442165B1 (en) 1998-12-02 2002-08-27 Cisco Technology, Inc. Load balancing between service component instances
US9916134B2 (en) 1999-10-05 2018-03-13 Dietrich Charisius Methods and systems for accessing distributed computing components through the internet
US6993743B2 (en) 2000-06-03 2006-01-31 Sun Microsystems, Inc. Method and apparatus for developing enterprise applications using design patterns
US7047518B2 (en) 2000-10-04 2006-05-16 Bea Systems, Inc. System for software application development and modeling
US20030105887A1 (en) 2001-12-03 2003-06-05 Cox Burke David Method and system for integration of software applications
US7917888B2 (en) 2001-01-22 2011-03-29 Symbol Technologies, Inc. System and method for building multi-modal and multi-channel applications
CA2440031C (en) 2001-02-22 2013-07-02 Accenture Global Services Gmbh Distributed development environment for building internet applications by developers at remote locations
US7634756B2 (en) 2001-03-22 2009-12-15 Robert Dean Bjornson Method and apparatus for dataflow creation and execution
AU2002362090A1 (en) 2001-12-07 2003-06-23 Dbase, Inc. Drag-and-drop dynamic distributed object model
AU2003237764A1 (en) 2002-05-16 2003-12-02 Agency For Science, Technology And Research Apparatus for discovering computing services architecture an developing patterns of computing services and method therefor
US7188155B2 (en) 2002-12-17 2007-03-06 International Business Machines Corporation Apparatus and method for selecting a web service in response to a request from a client device
US6993734B2 (en) 2003-02-20 2006-01-31 International Business Machines Corporatioin Use of time step information in a design verification system
US7774697B2 (en) 2003-02-25 2010-08-10 Bea Systems, Inc. System and method for structuring distributed applications
US8700413B2 (en) 2003-03-03 2014-04-15 International Business Machines Corporation Web services registration for dynamic composition of web services
US20040177335A1 (en) 2003-03-04 2004-09-09 International Business Machines Corporation Enterprise services application program development model
US20040187140A1 (en) 2003-03-21 2004-09-23 Werner Aigner Application framework
DE10319528A1 (de) 2003-04-30 2004-11-25 Siemens Ag Verfahren und Anordnung zur transparenten dynamischen Bereitstellung eines Web-Services
US20040226029A1 (en) 2003-05-09 2004-11-11 Gelme Andrew Anthony Interface for distributed objects and development platform therefor
JP2007503031A (ja) 2003-08-15 2007-02-15 ジ エスシーオー グループ、インコーポレイテッド ウェブ・サービス許可及び展開の基盤
US7392314B2 (en) 2003-08-15 2008-06-24 International Business Machines Corporation System and method for load—balancing in a resource infrastructure running application programs
US7103874B2 (en) 2003-10-23 2006-09-05 Microsoft Corporation Model-based management of computer systems and distributed applications
US20050144226A1 (en) 2003-11-10 2005-06-30 Churchill Software Services Systems and methods for modeling and generating reusable application component frameworks, and automated assembly of service-oriented applications from existing applications
US7526734B2 (en) 2004-04-30 2009-04-28 Sap Ag User interfaces for developing enterprise applications
US8170901B2 (en) 2004-10-01 2012-05-01 Microsoft Corporation Extensible framework for designing workflows
US7788536B1 (en) 2004-12-21 2010-08-31 Zenprise, Inc. Automated detection of problems in software application deployments
US7590988B2 (en) 2005-03-08 2009-09-15 Microsoft Corporation Dynamic service generation for legacy components
US20060248121A1 (en) 2005-04-15 2006-11-02 Michael Cacenco System and method for supporting packaging, publishing and republishing of wireless component applications
EP1712987A1 (en) 2005-04-15 2006-10-18 Research In Motion Limited System and Method for Unified Visualization of Two-Tiered Applications
US8006224B2 (en) 2005-04-15 2011-08-23 Research In Motion Limited System and method for unified visualization of two-tiered applications
US8086995B2 (en) 2005-04-18 2011-12-27 Research In Motion Limited System and method for flexible visual representation of device fonts
US8046737B2 (en) 2005-04-29 2011-10-25 Microsoft Corporation XML application framework
US7594003B2 (en) 2005-08-02 2009-09-22 Aol Llc Client/server web application architectures for offline usage, data structures, and related methods
GB0518416D0 (en) 2005-09-09 2005-10-19 Standard Life Assurance Compan Improvements in and relating to service orientated architecture
US9575735B2 (en) 2005-12-27 2017-02-21 International Business Machines Corporation Application template creation and management
US8156469B2 (en) 2005-12-29 2012-04-10 Sap Ag Single composition of pattern modules
US7774745B2 (en) 2005-12-29 2010-08-10 Sap Ag Mapping of designtime to runtime in a visual modeling language environment
US8561048B2 (en) 2005-12-29 2013-10-15 Sap Ag Late and dynamic binding of pattern components
US8316344B2 (en) 2005-12-30 2012-11-20 Sap Ag Software model deployment units
US20070233820A1 (en) 2006-03-29 2007-10-04 Sap Ag Dynamic web service configuration broadcasting
US7840431B2 (en) 2006-06-28 2010-11-23 International Business Machines Corporation Optimal group of service compositions
US8719766B1 (en) 2006-10-16 2014-05-06 The Math Works, Inc. System and method for identifying and adding files to a project manifest
US20080201705A1 (en) 2007-02-15 2008-08-21 Sun Microsystems, Inc. Apparatus and method for generating a software dependency map
US9197708B2 (en) 2007-03-14 2015-11-24 Telefonaktiebolaget L M Ericsson (Publ) Method and arrangement for mediating web services using UDDI
US20080244507A1 (en) 2007-03-30 2008-10-02 Microsoft Corporation Homogeneous Programming For Heterogeneous Multiprocessor Systems
US8341595B2 (en) 2007-05-30 2012-12-25 Roam Data Inc System and method for developing rich internet applications for remote computing devices
CN101068194B (zh) 2007-06-15 2010-12-01 腾讯科技(深圳)有限公司 一种实现在线游戏邀请的方法及系统
US20090083732A1 (en) 2007-09-26 2009-03-26 Microsoft Corporation Creation and deployment of distributed, extensible applications
US20090106011A1 (en) 2007-10-22 2009-04-23 International Business Machines Corporation System and method for developing and deploying sensor and actuator applications over distributed computing infrastructure
US8751626B2 (en) 2007-10-23 2014-06-10 Microsoft Corporation Model-based composite application platform
US7822840B2 (en) 2007-10-23 2010-10-26 International Business Machines Corporation Method and apparatus for dynamic web service client application update
US7890870B1 (en) 2007-12-06 2011-02-15 Sprint Communications Company L.P. Monitoring network functions concurrently utilizing a performance display
US8438542B2 (en) 2007-12-17 2013-05-07 Microsoft Corporation Generating a management pack at program build time
US8270606B2 (en) 2008-05-01 2012-09-18 International Business Machines Corporation Open architecture based domain dependent real time multi-lingual communication service
US8346225B2 (en) * 2009-01-28 2013-01-01 Headwater Partners I, Llc Quality of service for device assisted services
US8321803B2 (en) 2008-06-19 2012-11-27 International Business Machines Corporation Aggregating service components
US8713535B2 (en) 2008-06-30 2014-04-29 Microsoft Corporation Reliable and accurate usage detection of a software application
US8271935B2 (en) 2008-07-09 2012-09-18 International Business Machines Corporation Methods and tools for data-driven application engineering
US8572548B2 (en) 2008-10-08 2013-10-29 Accenture Global Services Gmbh Integrated design application
US8341593B2 (en) 2008-10-23 2012-12-25 Sap Ag Integrated development framework for composite applications
US8060586B2 (en) 2009-02-03 2011-11-15 Microsoft Corporation Dynamic web service deployment and integration
US20110088011A1 (en) 2009-10-14 2011-04-14 Vermeg Sarl Automated Enterprise Software Development
US8869108B2 (en) 2009-11-18 2014-10-21 Oracle International Corporation Techniques related to customizations for composite applications
CN101763266A (zh) 2010-01-13 2010-06-30 上海动量软件技术有限公司 计算机软件系统实现云构件部署和配置的平台系统及方法
CA2693454C (en) 2010-03-05 2014-07-29 Ibm Canada Limited - Ibm Canada Limitee Containment agnostic, n-ary roots leveraged model synchronization
US9128803B2 (en) 2010-12-15 2015-09-08 Microsoft Technology Licensing, Llc Application model for implementing composite applications
US8893076B2 (en) 2011-12-14 2014-11-18 Adobe Systems Incorporated Configurable computation modules
US9311161B2 (en) * 2012-09-14 2016-04-12 Ca, Inc. Automatically configured management service payloads for cloud IT services delivery
US9038037B1 (en) 2014-07-22 2015-05-19 Ted J. Biggerstaff Automatically solving simultaneous type equations for type difference transformations that redesign code

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7412518B1 (en) * 2000-05-09 2008-08-12 Sun Microsystems, Inc. Method and apparatus for proximity discovery of services
US7051098B2 (en) * 2000-05-25 2006-05-23 United States Of America As Represented By The Secretary Of The Navy System for monitoring and reporting performance of hosts and applications and selectively configuring applications in a resource managed system
CN101174219A (zh) * 2006-10-30 2008-05-07 西门子公司 根据使用环境执行和配置应用的方法和系统
CN101933000A (zh) * 2008-01-30 2010-12-29 微软公司 管理服务应用程序中的组件程序
US20120159424A1 (en) * 2010-12-21 2012-06-21 Microsoft Corporation Distributed application manifest
CN102541556A (zh) * 2010-12-29 2012-07-04 微软公司 分布式应用程序的设计平台

Also Published As

Publication number Publication date
CN104737133B (zh) 2019-06-18
WO2014062743A1 (en) 2014-04-24
EP2909717A1 (en) 2015-08-26
US9569274B2 (en) 2017-02-14
US20140108483A1 (en) 2014-04-17

Similar Documents

Publication Publication Date Title
CN104737133A (zh) 使用服务组的分布式应用优化
US11805076B2 (en) Microservice placement in hybrid multi-cloud using graph matching
JP6837414B2 (ja) 仮想マシン再配置プロトコルの生成を含む方法、仮想マシン再配置を容易にするためのシステムおよびプログラム
Neamtiu et al. Cloud software upgrades: Challenges and opportunities
AU2007289177B2 (en) Dynamically configuring, allocating and deploying computing systems
US11093289B2 (en) Provisioning disaster recovery resources across multiple different environments based on class of service
US11030002B2 (en) Optimizing simultaneous startup or modification of inter-dependent machines with specified priorities
CN111742295A (zh) 区块链网络基础结构的服务管理
US20150178052A1 (en) Automated experimentation platform
US20130205128A1 (en) Self-Updating Functionality in a Distributed System
US20190179709A1 (en) Data backup management during workload migration
JP2014532247A (ja) 容易にクラウド化可能なアプリケーションの発見型の識別および移行
CN104516730A (zh) 一种数据处理方法和装置
US9229839B2 (en) Implementing rate controls to limit timeout-based faults
US20190349251A1 (en) Context-based resource allocation with extended user concepts
US10223218B2 (en) Disaster recovery of managed systems
US20170242781A1 (en) Efficient Software Testing
Cortes et al. XtreemOS: a vision for a Grid operating system
WO2022263138A1 (en) Cloning, reinstating, and archiving of an application in a containerized platform
US9152458B1 (en) Mirrored stateful workers
US10831621B2 (en) Policy-driven high availability standby servers
US7979870B1 (en) Method and system for locating objects in a distributed computing environment
Haugerud et al. On automated cloud bursting and hybrid cloud setups using Apache Mesos
Ghazaleh et al. A technical feasibility for adoption of clou d computing in King Abdulaziz University, Saudi Arabia
Bai et al. Exam Ref 70-535 Architecting Microsoft Azure Solutions

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20171017

Address after: Washington State

Applicant after: Micro soft technique license Co., Ltd

Address before: Washington State

Applicant before: Microsoft Corp.

GR01 Patent grant
GR01 Patent grant