CN102438041A - 高可用性场服务器组的升级 - Google Patents

高可用性场服务器组的升级 Download PDF

Info

Publication number
CN102438041A
CN102438041A CN2011103398943A CN201110339894A CN102438041A CN 102438041 A CN102438041 A CN 102438041A CN 2011103398943 A CN2011103398943 A CN 2011103398943A CN 201110339894 A CN201110339894 A CN 201110339894A CN 102438041 A CN102438041 A CN 102438041A
Authority
CN
China
Prior art keywords
field
old
machine
database
new
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
CN2011103398943A
Other languages
English (en)
Other versions
CN102438041B (zh
Inventor
J·M·卡希尔
A·霍普曼
E·福克斯
Z·罗森菲尔德
M·K·温德尔
E·R·莱尔马
R·P·德奥利维拉
D·巴尔-卡斯彼
K·杰拉斯
A·卡帕迪亚
T·塞维尔米什
T·乔斯
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 CN102438041A publication Critical patent/CN102438041A/zh
Application granted granted Critical
Publication of CN102438041B publication Critical patent/CN102438041B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/958Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2308Concurrency control
    • G06F16/2315Optimistic concurrency control
    • G06F16/2329Optimistic concurrency control using versioning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

高可用性场服务器组的升级。机器管理器为在线服务控制(物理的或虚拟的)机器的部署和管理。多层的服务器组被安排在场中,每个场可以包括不同的配置。例如,可以存在被安排用于执行在线服务的操作的内容场、联合服务场和SQL场。当多个场被升级时,新的场被部署并且相关联的内容数据库被从旧的场移动到新部署的场。在升级场期间,可以由所述场继续处理请求。在升级期间,自动负载平衡所述场。当内容形式所述新的场上变为可用时,对该内容的请求可以被自动重定向到该新的场。

Description

高可用性场服务器组的升级
技术领域
本申请涉及对场的升级,特别是高可用性场服务器组的升级。
背景技术
在线服务包括位于web服务器上的与存储在数据库中的数据在一起的文件。例如,可存在大量位于不同网络中的服务器,以处理针对在线服务的通信。管理和部署安排在不同的场(farm)中的大量服务器是需要庞大运营人员队伍的费时过程,其中该人员队伍是易受人为差错影响的。
发明内容
提供本发明内容以便以简化的形式介绍将在以下具体实施方式中进一步描述的一些概念。本发明内容并非旨在标识所要求保护的主题的关键特征或必要特征,也不旨在用于帮助确定所要求保护的主题的范围。
机器管理器为在线服务控制(物理的或虚拟的)机器的部署和管理。多层的服务器组被安排在场中,每个场可以包括不同的配置。例如,可以存在被安排用于执行在线服务的操作的内容场、联合服务场和SQL场。当多个场被升级时,新场被部署并且相关联的内容数据库被从旧场移动到新部署的场。在升级场期间,可以由所述场继续处理请求。在升级期间,自动负载平衡所述场。当内容形式所述新场上变为可用时,对该内容的请求可以被自动重定向到该新场。
附图说明
图1示出了用于管理与诸如内容管理服务之类的在线服务相关联的网络的云管理器系统。
图2示出了包括管理器和相关联的数据库的云管理器;
图3示出了存储在数据库的行内的示例性作业记录;
图4示出了用于网络的示例系统,所述网络包括用于在线服务的前端和后端服务器;
图5示出计算机的计算机体系结构;
图6示出了用于管理在线服务的场的部署的系统。
图7示出了将数据库从旧场移动到正在被部署的新场。
图8示出了用于部署新场(例如内容场)的处理。
图9说明了用于部署新的服务场的处理;以及
图10说明了用于部署新的数据库场的处理。
具体实施方式
现将参考其中相同的标号代表相似的元素的附图来描述各实施例。
一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、组件、数据结构和其它类型的结构。也可使用其它计算机系统配置,包括手持式设备、多处理器系统、基于微处理器或可编程消费电子产品、小型计算机、大型计算机等等。也可使用在其中任务由通过通信网络链接的远程处理设备执行的分布式计算环境。在分布式计算环境中,程序模块可位于本地和远程存储器存储设备两者中。
图1示出了用于管理与在线服务相关联的网络的云管理系统。系统100示出了云管理器105,该云管理器105连接到并且管理可能分布在世界各地的不同网络。网络中的每个被配置成为一个或多个承租人(tenant)(例如客户、顾客)提供内容服务。这些网络可以寄宿在云服务内和/或内部部署的(on-premises)数据中心内。云管理器105用于部署、配置和管理这些网络。云管理器被配置为通过可容忍间歇性网络故障的幂等的和异步的应用web服务应用编程接口(API)150来接收请求。
如所示的,云管理器105包括工作管理器110、机器管理器115、应用程序专用管理器120、脚本130以及诸如数据存储140(例如数据库)的中央储存库。未包括在所示管理器之一内的功能可以驻留在云管理器的某个其他位置处。根据一个实施例,应用程序管理器120是SharePoint承租人管理器,该管理器包括SharePoint专用逻辑。
工作管理器110管理任务的执行,并且启用对较长时间运行的任务的调度和重试。工作管理器110启动存储在作业队列112中的作业并且跟踪运行中的作业。当已经流逝了预定的时间时,工作管理器110可以自动地取消任务并且执行与该任务相关的某些进一步处理。根据一个实施例,作业队列112中的任务由工作管理器110通过调用一个或多个脚本130来执行。例如,可以使用诸如微软的
Figure BSA00000604023900031
的脚本语言来对由工作管理器110执行的任务进行编程。每个脚本可以作为新进程运行。尽管将每个脚本作为新进程来执行可以具有相当高的CPU开销,但是该系统是可伸缩的,并且帮助为每次脚本执行确保干净的环境,加上在脚本完成时进行完全的清理。
机器管理器115被配置为管理网络(例如网络1、网络2、网络3)中的物理机。一般而言,机器管理器115理解网络、物理机、虚拟机(VM)、VM映像(VHD)等等。机器管理器不必强绑定到网络内运行的特定服务,而是在“角色”方面持续跟踪网络中的各种组件。例如,可以通过API 150请求机器管理器115在网络3上部署类型为“Foo”的具有版本12.34.56.78的VM。响应于对云管理器105的请求,机器管理器115对位于网络3上的合适物理机进行定位,并且根据与VM的角色相关联的VM映像来配置VM。使用类型为Foo的具有版本12.34.56.78的VHD来配置物理机,该VHD存储在诸如数据存储140的数据存储内。在网络内使用的映像也可以存储在其他位置处,诸如用于网络中的一个或多个的本地数据共享中。可以运行脚本来执行VHD在物理机上的安装以及用于执行任何部署后的配置。机器管理器115持续跟踪每个网络的机器配置。例如,机器管理器115可以持续跟踪VM的角色(VM的类型)、VM的状态(供应、运行、停止、故障)、版本以及VM是否存在于给定场(farm)中(这隐含了其网络)。
脚本130被配置为存储将要执行以便既本地地为云管理器105执行工作又远程地在所述网络中的一个或多个上执行工作的脚本。脚本130中的一个或多个还可以存储在其他位置。例如,将要在网络(例如网络1、网络2、网络3)上执行的脚本可以本地地存储到该网络。这些脚本可用于许多不同目的。例如,所述脚本可以用于执行:对网络中的一个或多个中的机器的配置,改变之前配置的机器上的设定,添加新的VM,添加新的数据库,将数据从一个机器移动到另一个,移动承租人,改变方案等。根据一个实施例,这些脚本是微软的
Figure BSA00000604023900041
脚本。也可以使用其他编程实施方式。例如,可以使用经编译的和/或前期绑定的编程语言来实现该功能。然而,脚本是一种表达将要执行的任务中的许多个的相当精确的语言。用诸如C#的编程语言对其等价物进行编程将常常需要冗长得多的实施方式。脚本还被后期绑定,这意味着可以以多个版本的底层代码库为目标,而不必不断地链接到不同的接口DLL。使用PowerShell脚本将允许进程由云管理器105本地地启动,云管理器105进而可以启动远程机器(即,所附连的网络之一中的物理机)上的进程。还可以使用其他技术来启动远程机器上的进程,诸如安全Shell(SSH)等。
云管理器105正在管理的应用程序专用信息由应用程序管理器120来执行。根据一个实施例,应用程序专用信息与微软
Figure BSA00000604023900042
有关。由此,应用程序管理器120被配置为了解SharePoint、承租人、站点集合等。
每个网络可以被配置成用于承租人的专用网络和/或服务于一个以上客户的多承租人网络。网络可以包括变化数目的物理机/虚拟机,物理机/虚拟机的配置在部署之后也变化。一般而言,只要未超过联网极限(例如,负载平衡器和网络交换机),网络就可以继续增长。例如,网络可以从十个服务器开始,并且之后扩充为一百个或更多个服务器。可以给网络内的物理机分配类或类型。例如,机器中的某些可以是计算机器(用于web前端和应用程序服务器),而其他机器可以是与计算机器相比配备有更多存储的存储机器。根据实施例,云管理器105用多个版本的映像文件来配置网络内的机器。根据一实施例,场常常具有相同版本的映像文件。
根据一个实施例,在网络内由云管理器系统100通过虚拟化机器并且管理该网络内部独立地行动的“场”来管理软件极限。每个网络可以包括一个或多个场(例如,参见网络1)。根据一个实施例,网络被认为是经网络负载平衡的机器的单个群集,所述机器向外部世界展示一个或多个VIP(虚拟IP)并且可以将通信路由到网络内的任何机器。网络中的机器通常是紧耦合的,并且具有最小等待时间(即<1ms的查验(ping)等待时间)。
场是用于对需要紧密绑定关系的应用程序进行协调的机器的基本分组。例如,内容场可以部署在每个网络内以用于诸如Microsoft
Figure BSA00000604023900043
的内容管理应用程序。一般而言,每一个场中的那组机器一起提供web服务和应用程序服务器功能。通常,场内的机器运行相同构建的应用程序(即SharePoint)并且共享公共的配置数据库以服务特定的承租人和站点集合。
场可以包含不同种类的虚拟机组。云管理器105在数据存储140内维护“场目标”,该场目标是每个场的每种角色的机器的目标数目。一些角色包括内容前端、内容中央管理、内容计时器服务、联合中央管理、联合应用服务器等。例如,内容场是处理接入消费者请求的基本SharePoint场。联合服务场包含可以跨场运行的诸如搜索和简档存储这样的SharePoint服务。场可以用于托管大容量公共因特网站点。某些场可以包含一组活动目录服务器和供应端口监控程序(Provisioning Daemon)。云管理器105自动地部署网络中的虚拟机和/或停用网络中的虚拟机,以帮助满足所定义的目标。这些场目标可以自动地和/或手动地来配置。例如,场目标可以响应于活动和容量需求的改变而改变。网络场-每个网络存在一个包含可以作为整个网络的资源的容易扩展的所有VM角色的网络场。
云管理器web服务API 150被设计为在可大规模伸缩的全局服务的上下文中工作。该API假定:任何网络请求可能失效和/或停留在传送中。对云管理器105的调用被配置为是幂等的。换言之,可以对云管理器105进行多次相同的调用(只要参数是相同的)而不改变结果。
云管理器105被设计为在向任何给定的请求返回响应之前进行非常少的处理(<10ms,<50ms)。云管理器105维护记录以跟踪当前请求。例如,云管理器105更新本地数据库中的记录,并且若需要则稍后调度“作业”以执行更长的活动。
云管理器跟踪作为用于在网络内部署新机器的模板的映像(诸如,虚拟盘映像)。映像引用可以存储在诸如数据库140的数据库中和/或某个其他位置。映像可以存储在对其上将部署映像的网络而言是本地的一个或多个共享的数据存储中。根据一个实施例,每个映像都包括:虚拟机(VM)角色类型,其指定映像可以部署的VM的类型;该映像应当使用的处理器的数目;将分配给该映像的RAM的量;用于找出附近安装点的网络ID(使得它们不会通过跨数据中心链接被反复地复制);以及可以被部署代码用于访问VHD的共享路径。
一般而言,由云系统100所管理的网络中的机器不是以传统方式通过下载数据并且将该数据合并到机器上的现有软件中来升级的。相反,机器是通过用已更新的VHD替换VHD来更新的。例如,当场需要新版本的软件时,部署安装了该新版本的新场。当部署新场时,将承租人从旧场移动到该新场。以此方式,由于升级造成的停机时间被最小化,并且场中的每个机器具有已被测试的相同版本。当虚拟机需要升级时,机器上的VM可以被删除并且被配置为运行所需服务的VM所代替。
尽管对现有软件的升级不是最优的,但是网络内的某些服务器使用原地升级的传统更新过程。例如,活动目录域控制器是通过升级服务器上的当前软件而不完全替换机器上的映像来升级的。在一些实例中,云管理器也可以原地升级。
图2示出了包括管理器和相关联的数据库的云管理器。如所示的,云管理器200包括工作管理器210、工作数据库215、机器管理器220、机器数据库225、承租人管理器230、承租人数据库235、私密数据库245、以及web服务API 240。
一般而言,将在云管理系统(例如系统100)内使用的数据库的大小调整为实现高性能。例如,数据库(诸如,工作数据库215、机器数据库225、承租人数据库235和私密数据库245)不能超过预定义的大小限制(例如30GB、50GB、100GB等)。根据一实施例,调整数据库的大小以使得其小得足以放入物理机的存储器中。这有助于高读取I/O性能。还可以基于对于应用程序(诸如,与SQL服务器交互)的性能来选择数据库的大小。还可以调整用在场中的数据库的大小以实现高性能。例如,它们的大小可以被调整为能放入主机的存储器中和/或被调整为使得备份操作、移动操作、复制操作、恢复操作一般在预定的时间段内执行。
云管理器200将云管理器数据划分成四个数据库。工作数据库215用于工作管理器。机器数据库225用于机器管理器220。承租人数据库235用于承租人管理器230,并且私密数据库245用于存储敏感信息,诸如系统帐户和密码信息、凭证、证书等。数据库可以位于相同的服务器上,或者跨服务器分割。根据一实施例,每个数据库被镜像以获得高可用性,并且都是SQL数据库。
云管理器200被配置为使用缩减的SQL特征组与数据库交互以便有助于在数据库升级期间提供云管理器200的可用性。例如,尝试避免外来密钥或已存储的过程。外来密钥可能使方案变化变得困难并且导致意料之外的失效情况。已存储的过程将应用程序中的更多个放置在数据库本身中。
尝试最小化与SQL服务器的通信,因为与底层操作的成本相比,往返可能是昂贵的。例如,如果当前SQL服务器到单个数据库的全部交互被包装在单个往返中,则常常是效率高得多的。
极少在数据库(215,225,235)内使用限制条件。一般而言,限制条件在其有助于在没有额外查询的情况下提供具有正确类型的错误处理的简单更新时是有益的。例如,完全合格的域名(FQDN)表具有对施加在“名称”上的限制条件,以帮助防止承租人意外地试图主张与已经被分配给不同承租人的FQDN相同的FQDN。
当添加索引时使用警告。索引通常以写入操作的额外I/O为代价来改善读取性能。由于数据库内的数据主要是驻留在RAM上的,因此即使全表扫描仍然是相对快的。根据一实施例,一旦查询模式已经稳定就可以添加索引,并且可以根据所提出的索引来确定性能改善。根据一实施例,如果添加索引将可能花费长时间,则可以指定“ONLINE=ON(在线=开启)”选项,以使得在最初构该建索引时表不被锁定。
根据一实施例,可以执行对云管理器内数据库的升级而不导致云管理器系统停工。换言之,即使在云管理器升级期间,云管理器继续处理已接收的请求。由此,对方案作出的改变将与之前的方案兼容。在升级云管理器所使用的web服务器之前进行SQL方案升级。当web服务器升级时,它们可以开始使用数据库中所启用的新特性。数据库升级被限制以使得升级中所涉及的操作是快速和有效的。例如,可以添加表,并且可以向现有列添加新的可空列。可以在表的结尾处添加新的列。一般而言,避免对数据库的耗时操作。例如,在存在大量数据时,在创建时间向新添加的列添加缺省值可能是非常耗时的操作。然而,添加可空列是非常快速的操作。如上面所讨论的,允许添加新的索引,但是在添加新的限制条件时应当采取警告,以帮助保证方案升级不会破除现有数据。例如,当添加限制条件时,该限制条件可以被设置为如下状态:该限制条件不被检查并且避免对现有行和潜在的错误进行高成本的验证。旧表和未使用的列在新版本被使用并且云管理器不访问这些表和列以后被移除。
一般而言,每个数据库中的单个行用于指示任务和/或所需状态。例如,承租人数据库235为每个承租人包括单个行。给定的承租人可以包括所需版本(Required Version)记录。该记录用于帮助确保该承租人被放置在运行所需版本的场上。例如,对于要停留在SharePoint 14 SP1上的承租人1而言,该承租人的所需版本可以被设置为“14.1”,并且包括14.1的任何版本都将匹配并且任何其他版本(例如14.2.xxxx)都将不匹配。承租人记录可以包括其他项目,诸如已授权的用户数目、限额(例如所允许的总数据使用、每用户的数据使用等)、时间限制等。某个组织可能具有代表不同地理位置、组合或容量的多个承租人。根据一实施例,将承租人彼此隔开而没有(经由外联网或其他特性)对用户的明确邀请。
根据一个实施例,每个承租人都被锁定到一专用网络中。承租人被保持为相对于一小组数据库而言是本地化的。承租人或者是小的(小于将填充一个数据库的程度),在这种情况下,该承租人处于与其他承租人共享的恰好一个数据库中。这意味着共享该数据库的所有承租人需要同时升级。当承租人变大时,其可被移动到其自己的专用数据库,并且现在可以具有一个以上、但是不与其他承租人共享的数据库。在一个或多个专用数据库中维护大承租人有助于减少需要在单次升级中同时升级的数据库的数目。
类似地,工作数据库215为每个作业包括单个行。机器数据库225可以为每个物理机、VM、场等包括行。例如,机器管理器数据库225可以包括版本字符串。根据实施例,网络内的每个VHD、场和VM具有相关联的版本字符串。
根据一个实施例,云管理器包括简单日志系统,该简单日志系统可以被配置为为每个web服务调用记录日志条目。可以实现包括如所期望的那样少和/或那样多的特性的日志系统。一般而言,日志系统被用于度量使用和性能剖析。
根据一实施例,web服务API 240是使用ASP.net的SOAP构建的。API中的各种web方法遵循两种主要模式——获取(Get)和更新(Update)。一般而言,更新方法采取数据结构作为输入,并且返回相同的结构作为输出。输出结构返回数据库中的底层对象的当前状态,其中如果确认或其他业务逻辑改变了一些性质或者以其他方式填充了附加的性质(例如记录ID或由云管理器计算出的其他值),则该底层对象可能不同于输入对象。这些更新方法被用于初始对象创建以及随后的更新。换言之,对web服务API 240的调用者可以简单地请求它们想要的配置并且它们不需要跟踪对象是否已经存在。另外,这意味着更新是幂等的,因为相同更新调用可以进行两次,其中相同效果仅仅发生一次。根据一示例实施例,更新方法可以包括LastUpdated(最后更新)性质。当存在LastUpdated属性时,云管理器200在LastUpdated的值不与数据库中当前存储的值匹配的情况下拒绝该更新。一些更新方法包括在第一次调用该方法以后被设置并且在该方法的其他调用以后未被设置的属性。
云管理器200被配置为避免使用回调。由于回调可能是不可靠的,因此与管理器200交互的客户可以在他们想要检查更新状况时使用web服务API来检查对象状况。根据一实施例,对更新方法的调用致使云管理器200将底层对象的状态设置为“供应”,并且当更新完成时,该状态被设置为“活动”。
图3示出了存储在数据库的行内的示例性作业记录。如所示那样,记录300包括作业标识符302、类型304、数据306、所有者308、步骤310、最后一次运行312、期满时间314、下次时间316、状态318以及状况320。
一般而言,针对所请求执行的每个任务,云管理器都在数据库350(例如,图2的工作数据库215)中创建记录。
作业标识符302用于为所请求的任务指定唯一的标识符。
类型304指定要执行的任务。例如,类型可以包括将要执行的脚本的名称。例如,当任务是运行名称为“DeployVM.ps1”的脚本时,则数据306可以包括该标识符(例如“-VMID 123”)。这允许将新任务类型添加到系统,而不需要对该系统的经编译的或其他二进制部分进行任何改变。
数据306用于存储与该任务相关联的数据。例如,数据可以被发送给其上将执行该任务的承租人、机器、网络、VM等等。数据306还可以存储数据库中的值被设置成的一个或多个值。运行该任务的进程可以查看作业记录以获悉:所期望的机器数目被设置成何值。脚本使用数据库中的值来执行操作。
所有者308指定进程/执行该进程的机器。例如,当云管理器机器开始执行作业时,该机器用该机器的ID来更新记录的所有者308部分。
步骤310提供对当前脚本的步骤的指示。例如,脚本可以将任务划分成任何数目的步骤。当该进程完成该脚本的步骤时,步骤310被更新。进程还可以查看步骤310以确定在该脚本中要执行什么步骤以及避免必须重新执行之前完成的步骤。
最后一次运行312提供脚本最后一次启动的时间。每当脚本启动时,最后一次运行时间都被更新。
期满时间314是指示该进程应当何时终止的时间。根据一实施例,期满时间是在进程启动以后的预定的时间量(例如5分钟、10分钟...)。期满时间可以通过经由web服务API的请求进程来更新。
下次时间316是指示任务下次应当何时被执行的时间。例如,进程可以在完成某步骤以后停止,并且被指示等待直到所指定的下次时间316以恢复处理。
状态318指示当前状态,并且状况310指示作业的状况(例如已创建、已挂起、已恢复、执行中、已删除)。
如果数据库中的复制行具有相同的任务类型和数据值,则它们可以在被执行以前被移除。例如,可以进行多个请求以执行存储在数据库的多个行中的相同任务。
作业可以具有相关联的一个或多个锁355。如果锁不可用,则作业将不被调度运行,直到锁可用。这些锁可以以许多不同的方式来配置。例如,锁可以基于互斥、信号机等等。一般而言,互斥防止代码被一个以上线程并发地执行,而信号机将共享资源的同时使用的数目限制为最高为最大数目。根据一实施例,锁是表示资源的字符串。该资源可以是任何类型的资源。例如,锁可以是场、机器、承租人等等。一般而言,锁用于延迟一个或多个任务的执行。每个作业都可以指定其在运行以前需要的一个或多个锁。作业可以在其操作期间的任何时间释放锁。当存在锁时,作业不被调度。需要一个以上锁的作业立刻请求被要求的所有锁。例如,已经持有锁的作业可以不请求附加的锁。这样的方案有助于防止由多个作业间的循环锁依赖性造成的可能的死锁情况。
图4示出了用于网络的示例性系统400,该网络包括用于网络服务的前端和后端服务器。示例性系统400包括客户端402和404、网络406、负载平衡器408、WFE服务器410、412、414以及后端服务器416-419。可使用更多或更少的客户端、WFE、后端服务器、负载平衡器和网络。附加地,由系统400中的组件所提供的一些功能可以由其他组件来执行。例如,一些负载平衡可以在WFE中执行。
在示例性实施例中,客户端402和404是诸如台式计算机、膝上型计算机、终端计算机、个人数字助理、或蜂窝电话设备之类的计算设备。客户端402和404可包括输入/输出设备、中央处理单元(“CPU”)、数据存储设备和网络设备。在本申请中,术语客户端和客户端计算机互换地使用。
WFE 410、412和414可由客户机402和404经由负载平衡器408通过网络406访问。如所讨论的那样,这些服务器可以在场中配置。后端服务器416对WFE 410、412和414是可访问的。负载平衡器408是专用网络设备和/或一个或多个服务器计算机。负载平衡器408、420、WFE410、412和414以及后端服务器416可包括输入/输出设备、中央处理单元(“CPU”)、数据存储设备和网络设备。在示例性实施例中,网络406是因特网,并且客户端402和404可以远程地访问WFE 410、412和414以及连接到WFE 410、412和414的资源。
在示例性实施例中,系统400是在线的、基于浏览器的文档协作系统。在线的、基于浏览器的文档协作系统的一个示例是来自美国华盛顿州雷蒙德市的微软公司的Microsoft
Figure BSA00000604023900111
在系统400中,一个或多个后端服务器416-419是SQL服务器,例如,来自美国华盛顿州雷蒙德市的微软公司的SQL服务器。
WFE 410、412和414提供客户端402和404以及后端服务器416-419之间的接口。负载平衡器408、420将请求从自客户端402和404引导到WFE 410、412和414,以及从WFF引导到后端服务器416-419。负载平衡器408使用诸如WFE的利用率、连接到WFE的连接数目和整体WFE性能之类的因素来确定哪个WFE服务器接收客户端请求。类似地,负载平衡器420使用诸如后端服务器利用率、连接到服务器的连接数目和整体性能之类的因素来确定哪个后端服务器接收请求。
客户端请求的示例可以是:访问存储在一个或多个后端服务器上的文档;编辑存储在后端服务器(例如416-419)上的文档;或者将文档存储在后端服务器上。当负载平衡器408通过网络406接收客户端请求时,负载平衡器408确定WFE服务器410、412和414中的哪个接收该客户端请求。类似地,负载平衡器420确定后端服务器416-419中的哪个从该WFE服务器接收请求。后端服务器可以被配置为存储一个或多个承租人(例如消费者)的数据。
现在参考图5,将描述在各实施例中利用的计算机500的说明性计算机体系结构。图5所示的计算机体系结构可被配置为服务器、台式或移动计算机,并且包括中央处理单元5(“CPU”)、包括随机存取存储器9(“RAM”)和只读存储器(“ROM”)11的系统存储器7、以及将存储器耦合至中央处理单元(“CPU”)5的系统总线12。
基本输入/输出系统存储在ROM 11中,所述基本输入/输出系统包含帮助在诸如启动期间在计算机内元件之间传递信息的基本例程。计算机500还包括大容量存储设备14以用于存储操作系统16、应用程序10、数据存储24、文件、以及与云系统100的执行和同云系统100的交互相关的云程序26。
大容量存储设备14通过连接至总线5的大容量存储控制器(未示出)连接到CPU 12。大容量存储设备14及其相关联的计算机可读介质为计算机500提供非易失性的存储。虽然此处包含的计算机可读介质的描述针对诸如硬盘或CD-ROM驱动器等大容量存储设备,但是计算机可读介质可以是能够由计算机100访问的任何可用介质。
作为示例而非限制,计算机可读介质可包括计算机存储介质和通信介质。计算机存储介质包括以存储如计算机可读指令、数据结构、程序模块或其它数据等信息的任何方法或技术来实现的易失性和非易失性、可移动和不可移动介质。计算机存储介质还包括,但不限于,RAM、ROM、可擦除可编程只读存储器(“EPROM”)、电可擦可编程只读存储器(“EEPROM”)、闪存或其它固态存储器技术、CD-ROM、数字多功能盘(“DVD”)或其它光存储、磁带盒、磁带、磁盘存储或其它磁性存储设备、或能用于存储所需信息且可以由计算机500访问的任何其它介质。
根据各实施例,计算机500可以使用通过诸如因特网等网络18至远程计算机的逻辑连接在联网环境中操作。计算机500可以通过连接至总线12的网络接口单元20来连接到网络18。网络连接可以是无线的和/或有线的。网络接口单元20也可用于连接到其它类型的网络和远程计算机系统。计算机500还可以包括用于接收和处理来自多个其他设备的输入的输入/输出控制器22,这些设备包括键盘、鼠标或者电子指示笔(未在图5中示出)。类似地,输入/输出控制器22可以为显示屏28、打印机或其它类型的输出设备提供输出。
如上面简要提到的那样,多个程序模块和数据文件可以存储在计算机500的大容量存储设备14和RAM 9内,包括适于控制联网计算机的操作的操作系统16,比如华盛顿州雷蒙德市的微软公司的
Figure BSA00000604023900131
操作系统。大容量存储设备14和RAM 9还可以存储一个或多个程序模块。具体而言地,大容量存储设备14和RAM 9可以存储诸如云程序26之类的执行与云系统相关的任务的一个或多个应用程序。
图6示出了用于管理在线服务的场的部署的系统。如所示出的,系统600示出云管理器605,包括工作管理器110、应用管理器120、机器管理器610、机器数据库620、脚本630和图像640。
机器管理器610对跨不同网络(网络1、网络2)的特定拓扑中的大量服务器的自动部署进行控制。尽管仅仅示出了两个网络,但是一般可以管理许多更多的网络(例如十个、一百个、一千个、一万个等等)。云管理器605和其组件运行,并且可以与上面所示和所描述的云管理器系统类似地来配置。机器管理器610可以用于为许多类型的在线服务部署和管理机器。
机器管理器610理解网络的物理拓扑,并且跟踪作为每个网络内的成员的物理机的位置。根据一实施例,机器管理器610知道网络内的每个机架的位置以及位于该机架内的每个机器。机器管理器610还持续跟踪在每个机器上使用的软件的具体版本以及安装在每个机器上的虚拟机(VM)映像。每个VM映像都对应于不同的服务器角色。
机器管理器610还被配置为为每个场内的每个机器确定角色。该确定可以手动地和/或动态地执行。例如,场可以最初被定义为包括15个机器,其中5个位于内容场660内,5个位于联合服务场665中,并且5个位于SQL场670中。在在线服务的操作期间,机器管理器610可以收集与场和网络内的机器相关的性能特性,并且基于所收集的性能特性动态地调整网络的资源。例如,当确定内容场过载时,机器管理器610可以创建将另一机器部署在内容场内以提供附加带宽这一作业。还可以监控机器/网络的健康度。机器管理器610可以替换网络内的机器,将通信量引导到新的一组机器,和/或响应于对机器的健康度的确定执行一些其他动作。例如,如果一个或多个场停工,则机器管理器610部署新场并且将通信量引导到新近部署的场。
机器管理器610持续跟踪作为执行服务工作的实际服务器的虚拟机,并且将该信息存储在诸如机器数据库620之类的数据存储中。如所讨论的那样,每个VM都具有代表特定服务器的功能的特定角色,并且它们进一步被编组为场,这些场通常是一组一起工作的运行完全相同版本软件的机器。根据一实施例,机器管理器610在机器数据库620中为每个场存储指定该场内的目标和角色的表。扮演每个角色的机器和每个场的机器的数目也存储在机器数据库620中。每个场内的机器的数目可以人工地配置和/或自动地配置。例如,后台进程可以监控负载并且动态地确定场目标。机器管理器610可以基于当前/预期的网络特性来启动机器和/或停止机器。网络内的每个场都可以用与其他场相同数目的机器或不同数目的机器来配置。例如,一个内容场可以包括6个机器,而另一内容场可以使用仅仅3个机器。
当新软件可用时,机器管理器610管理新软件的部署。一般而言,场/网络内的各个机器不被升级或打补丁。代之以,机器管理器610启动由工作管理器110所管理的工作,所述工作管理器部署包括该新软件的新的机器和场。在用新软件配置新场以后,机器管理器610将通信量/负载移动到该新场,并且阻止通信量去往旧场。
在升级期间,新场可以被配置为更好地处理曾被引导到旧场的通信量。例如,可以通过对场680的监控来确定:需要更多SQL场来处理负载。在从场680到场681的升级期间,机器管理器610可以添加机器和/或从场移除机器。
映像640被配置为存储正在被使用和/或将要部署在一个或多个网络的一个或多个机器上的虚拟硬盘(VHD)映像。根据一实施例,使用VHD文件格式,该格式指定可以驻留在封装在单个文件内的本机主文件系统上的虚拟机硬盘。可以使用其它格式。一般而言,VHD格式是广泛适用的,因为该格式对与该格式一起使用的虚拟化技术、主操作系统、或者客操作系统是不可知的。用在特定网络内的映像可以移动到全局共享645和/或网络本地的网络共享(例如网络共享655)。将映像存储在网络共享上将节省部署映像的时间,因为减小了网络通信时间。
也可以使用差分VHD。例如,可以仅仅部署VHD的最新版本与上一版本之间的差异。可以将不同技术用于该差异比较。例如,可以使用远程差分压缩技术来确定该差异并且仅仅将这些改变复制到网络共享。这允许进程加快网络内的机器的部署和更新,因为不需要复制VHD的完全副本。还可以采用网络内的增量。增量被作为文件发送,并且随后在本地机器/本地网络内,该文件可以用于创建完整的VHD。
根据一实施例,机器管理器610并不在机器上实际安装软件。相反,如前面所讨论的那样,在被执行时执行完成该任务的动作的作业被放置在作业队列中。一旦映像被安装在机器上时,机器管理器610启动机器运行。可对部署进行角色特定的定制的0个或更多角色特定的脚本可以在虚拟机启动以后运行。这些脚本可以位于网络的共享(例如网络共享655)、全局共享645、脚本630内或某个其他位置处。
根据一实施例,VHD一旦在机器上运行就是不可改变的。操作系统文件也可以被锁定,使得它们不能被改变。根据一个实施例,每个场都以两个帐户中的一个运行其服务,所述两个帐户包括应用池帐户和管理帐户。每个服务和/或应用还可以用唯一的凭证运行。为每个场创建这些帐户并且由机器管理器610生成这些帐户。这些帐户包括随机生成的口令。一般而言,不向人们供应场的口令。使用应用帐户来运行与在线服务(例如SharePoint)相关的进程。根据实施例,不登陆应用池帐户,并且没有web应用接口来访问存储这些密码的数据库。在配置场的期间,向执行脚本的进程提供所需的密码以设置和部署机器。这些私密可以被存储在数据库中,例如机器数据库620、存储私密的私密数据库625等等。例如,当执行部署场的进程时,向部署场进程提供密码,使得可以配置和启动场。在安装映像和对配置进行任何定制的期间,场不连接到在线服务,并且因此不具有任何通信量。一旦通信量被引导到场,则机器就被锁定并且密码不能在机器上或通过web接口被访问。当场正处理请求时,机器管理器610可以监控机器和VHD映像以确定是否存在未经授权/未被批准的改变。如果它们是要这样做,则机器管理器610可以部署新场以替换可能受损的场。通过这种方式,曾被放置到旧场上的任何代码都不被复制到新近部署的场。
当升级多个场(例如内容场660、联合服务场665以及SQL场670)时,机器管理器为要升级的每个场(例如内容场661、联合服务场662以及SQL场671)部署一个新场。根据实施例,首先升级内容场,随后是联合服务场。
例如,当要升级内容场660时,部署新的内容场661。在供给所述机器之后,在当前正在升级的场中的内容数据库被复制到新场。部署SQL场以便于将内容数据库附加给它。在移动数据库之前,备份所述数据库。数据库的备份可以在将数据库复制到新场之前的任意点上创建。在备份完成之后,可以将数据库标记为只读并将该数据库复制到新场。在场中的数据库可以被并行或串行复制。例如,每个数据库可以每次复制一个直到所有的数据库都迁移到新的内容场中,或可以每次复制多于一个的数据库。根据实施例,内容场中的数据库每次复制一个。
任何升级失败的数据库被留下并被服务在旧场上并用于进一步的故障查找。可以在故障查找到问题之后,(对已存在的新场)执行另一序列的升级。在这期间(在故障查找期间),用户获取对它们的(未升级的)数据的读-写访问。
在新场上的数据库的副本被附加给新场作为读/写,并且为新场创建一个数据库的镜像。在将请求定向到访问新场中新创建的数据库中的内容之前,在新场上执行任意数据库升级。例如,可以升级数据库以运行最近的方案版本。还可以修改数据库中的内容。例如,包含在新的数据库中的任意完全合格的域名(FQDN)可以在负载平衡器处被重定向到新场。机器管理器610可以调度一个或多个工作以执行升级。在部署内容场之后,在新场上的应用可以被连接到其他服务。例如,在部署了新的内容场661且复制并升级了数据库之后,可以将它连接到旧的服务(例如联合服务665),因为新的服务场666还没有被升级。这意味着,除了提供向后兼容性挂钩(hook)的服务之外,服务代理是向后兼容的并且能够与在它们之后的版本的服务对话。在旧场中的数据库可以在新场成功部署之后(例如1小时、1天、7天等等)再被移除。随后,取消供给该旧场。其他类型的场的部署以类似的方式来处理(参见进一步讨论的附图7-10)。
图7示出了将数据库从旧场移动到正在被部署的新场。作为示例的目的,而不是限制,假设旧场710具有三个要被移动到新场720上的数据库(DB 1、DB 2和DB3)。
状态702示出在部署了新场720之后当DB1正被复制时旧场710和新场720的状态。在将DB 1备份到旧场710之后,DB 1被置于只读状态并且被复制到新场720。在旧场中的数据库可以同时和/或在不同的时间被备份。在DB 1的复制期间,负载平衡器730继续将所有的请求发送给旧场710。
状态704示出在数据库D1已经完全复制并置于服务中之后时旧场710和新场720的状态。当数据库D1已经被复制到新场720时,获得自从备份最初被执行起对旧场上的数据所作出的改变,并且将该改变添加到复制到新场的数据。由于完全备份与事务备份之间的时间段是相对短的(例如几分钟),因此数据库不可用于写入的时间段也是短的。对数据库的任意升级还可以在将请求定向到该数据库之前执行。例如,新场中的DB 1′可以被升级到新的方案版本以处理与旧场相比不同的操作。在对新创建的DB 1′做出任意改变/更新之后,配置负载平衡器730以将请求定向到新场720中的DB 1′。在DB 1′开始接收请求之后,不再使用旧场中的DB 1。当完成DB 2到新场720的复制并且DB 2’已经完成升级进程时,负载平衡器730将DB 2的请求定向到新场720中的DB 2’。
状态706示出在所有数据库(D1、D2和D3)已经完全复制并置于服务中之后,旧场710和新场720的状态。当成功供给并部署新场720时,来自旧场710的所有的通信量被定向到新场720。此时,新近部署的场接收和处理之前曾被引导到旧场的所有请求。如果在部署场的期间检测到问题,则旧场可以继续使用。在成功部署新场720之后,可以取消供给旧场710。
图8-10说明了用于部署场的不同的过程。
当阅读对在此提供的例程的讨论时,应当理解,各实施例的逻辑操作被实现为(1)运行于计算系统上的一系列计算机实现的动作或程序模块,和/或(2)计算系统内互连的机器逻辑电路或电路模块。该实现是取决于实现本发明的计算系统的性能要求来选择的。因此,所例示的并且构成此处所描述的实施例的逻辑操作被不同地表示为操作、结构设备、动作或模块。这些操作、结构设备、动作和模块可用软件、固件、专用数字逻辑以及它们的任何组合来实现。
图8示出了用于部署新场,例如内容场,的处理。在开始操作之后,过程800流到操作810,其中作出要部署场的确定。这些场可以因许多不同原因而部署。例如,可以部署一个或多个场以运行与现有场不同版本的软件,可以部署新的网络,设备可能发生故障等等。该确定可以通过经由诸如上述web服务API之类的API的请求来进行,和/或可以自动地确定。例如,当场的目标改变时,可以人工地和/或自动地部署新场。
移至操作820,部署新场。根据一实施例,异步地执行机器的供应,使得机器管理器可以继续执行其他动作。部署新场可以包括许多不同的步骤。例如,假设具有VHD的物理机提供场的角色、执行对安装的任意定制并且启动机器。VHD可以移动到将要使用所述VHD的网络,使得在网络内而不是跨网络地执行复制操作。当要部署多层场时,可以以预定顺序部署每层。根据实施例,内容场部署在联合服务场之前,而联合服务场部署在数据库(例如SQL)场之前。场的升级的排序有助于减少场的升级的复杂度。例如,存储在服务场中的代表内容场的数据对于所有承租人(tenant)来说是同时被迁移的。如果要首先升级服务场,与内容相联系的服务数据可能需要在当内容从旧场移动到新内容场时被不断迁移或刷新。首先升级场(例如内容场)还可以在存在比服务场更多的内容场的场合中提供更好的缩放性。
移到操作830,新部署的场可以被连接到多层部署中的其他场。例如,当部署新的内容场时,它被连接到旧的联合服务场。
流到操作840,对来自旧场的数据库进行备份。可以每次一个地备份数据库,和/或可以并行备份数据库。备份可以在不同的时间执行。例如,当正在供给新场中的机器时、已经供给新场中的机器之后等等。在备份过程期间,数据库可以继续接收读/写请求。
移动到操作850,将数据库从旧场复制到新场。所升级的旧场在升级过程期间继续接收和处理请求。数据库可以在不同的时间被复制。例如,可以每次一个、每次两个或全部一起地等等将数据库复制到新场。数据库还可以以每承租人基础来被复制。例如,当承租人占有超过一个的数据库时,该承租人占有的每个数据库可以被并行复制。可以基于内容的类型来复制数据库。例如,服务场中的数据库可以一次被全部复制,相反,SQL数据库和/或内容场数据库可以以特定顺序被复制。在数据库复制期间,正在复制的数据库被限制加入任何新的承租人。
转到操作860,将数据库附加给新场,并在新场上创建数据库的镜像。
移动到操作870,获得自从备份最初被执行起对旧场上的数据所作出的改变,并且将该改变添加到复制到新场的数据。在该操作期间,旧场上的数据被标记为只读,使得在短时间段内,不允许对旧场上的数据进行写入。由于完全备份与事务备份之间的时间段是相对短的(例如几分钟),因此数据库不可用于写入的时间段也是短的。
流到操作875,对数据库执行任何升级。例如,新场中的数据库可以被升级到新的方案版本以处理与旧场相比不同的操作。如上所述,新场在升级过程期间不接收任何请求。还可以改变/修改数据库中的其他项。
流到操作880,当新场的供应和部署成功时,将来自旧场的通信量引导到新场。此时,新近部署的场接收和处理之前曾被引导到旧场的所有请求。如果在部署场的期间检测到问题,则旧场可以继续使用。另外,通信量也可以重新引导回旧场。随后该过程移至结束框并返回以处理其它动作。
移至操作890,取消供给旧场。可以立刻或在另一时间取消供给旧场。例如,可以设置一个验证新场正确工作的时间周期。可以在取消供给的同时和/或在不同的时间移除所述数据库。例如,可以在一天、7天、30天等之后移除数据库。
图9说明了用于部署新的服务场的处理。
在开始操作之后,该过程行进至在其中部署新的服务场的操作910。根据实施例,当要部署新的内容场时,在部署所述新的内容场之后部署服务场。如上所述,部署场通常包括假设具有VHD的物理机提供场的角色(在这种情况中为服务),执行对安装的任意定制以及启动机器。
移至操作920,在新的内容场和新的服务场之间建立信任,以便它们更多交流并协同工作。
流到操作930,升级在新的服务场上的服务。根据实施例,联合服务场主持包括搜索、用户简档、受管元数据和web分析的服务。可以主持更多或更少的服务。例如,订阅设置、安全存储服务等等。服务场还可提供具有登陆数据库的使用登陆服务应用。
升级服务通常沿用如相对于图8所述的新场的部署。对于旧的服务场中的每个服务,为每个服务数据库创建备份,在新的服务场中的新的服务应用与复制自旧的服务场的每个数据库的副本一起创建,而为每个服务应用在新的内容场中创建代理。
转换至操作940,验证服务升级。当升级失败时,使用旧的服务场。可以做出部署新的服务场的其他尝试。新的内容场可以继续使用旧的服务直到部署新的服务场。
移至操作950,在新的服务场和新的内容场之间建立连接,并且移除到旧的服务场的任意连接。
流至操作960,取消供给旧的服务场。
图10说明了用于部署新的数据库场的处理。
在开始操作之后,该过程流至操作1010,在该操作部署新的数据库场。根据实施例,在任意内容场部署和服务场部署之后部署数据库场。如上所述,部署场通常包括假设具有VHD的物理机提供场的角色,执行对安装的任意定制以及启动机器。根据实施例,部署SQL服务器以取代旧的SQL服务器。部署的服务器的数目可以不同于旧场。例如,可以是相同数目的服务器、更大数目的服务器或更小数目的服务器。
移至操作1020,对于每个正被取代的旧的SQL服务器,它被标记为正在升级中。在升级过程期间,继续使用旧的SQL服务器,但其操作可能被限制。
流至操作1030,对于每个旧的服务器上的每个证明(witnessing)会话,重新分配证明责任给在新部署的场中的另一个运行的服务器。
转换到操作1040,在旧的服务器上创建备份,并复制到新的服务器,每个新的服务器执行恢复操作。
移至操作1050,从备份时开始的任意改变被结合到新的服务器上的合适的数据库中。
流至操作1060,执行旧的服务器上的数据库的镜像的故障转移和阻断。根据实施例,在单个时间发生一次故障转移。
转换至操作1070,在当前委托人(principal)和新的服务器之间重新建立镜像。
移至操作1080,与新的数据库场建立不同的场之间的连接。在这点处,耦合新的内容场、新的服务场和新的数据库场。
流至操作1090,取消供给旧的数据库场。
以上说明、示例和数据提供了对本发明的组成部分的制造和使用的全面描述。因为可以在不背离本发明的精神和范围的情况下做出本发明的许多实施例,所以本发明落在所附权利要求的范围内。

Claims (10)

1.一种用于在在线服务中升级场的方法,包括:
确定何时在网络中部署新场以取代旧场(810);
部署新场(820),其中,部署新场包括:在所述新场中供应不同的机器以执行在线服务的不同角色,其中,执行相同角色的所述机器被安排在高可用性配置中;
为所述旧场中的每个数据库创建备份,而在正在备份数据库的同时继续允许对该数据库的读和写(840);
将所述旧场中的每个数据库复制到所述新场(850),同时继续允许对所述旧场中先前备份的数据库的读和写,其中,所述旧场继续处理对于由所述旧场所提供的角色的请求。
执行对所述新场中的数据库的任意升级(875);
自动将请求从所述旧场路由到所述新场(880);以及
取消供给所述旧场(890)。
2.如权利要求1所述的方法,其特征在于,在所述新场中供给机器包括自动启动在网络中部署所述新场的进程,其中,部署所述场包括使用虚拟硬盘(VHD)镜像来供应所述场中的机器上的软件并启动所述机器。
3.如权利要求1所述的方法,其特征在于,进一步包括将所述旧场中的每个数据库标记为在将每个数据库复制到所述新场的时间周期期间只读(850)。
4.如权利要求1所述的方法,其特征在于,进一步包括用自从在所述旧场上备份所述数据以来在所述旧场上被改变的任意数据来更新复制到所述新场的所述数据库(870)。
5.如权利要求1所述的方法,其特征在于,进一步包括在部署期间自动调整所述新场的配置以对所述新场进行负载平衡(730)。
6.如权利要求1所述的方法,其特征在于,确定何时部署所述新场以取代所述旧场包括确定何时所述旧场具有至少一个潜在的安全性缺口(820)。
7.如权利要求1所述的方法,其特征在于,部署所述新场包括自动部署:内容场;联合服务场;以及SQL场(820)。
8.一种具有计算机可执行指令的计算机可读存储介质,所述计算机可执行指令用于为在在线服务部署场,包括:
在每个网络(600)中的场中安排机器,其中角色用于确定一个或多个安装所述机器的虚拟机,其中,所述配置存储每个场的目标以及每个场的角色;
确定何时在网络中部署新场以取代旧场(810),其中所述新场和旧场包括执行第一角色的第一组虚拟机、执行第二角色的第二组机器以及执行第三角色的第三组机器;
部署所述新场,其中部署所述新场包括向所述网络中的物理机供应虚拟机以执行第一角色、第二角色和第三角色,其中,在高可用性配置中安排所述物理机和虚拟机(820);
为旧场中的每个数据库创建备份,而在正在备份数据库的同时继续允许对该数据库的读和写(840);
将所述旧场中的每个数据库复制到新场,同时继续允许对所述旧场中先前备份的数据库的读和写,其中,所述旧场继续处理对由所述旧场所提供的角色的请求(850);
将所述旧场中的每个数据库标记为在将每个数据库复制到所述新场的时间段期间只读(1020);
执行对新场中的数据库的任意升级(875);
自动将请求从旧场路由到新场(880);以及
取消供给所述旧场(890)。
9.一种用于为在线服务部署场的系统,包括:
包括物理机、虚拟机和数据库的网络(600);其中所述虚拟机被安排在场内,所述场每个都执行角色;其中所述场包括成组安排的内容场、联合服务场和SQL场;
处理器和计算机可读介质(5);
存储在所述计算机可读介质上并在所述处理器上执行的操作环境(16);以及
软件,该软件用于:
为在线服务存储不同网络的场中的机器的配置(225),其中所述配置包括所述机器中每个的位置和所述网络中的机器的角色,该位置包括该机器的机架位置;其中该角色用于确定一个或多个虚拟机以安装所述机器,其中所述配置存储所述场中的每个的目标和所述场中的每个的角色;
确定何时在网络中部署新场以取代旧场(810);
部署所述新场(820),其中部署所述新场包括向所述网络中的物理机供应虚拟机以执行所述内容场、联合服务场和SQL场的角色,其中,在高可用性配置中安排所述物理机和虚拟机;
为旧场中的每个数据库创建备份,而在正在备份数据库的同时继续允许对该数据库的读和写(840);
将所述旧场中的每个数据库复制到所述新场,同时继续允许对旧场中先前备份的数据库的读和写(850),其中,所述旧场继续处理对由所述旧场所提供的角色的请求;
将所述旧场中的每个数据库标记为在将每个数据库复制到所述新场的时间周期期间只读(1020);
自动将请求从旧场路由到新场(880);以及
取消供给所述旧场(890)。
10.如权利要求9所述的系统,其特征在于,在所述新场中供给机器包括自动启动在网络中部署所述新场的进程,其中,部署所述场包括使用虚拟硬盘(VHD)镜像来供应所述场中的机器并启动所述机器(910)。
CN201110339894.3A 2010-10-20 2011-10-19 高可用性场服务器组的升级 Active CN102438041B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/908,752 US8296267B2 (en) 2010-10-20 2010-10-20 Upgrade of highly available farm server groups
US12/908,752 2010-10-20

Publications (2)

Publication Number Publication Date
CN102438041A true CN102438041A (zh) 2012-05-02
CN102438041B CN102438041B (zh) 2014-06-04

Family

ID=45973827

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201110339894.3A Active CN102438041B (zh) 2010-10-20 2011-10-19 高可用性场服务器组的升级

Country Status (4)

Country Link
US (2) US8296267B2 (zh)
CN (1) CN102438041B (zh)
SG (1) SG189417A1 (zh)
WO (1) WO2012054247A1 (zh)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104618487A (zh) * 2015-02-06 2015-05-13 杭州华三通信技术有限公司 一种因特网协议存储在线升级方法和装置
CN104813292A (zh) * 2012-11-26 2015-07-29 亚马逊科技公司 缩放计算群集
CN105335361A (zh) * 2014-05-26 2016-02-17 小米科技有限责任公司 数据升级方法和装置
CN107810475A (zh) * 2015-06-30 2018-03-16 威睿公司 用于虚拟计算环境的软件生命周期管理的方法和装置
CN108431769A (zh) * 2016-01-21 2018-08-21 微软技术许可有限责任公司 无停机时间的数据库和服务升级
CN110908859A (zh) * 2019-10-17 2020-03-24 平安科技(深圳)有限公司 应用服务处理方法、装置、终端及存储介质
CN111052083A (zh) * 2017-08-16 2020-04-21 三星电子株式会社 用于在启动期间管理服务的调度的方法和装置

Families Citing this family (63)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8799453B2 (en) 2010-10-20 2014-08-05 Microsoft Corporation Managing networks and machines for an online service
US8296267B2 (en) * 2010-10-20 2012-10-23 Microsoft Corporation Upgrade of highly available farm server groups
US8751656B2 (en) 2010-10-20 2014-06-10 Microsoft Corporation Machine manager for deploying and managing machines
US8417737B2 (en) 2010-10-20 2013-04-09 Microsoft Corporation Online database availability during upgrade
US9075661B2 (en) 2010-10-20 2015-07-07 Microsoft Technology Licensing, Llc Placing objects on hosts using hard and soft constraints
US8386501B2 (en) 2010-10-20 2013-02-26 Microsoft Corporation Dynamically splitting multi-tenant databases
US8850550B2 (en) 2010-11-23 2014-09-30 Microsoft Corporation Using cached security tokens in an online service
US9721030B2 (en) 2010-12-09 2017-08-01 Microsoft Technology Licensing, Llc Codeless sharing of spreadsheet objects
US20120254118A1 (en) * 2011-03-31 2012-10-04 Microsoft Corporation Recovery of tenant data across tenant moves
US8577853B2 (en) * 2011-08-17 2013-11-05 Vmware, Inc. Performing online in-place upgrade of cluster file system
US8849887B2 (en) 2011-08-29 2014-09-30 Salesforce.Com, Inc. Mechanism for facilitating spin mode-based dynamic updating of application servers in an on-demand services environment
US20130080603A1 (en) * 2011-09-27 2013-03-28 Microsoft Corporation Fault Tolerant External Application Server
US9268590B2 (en) 2012-02-29 2016-02-23 Vmware, Inc. Provisioning a cluster of distributed computing platform based on placement strategy
US9843484B2 (en) * 2012-09-25 2017-12-12 A10 Networks, Inc. Graceful scaling in software driven networks
US9851980B1 (en) * 2012-10-22 2017-12-26 Amazon Technologies, Inc. Distributed update service enabling update requests
US8793230B2 (en) * 2012-10-23 2014-07-29 Sap Ag Single-database multiple-tenant software system upgrade
EP2779592A3 (en) 2013-03-15 2015-03-18 Verisign, Inc. Systems and methods for multi-tenant generic top level domain deployment
US10614047B1 (en) 2013-09-24 2020-04-07 EMC IP Holding Company LLC Proxy-based backup and restore of hyper-V cluster shared volumes (CSV)
US20150095283A1 (en) * 2013-09-27 2015-04-02 Microsoft Corporation Master schema shared across multiple tenants with dynamic update
US9733921B1 (en) * 2014-01-23 2017-08-15 NetSuite Inc. System and methods for management of cloud application extensions
US20150355927A1 (en) * 2014-06-04 2015-12-10 Yahoo! Inc. Automatic virtual machine resizing to optimize resource availability
US9804835B2 (en) 2014-06-11 2017-10-31 Microsoft Technology Licensing, Llc Dynamic pacing for service upgrades
US10474659B2 (en) * 2014-06-28 2019-11-12 Microsoft Technology Licensing, Llc Large scale network system upgrade
US9852027B2 (en) 2014-08-06 2017-12-26 Red Hat, Inc. Virtual machine high availability management
US9600312B2 (en) 2014-09-30 2017-03-21 Amazon Technologies, Inc. Threading as a service
US9146764B1 (en) 2014-09-30 2015-09-29 Amazon Technologies, Inc. Processing event messages for user requests to execute program code
US9678773B1 (en) 2014-09-30 2017-06-13 Amazon Technologies, Inc. Low latency computational capacity provisioning
US11119745B2 (en) * 2014-11-10 2021-09-14 Amazon Technologies, Inc. Automated deployment of applications
US9537788B2 (en) 2014-12-05 2017-01-03 Amazon Technologies, Inc. Automatic determination of resource sizing
DE102015015196A1 (de) * 2014-12-16 2016-06-16 Canon Kabushiki Kaisha Verwaltungssystem und Steuerungsverfahren für Verwaltungssystem
US10320892B2 (en) 2015-01-02 2019-06-11 Microsoft Technology Licensing, Llc Rolling capacity upgrade control
US9733967B2 (en) 2015-02-04 2017-08-15 Amazon Technologies, Inc. Security protocols for low latency execution of program code
US9588790B1 (en) 2015-02-04 2017-03-07 Amazon Technologies, Inc. Stateful virtual compute system
EP3320439A4 (en) * 2015-07-07 2018-09-05 Nasuni Corporation Systems and methods for restoring an interface to a global file system
US10466970B2 (en) 2015-10-20 2019-11-05 Sap Se Jurisdiction based localizations as a service
US10346150B2 (en) * 2015-10-21 2019-07-09 Oracle International Corporation Computerized system and method for patching an application by separating executables and working data using different images
US11132213B1 (en) 2016-03-30 2021-09-28 Amazon Technologies, Inc. Dependency-based process of pre-existing data sets at an on demand code execution environment
US10185549B2 (en) * 2016-06-28 2019-01-22 Microsoft Technology Licensing, Llc Updating live system with static changes
US10868883B2 (en) * 2016-06-29 2020-12-15 Nicira, Inc. Upgrading a proxy that decouples network connections from an application during application's downtime
US10587673B2 (en) 2016-06-29 2020-03-10 Nicira, Inc. Decoupling network connections from an application while the application is temporarily down
US10102040B2 (en) 2016-06-29 2018-10-16 Amazon Technologies, Inc Adjusting variable limit on concurrent code executions
US10320572B2 (en) * 2016-08-04 2019-06-11 Microsoft Technology Licensing, Llc Scope-based certificate deployment
US9841988B1 (en) 2016-11-16 2017-12-12 Red Hat Israel, Ltd. Updating service virtual machines using a new image that is certified
US10817382B2 (en) * 2017-05-17 2020-10-27 Dell Products, L.P. Concurrent upgrade of primary and standby databases
US11005733B2 (en) * 2017-06-08 2021-05-11 Vmware, Inc Methods, systems, and apparatus to scale in and/or scale out resources managed by a cloud automation system
US10853115B2 (en) 2018-06-25 2020-12-01 Amazon Technologies, Inc. Execution of auxiliary functions in an on-demand network code execution system
US11146569B1 (en) 2018-06-28 2021-10-12 Amazon Technologies, Inc. Escalation-resistant secure network services using request-scoped authentication information
US11099870B1 (en) 2018-07-25 2021-08-24 Amazon Technologies, Inc. Reducing execution times in an on-demand network code execution system using saved machine states
US11099917B2 (en) 2018-09-27 2021-08-24 Amazon Technologies, Inc. Efficient state maintenance for execution environments in an on-demand code execution system
US11243953B2 (en) 2018-09-27 2022-02-08 Amazon Technologies, Inc. Mapreduce implementation in an on-demand network code execution system and stream data processing system
US11943093B1 (en) 2018-11-20 2024-03-26 Amazon Technologies, Inc. Network connection recovery after virtual machine transition in an on-demand network code execution system
US11010188B1 (en) 2019-02-05 2021-05-18 Amazon Technologies, Inc. Simulated data object storage using on-demand computation of data objects
US11861386B1 (en) 2019-03-22 2024-01-02 Amazon Technologies, Inc. Application gateways in an on-demand network code execution system
US11119809B1 (en) 2019-06-20 2021-09-14 Amazon Technologies, Inc. Virtualization-based transaction handling in an on-demand network code execution system
US11159528B2 (en) 2019-06-28 2021-10-26 Amazon Technologies, Inc. Authentication to network-services using hosted authentication information
US11190609B2 (en) 2019-06-28 2021-11-30 Amazon Technologies, Inc. Connection pooling for scalable network services
US11119826B2 (en) 2019-11-27 2021-09-14 Amazon Technologies, Inc. Serverless call distribution to implement spillover while avoiding cold starts
US11714682B1 (en) 2020-03-03 2023-08-01 Amazon Technologies, Inc. Reclaiming computing resources in an on-demand code execution system
US11593270B1 (en) 2020-11-25 2023-02-28 Amazon Technologies, Inc. Fast distributed caching using erasure coded object parts
US11550713B1 (en) 2020-11-25 2023-01-10 Amazon Technologies, Inc. Garbage collection in distributed systems using life cycled storage roots
US11388210B1 (en) 2021-06-30 2022-07-12 Amazon Technologies, Inc. Streaming analytics using a serverless compute system
US11968280B1 (en) 2021-11-24 2024-04-23 Amazon Technologies, Inc. Controlling ingestion of streaming data to serverless function executions
US12015603B2 (en) 2021-12-10 2024-06-18 Amazon Technologies, Inc. Multi-tenant mode for serverless code execution

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7325156B1 (en) * 2004-10-07 2008-01-29 Hewlett-Packard Development Company, L.P. Methods and apparatus for backing up data in a data center
US20090248756A1 (en) * 2008-03-27 2009-10-01 Akidau Tyler A Systems and methods for a read only mode for a portion of a storage system
US20100162226A1 (en) * 2008-12-18 2010-06-24 Lazar Borissov Zero downtime mechanism for software upgrade of a distributed computer system

Family Cites Families (104)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5402428A (en) * 1989-12-25 1995-03-28 Hitachi, Ltd. Array disk subsystem
US5913032A (en) 1994-04-04 1999-06-15 Inprise Corporation System and methods for automatically distributing a particular shared data object through electronic mail
US5553215A (en) 1994-09-21 1996-09-03 Microsoft Corporation Method and system of sharing common formulas in a spreadsheet program and of adjusting the same to conform with editing operations
SG69956A1 (en) 1994-10-04 2000-01-25 Motorola Ltd Method for handover in multicellular environment
US5835910A (en) 1994-11-10 1998-11-10 Cadis, Inc. Method and system for comparing attributes in an object-oriented management system
US6453325B1 (en) * 1995-05-24 2002-09-17 International Business Machines Corporation Method and means for backup and restoration of a database system linked to a system for filing data
US6363497B1 (en) 1997-05-13 2002-03-26 Micron Technology, Inc. System for clustering software applications
US6675226B1 (en) 1998-11-17 2004-01-06 Rockwell Automation Technologies, Inc. Network interface for industrial controller providing application programmer interface
US7103647B2 (en) * 1999-08-23 2006-09-05 Terraspring, Inc. Symbolic definition of a computer system
US6578054B1 (en) 1999-10-04 2003-06-10 Microsoft Corporation Method and system for supporting off-line mode of operation and synchronization using resource state information
US6823384B1 (en) 1999-10-15 2004-11-23 James Wilson Methods and apparatus for securely collecting customer service agent data in a multi-tenant environment
US6983311B1 (en) 1999-10-19 2006-01-03 Netzero, Inc. Access to internet search capabilities
US6571283B1 (en) 1999-12-29 2003-05-27 Unisys Corporation Method for server farm configuration optimization
US6898727B1 (en) 2000-03-22 2005-05-24 Emc Corporation Method and apparatus for providing host resources for an electronic commerce site
US7562153B2 (en) 2000-05-12 2009-07-14 AT&T Intellectual Property II, L. P. Method and apparatus for content distribution network brokering and peering
US6711593B1 (en) 2000-06-26 2004-03-23 Camstar Systems, Inc. System and method for live update of a manufacturing system
US6988241B1 (en) 2000-10-16 2006-01-17 International Business Machines Corporation Client side, web-based spreadsheet
US20030061365A1 (en) 2001-03-14 2003-03-27 Microsoft Corporation Service-to-service communication for network services
JP4426736B2 (ja) 2001-04-27 2010-03-03 株式会社日立製作所 プログラム修正方法およびプログラム
US7647409B2 (en) 2001-06-28 2010-01-12 International Business Machines Corporation Gradual online subscription removal
US20030208527A1 (en) 2001-07-20 2003-11-06 Lino Lglesais Method for smart device network application infrastructure (SDNA)
FI20011651A (fi) * 2001-08-15 2003-02-16 Nokia Corp Palveluklusterin kuormituksen tasapainoittaminen
US7000228B2 (en) 2002-01-17 2006-02-14 Sun Microsystems, Inc. Online upgrade of container-based software components
US6731323B2 (en) 2002-04-10 2004-05-04 International Business Machines Corporation Media-enhanced greetings and/or responses in communication systems
US20030204460A1 (en) 2002-04-30 2003-10-30 Rodney Robinson Data collection and transaction initiation using a financial messaging protocol
US7774473B2 (en) * 2002-07-31 2010-08-10 Oracle America, Inc. System and method for sticky routing of requests within a server farm
US7549166B2 (en) * 2002-12-05 2009-06-16 International Business Machines Corporation Defense mechanism for server farm
US7283465B2 (en) 2003-01-07 2007-10-16 Corrigent Systems Ltd. Hierarchical virtual private LAN service protection scheme
US20040210623A1 (en) 2003-03-06 2004-10-21 Aamer Hydrie Virtual network topology generation
US6973654B1 (en) 2003-05-27 2005-12-06 Microsoft Corporation Systems and methods for the repartitioning of data
US7203944B1 (en) 2003-07-09 2007-04-10 Veritas Operating Corporation Migrating virtual machines among computer systems to balance load caused by virtual machines
CA2438997A1 (en) 2003-08-28 2005-02-28 Ibm Canada Limited - Ibm Canada Limitee System and method for carrying out legacy application transitions
US7779039B2 (en) 2004-04-02 2010-08-17 Salesforce.Com, Inc. Custom entities and fields in a multi-tenant database system
US7529728B2 (en) 2003-09-23 2009-05-05 Salesforce.Com, Inc. Query optimization in a multi-tenant database system
JP4573126B2 (ja) 2003-09-24 2010-11-04 ソニー株式会社 データベーススキーマ更新方法、通信端末装置、更新情報提供方法、更新情報提供装置、データベーススキーマ更新プログラム及び更新情報提供プログラム
US7680933B2 (en) 2003-12-15 2010-03-16 International Business Machines Corporation Apparatus, system, and method for on-demand control of grid system resources
US7360208B2 (en) 2004-05-17 2008-04-15 Oracle International Corp. Rolling upgrade of distributed software with automatic completion
US7657932B2 (en) 2004-07-14 2010-02-02 Microsoft Corporation Extendible security token management architecture and secure message handling methods
US7779431B2 (en) 2004-07-16 2010-08-17 Wallace Robert G Networked spreadsheet template designer
US7454659B1 (en) 2004-08-24 2008-11-18 The Mathworks, Inc. Distributed systems in test environments
US7555751B1 (en) 2004-08-11 2009-06-30 3Com Corporation Method and system for performing a live system upgrade
US7668961B2 (en) 2004-09-23 2010-02-23 Microsoft Corporation Unilateral web services interaction contract
US8146073B2 (en) 2004-09-30 2012-03-27 Microsoft Corporation Updating software while it is running
US9329905B2 (en) 2004-10-15 2016-05-03 Emc Corporation Method and apparatus for configuring, monitoring and/or managing resource groups including a virtual machine
US20060122469A1 (en) * 2004-11-16 2006-06-08 Martel Normand M Remote medical monitoring system
US7899921B2 (en) 2004-12-08 2011-03-01 Microsoft Corporation Verifying and maintaining connection liveliness in a reliable messaging for web services environment
US7987225B2 (en) 2004-12-22 2011-07-26 International Business Machines Corporation Method for remembering resource allocation in grids
JP4555703B2 (ja) 2005-02-23 2010-10-06 株式会社日立製作所 領域集合設定方法、および、ネットワークシステム
US20070011667A1 (en) 2005-05-25 2007-01-11 Saravanan Subbiah Lock management for clustered virtual machines
US20060277224A1 (en) 2005-06-07 2006-12-07 Microsoft Corporation Synchronizing arbitrary data using a flexible schema
US7577661B2 (en) 2005-06-30 2009-08-18 Microsoft Corporation Extensible and automatically replicating server farm configuration management infrastructure
US7558857B2 (en) 2005-06-30 2009-07-07 Microsoft Corporation Solution deployment in a server farm
US7720820B2 (en) 2005-07-12 2010-05-18 Microsoft Corporation Logless persistent components for enterprise applications
US7636704B2 (en) 2005-08-26 2009-12-22 Emc Corporation Methods and apparatus for scheduling an action on a computer
US7603354B2 (en) 2006-02-09 2009-10-13 Cinnober Financial Technology Ab Method for enhancing the operation of a database
US20070198554A1 (en) 2006-02-10 2007-08-23 Sun Microsystems, Inc. Apparatus for business service oriented management infrastructure
US20070219956A1 (en) 2006-03-16 2007-09-20 Milton Michael L Excel spreadsheet parsing to share cells, formulas, tables, etc.
US20070220415A1 (en) 2006-03-16 2007-09-20 Morgan Mao Cheng Excel spreadsheet parsing to share cells, formulas, tables or entire spreadsheets across an enterprise with other users
US7818740B2 (en) 2006-05-05 2010-10-19 Microsoft Corporation Techniques to perform gradual upgrades
US20070271560A1 (en) 2006-05-18 2007-11-22 Microsoft Corporation Deploying virtual machine to host based on workload characterizations
US7512639B2 (en) 2006-06-15 2009-03-31 International Business Machines Corporation Management of time-variant data schemas in data warehouses
US7730028B2 (en) 2006-09-22 2010-06-01 Research In Motion Limited Schema updating for synchronizing databases connected by wireless interface
US7870163B2 (en) 2006-09-28 2011-01-11 Oracle International Corporation Implementation of backward compatible XML schema evolution in a relational database system
US8521706B2 (en) 2006-10-20 2013-08-27 Oracle International Corporation Low-downtime and zero-downtime upgrades of database-centric applications
US7634505B2 (en) 2006-12-19 2009-12-15 Salesforce.Com, Inc. Methods and procedures to provide complete test copy environment of hosted applications
US7865556B2 (en) 2006-12-20 2011-01-04 International Business Machines Corporation Failover processing for automatic responder in mixed server environment
US8554981B2 (en) 2007-02-02 2013-10-08 Vmware, Inc. High availability virtual machine cluster
US7680848B2 (en) 2007-03-29 2010-03-16 Microsoft Corporation Reliable and scalable multi-tenant asynchronous processing
US8095618B2 (en) 2007-03-30 2012-01-10 Microsoft Corporation In-memory caching of shared customizable multi-tenant data
US8479194B2 (en) 2007-04-25 2013-07-02 Microsoft Corporation Virtual machine migration
US8122055B2 (en) 2007-04-26 2012-02-21 Microsoft Corporation Hosted multi-tenant application with per-tenant unshared private databases
US20090083561A1 (en) 2007-09-26 2009-03-26 Nikos Kaburlasos Dynamic power management of dimms
US8275855B2 (en) 2007-12-20 2012-09-25 Yahoo! Inc. Method and system for monitoring rest web services
US8990360B2 (en) 2008-02-22 2015-03-24 Sonos, Inc. System, method, and computer program for remotely managing a digital device
US8196175B2 (en) 2008-03-05 2012-06-05 Microsoft Corporation Self-describing authorization policy for accessing cloud-based resources
US9501124B2 (en) 2008-05-22 2016-11-22 Microsoft Technology Licensing, Llc Virtual machine placement based on power calculations
US20090327139A1 (en) 2008-06-27 2009-12-31 Microsoft Corporation Loosely coupled hosted application system
US20100011409A1 (en) 2008-07-09 2010-01-14 Novell, Inc. Non-interactive information card token generation
US8117410B2 (en) * 2008-08-25 2012-02-14 Vmware, Inc. Tracking block-level changes using snapshots
US20100070466A1 (en) 2008-09-15 2010-03-18 Anand Prahlad Data transfer techniques within data storage devices, such as network attached storage performing data migration
US20100095198A1 (en) 2008-10-15 2010-04-15 Apple Inc. Shared comments for online document collaboration
US9300532B2 (en) 2008-10-24 2016-03-29 Microsoft Technology Licensing, Llc Automating deployment of service applications by exposing hosting environment constraints
US20100113159A1 (en) 2008-11-06 2010-05-06 International Business Machines Corporation Method and apparatus for partitioning virtual worlds using prioritized topic spaces in virtual world systems
US7979512B2 (en) 2008-11-07 2011-07-12 Microsoft Corporation Service delivery online
US8271536B2 (en) 2008-11-14 2012-09-18 Microsoft Corporation Multi-tenancy using suite of authorization manager components
US9325695B2 (en) 2008-12-04 2016-04-26 International Business Machines Corporation Token caching in trust chain processing
US9189221B2 (en) 2009-01-27 2015-11-17 Microsoft Technology Licensing, Llc Consistent operating system servicing for distributed nodes
US8918488B2 (en) 2009-02-04 2014-12-23 Citrix Systems, Inc. Methods and systems for automated management of virtual resources in a cloud computing environment
US9208188B2 (en) 2009-02-17 2015-12-08 Microsoft Technology Licensing, Llc Tenant management of a hosted multi-tenant application
US9705888B2 (en) 2009-03-31 2017-07-11 Amazon Technologies, Inc. Managing security groups for data instances
US20100262632A1 (en) 2009-04-14 2010-10-14 Microsoft Corporation Data transfer from on-line to on-premise deployment
US9274796B2 (en) 2009-05-11 2016-03-01 Arm Finance Overseas Limited Variable register and immediate field encoding in an instruction set architecture
US20110071856A1 (en) * 2009-09-23 2011-03-24 Nasenbenny Mary B System and method for dynamic real time insurance litigation management
KR100980599B1 (ko) 2010-01-19 2010-09-07 코아인텍주식회사 입출력 공유장치를 이용한 클라우드 서비스 시스템
US20120102480A1 (en) 2010-10-20 2012-04-26 Microsoft Corporation High availability of machines during patching
US8296267B2 (en) * 2010-10-20 2012-10-23 Microsoft Corporation Upgrade of highly available farm server groups
US8417737B2 (en) 2010-10-20 2013-04-09 Microsoft Corporation Online database availability during upgrade
US9075661B2 (en) 2010-10-20 2015-07-07 Microsoft Technology Licensing, Llc Placing objects on hosts using hard and soft constraints
US8799453B2 (en) 2010-10-20 2014-08-05 Microsoft Corporation Managing networks and machines for an online service
US8751656B2 (en) 2010-10-20 2014-06-10 Microsoft Corporation Machine manager for deploying and managing machines
US20120102506A1 (en) 2010-10-20 2012-04-26 Microsoft Corporation Web service patterns for globally distributed service fabric
US8386501B2 (en) 2010-10-20 2013-02-26 Microsoft Corporation Dynamically splitting multi-tenant databases
US8850550B2 (en) 2010-11-23 2014-09-30 Microsoft Corporation Using cached security tokens in an online service
US9721030B2 (en) 2010-12-09 2017-08-01 Microsoft Technology Licensing, Llc Codeless sharing of spreadsheet objects

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7325156B1 (en) * 2004-10-07 2008-01-29 Hewlett-Packard Development Company, L.P. Methods and apparatus for backing up data in a data center
US20090248756A1 (en) * 2008-03-27 2009-10-01 Akidau Tyler A Systems and methods for a read only mode for a portion of a storage system
US20100162226A1 (en) * 2008-12-18 2010-06-24 Lazar Borissov Zero downtime mechanism for software upgrade of a distributed computer system

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10394611B2 (en) 2012-11-26 2019-08-27 Amazon Technologies, Inc. Scaling computing clusters in a distributed computing system
CN104813292A (zh) * 2012-11-26 2015-07-29 亚马逊科技公司 缩放计算群集
CN110442458A (zh) * 2012-11-26 2019-11-12 亚马逊科技公司 缩放计算群集
CN105335361A (zh) * 2014-05-26 2016-02-17 小米科技有限责任公司 数据升级方法和装置
CN104618487A (zh) * 2015-02-06 2015-05-13 杭州华三通信技术有限公司 一种因特网协议存储在线升级方法和装置
CN104618487B (zh) * 2015-02-06 2018-04-20 新华三技术有限公司 一种因特网协议存储在线升级方法和装置
CN107810475A (zh) * 2015-06-30 2018-03-16 威睿公司 用于虚拟计算环境的软件生命周期管理的方法和装置
CN108431769A (zh) * 2016-01-21 2018-08-21 微软技术许可有限责任公司 无停机时间的数据库和服务升级
CN108431769B (zh) * 2016-01-21 2021-09-17 微软技术许可有限责任公司 无停机时间的数据库和服务升级
CN111052083A (zh) * 2017-08-16 2020-04-21 三星电子株式会社 用于在启动期间管理服务的调度的方法和装置
CN111052083B (zh) * 2017-08-16 2023-11-07 三星电子株式会社 用于在启动期间管理服务的调度的方法和装置
CN110908859A (zh) * 2019-10-17 2020-03-24 平安科技(深圳)有限公司 应用服务处理方法、装置、终端及存储介质
CN110908859B (zh) * 2019-10-17 2023-05-30 平安科技(深圳)有限公司 应用服务处理方法、装置、终端及存储介质

Also Published As

Publication number Publication date
WO2012054247A1 (en) 2012-04-26
US8296267B2 (en) 2012-10-23
SG189417A1 (en) 2013-05-31
CN102438041B (zh) 2014-06-04
US20120101998A1 (en) 2012-04-26
US20130124481A1 (en) 2013-05-16

Similar Documents

Publication Publication Date Title
CN102438041B (zh) 高可用性场服务器组的升级
CN102426543B (zh) 使用硬和软限制将对象放置在主机上
CN102523101B (zh) 机器管理器服务结构
CN102571906B (zh) 打补丁期间机器的高可用性
CN102571905B (zh) 一种为在线服务管理网络和机器的方法和系统
CN102436485B (zh) 动态拆分多承租人数据库
CN102541987B (zh) 升级期间的在线数据库可用性
CN102455937A (zh) 用于全局分布的服务结构的Web服务模式
CN103562904B (zh) 在服务的次要位置重放作业
CN102521009B (zh) 创建并部署服务准备完毕虚拟硬盘
CN102420847B (zh) 在在线服务中以高可用性路由通信
CN102426530B (zh) 使用高特权过程远程安装软件

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
ASS Succession or assignment of patent right

Owner name: MICROSOFT TECHNOLOGY LICENSING LLC

Free format text: FORMER OWNER: MICROSOFT CORP.

Effective date: 20150421

C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20150421

Address after: Washington State

Patentee after: Micro soft technique license Co., Ltd

Address before: Washington State

Patentee before: Microsoft Corp.