当前位置: 首页 > 专利查询>微软公司专利>正文

用于主存有状态和无状态中间软件组件的多承租人高密度容器服务制造技术

技术编号:8682577 阅读:236 留言:0更新日期:2013-05-09 02:37
本发明专利技术涉及用于主存有状态和无状态中间软件组件的多承租人高密度容器服务。容器服务能够主存多个承租人的大量中间软件组件。中央容器管理器控制多个计算节点。中央容器管理器从外部设备或服务接收中间软件组件并将该组件分配给一个或多个指定计算节点上的容器。每个计算节点具有容器管理代理和一个或多个容器。容器管理代理激活并管理适当数量的容器以运行分配的中间软件组件。容器管理代理向其计算节点上的每个容器分配有限的特权集合以控制对共享资源的访问。中央容器管理器和每个节点的容器管理代理监视容器负载水平并动态地调节中间软件组件的放置以维持平衡的操作。基于每个计算节点上主存的中间软件组件的类型,将计算节点分组成群集。

【技术实现步骤摘要】

本专利技术涉及用于主存有状态和无状态中间软件组件的多承租人高密度容器服务
技术介绍
分布式系统允许用户运行主存在分布的资源(如远程中央处理单元(CPU)、中央服务器或物理机或虚拟机)上的应用程序。中间软件服务为分布的资源上的应用程序提供计算、协调、信息管理、主存和其它支持。中间软件组件是在分布的资源上运行的并且为用户提供服务或实现协议或算法的软件应用程序或计算机指令。中间软件组件可提供复杂的或专用的应用程序。当需要中间软件组件提供的功能时,用户与中间软件组件交互。对中间软件组件的需求取决于用户的需要而变化。因此,如果没有用户需求,则在分布的资源上运行的中间软件组件可以是空闲的,或者在用户需求高的情况下,分布的资源可能不能服务所有的用户需要。
技术实现思路
提供本概述以便以简化形式介绍将在以下详细描述中进一步描述的一些概念。本
技术实现思路
并不旨在标识所要求保护主题的关键特征或必要特征,也不旨在用于限制所要求保护主题的范围。本文描述并揭示能够为多个用户或承租人主存大量中间软件组件的容器服务。容器服务包括多个计算节点和中央容器管理器。计算节点由中央容器管理器作为群集来管理。每个计算节点具有管理该计算节点上的一个或多个容器的容器管理代理。中央容器管理器从外部设备或服务接收中间软件组件并将该组件分配给一个或多个指定计算节点上的容器。对于每个指定的计算节点,指定的计算节点上的容器管理代理激活并管理合适数量的容量以运行分配给该指定节点的中间软件组件。容器服务通过在选择的计算节点集合上主存大量的中间软件组件,提供有效的、高密度的操作。这允许计算节点的活动资源在容器管理代理的控制下以高使用水平或高负载因子操作,这通过增加效率降低了与主存中间软件组件相关联的成本。代替跨所有计算节点随机地分布中间软件组件,只激活所需的资源并且其余计算节点和资源为空闲的,直至需要支持附加的中间软件组件。中央容器管理器和每个节点的容器管理代理通过动态地调节中间软件组件在群集中的特定节点上的放置,对容器负载水平的改变作出反应。容器服务可为多个承租人同时提供计算节点资源。每个容器主存属于不同承租人的中间软件组件,并同时为每个组件集合提供对共享的计算资源集合的访问。通过将不同的中间软件组件集合彼此隔离并确保跨所有组件集合的平衡的资源分布,来实现多承租。容器服务允许无状态和有状态组件两者的有效横向扩展(scale-out)。容器提供允许分区以使有状态中间软件组件能够有效地缩放的编程模型和基础结构。容器还经由克隆提供无状态组件的横向扩展。因此,当中间软件组件需要附加资源时,为这些组件分配附加的容器。重新分布有状态组件的分区以使用该附加容量。对于无状态组件,创建附加克隆以使用该附加容量。容器服务确保中间软件组件具有高可用性。中央容器管理器跨故障域分布中间软件组件的主要和次要实例。在由于节点失效或者为了基础结构更新而关闭导致主要实例不可用的情况下,激活中间软件组件的次要实例。附图说明图1是示出容器服务的示例性实施例的框图;图2是示出容器服务的替换实施例的框图;图3示出在示例性实施例中跨多个节点的中间软件组件模块的放置;以及图4是示出用于管理来自多个承租人的中间软件组件的示例性过程的流程图。具体实施例通常,分布的资源已经专用于特定用户。分配给特定用户的资源在未被用户要求时可以是空闲的或者未被充分利用。因此,即使在分配的资源空闲时,它对已经被分配了不同的资源集合的其它用户也是不可用的。如果用户正在使用分配的资源达到最高容量,如果附加的资源对用户不可用,则用户的工作负载受到限制。允许用户基于需要访问附加资源的容器服务向用户提供灵活性。图1是示出本文所揭示的容器服务100的示例性实施例的框图。使用多个计算节点101来提供容器服务,该多个计算节点101由中央容器管理器102作为群集一起管理。计算节点101可以是物理机或虚拟机。虚拟机是模拟硬件资源(如处理器、存储器和存储设备)和外围资源的操作的软件应用程序。中央容器管理器102由存储中间软件组件的运行时存储103支持。每个计算节点101包括容器管理代理104和一个或多个容器105。在群集中的每个计算节点101上运行一个容器管理代理104。容器管理代理104与群集中的所有其它节点上的其它容器管理代理通信。在一个实施例中,计算节点101是每个都具有类似的容量和能力的物理机或虚拟机。然而,在其它实施例中,计算节点可以是具有变化的容量和能力的不同设备。中央容器管理器102从外部设备或服务(如合成应用程序服务)接收中间软件组件。合成应用程序服务是多承租人的受管理服务,其使应用程序的部署和管理自动化并且直接执行应用程序组件。中间软件组件可属于不同的承租人。本文所用的术语“承租人”是指容器服务的用户,包括但不限于访问容器服务的应用程序、客户机、订户、顾客或公司。中央容器管理器102将来自承租人的新的中间软件组件上传到运行时存储103并通知新接收的组件的各自的容器管理代理104。中央容器管理器102指定一个或多个容器105来运行中间软件组件。容器跨群集中的一个或多个计算节点101分布。一旦接收到来自中央容器管理器102的组件将放置在特定计算节点101上的通知,与该节点相关联的容器管理代理104激活容器105。容器管理代理104和计算节点101在该新激活的容器105中主存新的中间软件组件。为了提供安全的环境,容器管理代理104和计算节点101通过使每个中间软件组件在其自己的容器中运行,将中间软件组件彼此隔离。相同节点上的容器共享对该节点可用的资源。中央容器管理器102和容器管理代理104测量每个容器的资源使用。中央容器管理器102和容器代理104通过跨计算节点101动态地调节负载,来平衡共享资源的分配。在计算节点101之间分布的容器105的使用为中间软件组件提供高可用性,并为需要分区或克隆的组件实现横向扩展,如下所述。中央容器管理器102可以是在物理机(如CPU或服务器)或虚拟机上运行的软件应用程序或程序代码。计算节点101可以实现为物理机或虚拟机。计算节点101可以主存在相同的物理机上或主存在驻留在相同或不同位置中的多个分离的物理机上。容器105在计算节点101上彼此隔离地操作,以避免在分离的容器中运行的中间软件组件或模块实例之间的干扰,并确保每个容器公平地共享对计算节点101上的资源的访问。运行时存储103可包括任何计算机存储介质,其使用任何现在已知或以后开发的技术、系统或方法来存储信息,如中间软件组件、计算机可读指令、数据结构、程序模块或其它数据。运行时存储103可在可用于存储信息并可由中央容器管理器102或计算节点101访问的任何介质中实现。计算机存储介质可包括例如任何易失性或非易失性介质,如RAM、ROM、电可擦除可编程只读存储器(EEPROM)、闪存、CD-R0M、DVD、磁带盒、磁带、磁盘存储或其它光学或磁性存储设备。负载平衡在一个实施例中,计算节点101可包括CPU、存储器盘输入/输出(I/O)和网络I/O资源。容器管理代理104限制每个容器105对这些资源的访问,使得多个容器105可在给定计算节点101上运行,而不会不利地影响在该节点上活动的其它容器105。容器管理代理104实施对例如CPU和存储器使用的限制,本文档来自技高网...

【技术保护点】
一种主存多个承租人的中间软件组件的方法,所述方法包括:将中间软件组件映射(403)到多个计算节点(101),每个计算节点(101)包括容器管理代理(104)和一个或多个容器(105);将各个中间软件组件放置(405)到映射的计算节点(101)上;由所述容器管理代理(104)将所述各个中间软件组件放置到每个映射的计算节点(101)上的一个或多个容器(206)中,所述容器(105)主存一个或多个中间软件组件的操作。

【技术特征摘要】
...

【专利技术属性】
技术研发人员:A·库尔卡尼G·M·文卡塔拉曼拉帕Y·克里斯坦森C·普拉萨德D·舒克拉S·莫汉蒂V·尚巴格A·乌尔布里希M·基肖尔A·班达卡
申请(专利权)人:微软公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1