US9270521B2 - Provisioning and managing a cluster deployed on a cloud - Google Patents

Provisioning and managing a cluster deployed on a cloud Download PDF

Info

Publication number
US9270521B2
US9270521B2 US13/854,758 US201313854758A US9270521B2 US 9270521 B2 US9270521 B2 US 9270521B2 US 201313854758 A US201313854758 A US 201313854758A US 9270521 B2 US9270521 B2 US 9270521B2
Authority
US
United States
Prior art keywords
cluster
server
application
database
response
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.)
Active, expires
Application number
US13/854,758
Other versions
US20130227091A1 (en
Inventor
David Tompkins
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.)
Adobe Inc
Original Assignee
Adobe Systems Inc
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 Adobe Systems Inc filed Critical Adobe Systems Inc
Priority to US13/854,758 priority Critical patent/US9270521B2/en
Publication of US20130227091A1 publication Critical patent/US20130227091A1/en
Assigned to ADOBE SYSTEMS INCORPORATED reassignment ADOBE SYSTEMS INCORPORATED ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: TOMPKINS, DAVID
Application granted granted Critical
Publication of US9270521B2 publication Critical patent/US9270521B2/en
Assigned to ADOBE INC. reassignment ADOBE INC. CHANGE OF NAME (SEE DOCUMENT FOR DETAILS). Assignors: ADOBE SYSTEMS INCORPORATED
Active legal-status Critical Current
Adjusted expiration legal-status Critical

Links

Images

Classifications

    • 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
    • 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/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • 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
    • 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
    • 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/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/4557Distribution of virtual machine instances; Migration and load balancing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/501Performance criteria
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/505Clust

Abstract

A system is provided to provision and manage cloud-based clustered application deployment. In one example embodiment, a clustered computing application is detected as being launched on a cluster of nodes. Each node in the cluster is a virtual instance of a machine within a virtualization service. Status of the nodes in the cluster are monitored to detect availability of a server within the virtualization service A notification message addressed to the server is issued in response to detecting the availability of the server. The notification message includes information for connecting to the cluster.

Description

RELATED APPLICATION
This application is a continuation of, and claims the benefit of priority under 35 U.S.C. §120 to, U.S. application Ser. No. 12/830,080, filed Jul. 2, 2010, now U.S. Pat. No. 8,412,810, issued Apr. 2, 2013, the entire contents of which are incorporated herein by reference.
TECHNICAL FIELD
This disclosure relates generally to the technical fields of software and/or hardware technology and, in one example embodiment, to system and method to provision and manage a clustered computing application deployed on a cloud.
BACKGROUND
The approaches described in this section could be pursued, but are not necessarily approaches that have been previously conceived or pursued. Therefore, unless otherwise indicated herein, the approaches described in this section are not prior art to the claims in this application and are not admitted to be prior art by inclusion in this section.
The phrase “cloud computing” refers to an architectural paradigm, in which computation is moved from local servers to a remote service that provides computation as a commodity or utility. A “cloud” is typically a large collection of shared commodity computation resources that can be interchangeably provisioned in response to clients' computation requests. Cloud computing is frequently used in software-as-a-service (SaaS) application architectures and may be viewed as an implementation choice for application deployment that leverages shared resources and improved cost structure of the cloud. A cloud computing approach may be used to implement a variety of computational paradigms, such as virtual machines, jobs, remote procedure calls, traditional servers, etc.
A computing application that is deployed on more than one machine (node) is termed a clustered computing application (or merely a clustered application or a cluster). For example, a clustered application may comprise a load balancer, a database, and an application server, where the load balancer is deployed on one node, the database server is deployed on another node, while the application server is deployed on a further node. Historically, clustered applications have been deployed using hardware that is statically allocated to a cluster, thereby defining both the cost of running a cluster and the peak load that it could support. In the event of increased load, new hardware would be purchased and brought online, and the cost of running the cluster would increase. In the event of decreased load, there is no corresponding way to decommission hardware and realize cost savings. Furthermore, the period of time that would elapse between the urgent need for more capacity and its availability would typically be measured in days or weeks.
BRIEF DESCRIPTION OF DRAWINGS
Embodiments are illustrated by way of example and not limitation in the figures of the accompanying drawings, in which like references indicate similar elements and in which:
FIG. 1 is a block diagram showing an architecture within which a method and system to provision and manage a clustered computing application deployed as a cloud may be implemented, in accordance with an example embodiment;
FIG. 2 is a diagrammatic representation of a tree-tiered clustered computing application, in accordance with an example embodiment;
FIG. 3 is a block diagram illustrating a cluster node hosted by a virtual instance of a machine, in accordance with an example embodiment;
FIG. 4 is a block diagram illustrating some components of a control server, in accordance with an example embodiment;
FIG. 5 is a flow chart illustrating a method to provision a clustered computing application deployed on a cloud, in accordance with an example embodiment;
FIG. 6 is a diagrammatic representation of a user interface for displaying topology of a clustered application to a user, in accordance with an example embodiment; and
FIG. 7 is a diagrammatic representation of a machine in the example form of a computer system within which a set of instructions, for causing the machine to perform any one or more of the methodologies discussed herein, may e executed.
DETAILED DESCRIPTION
In the following detailed description, numerous specific details are set forth to provide a thorough understanding of claimed subject matter. However, it will be understood by those skilled in the art that claimed subject matter may be practiced without these specific details. In other instances, methods, apparatuses or systems that would be known by one of ordinary skill have not been described in detail so as not to obscure claimed subject matter.
Some portions of the detailed description which follow are presented in terms of algorithms or symbolic representations of operations on binary digital signals stored within a memory of a specific apparatus or special purpose computing device or platform, :In the context of this particular specification, the term specific apparatus or the like includes a general purpose computer once it is programmed to perform particular functions pursuant to instructions from program software. Algorithmic descriptions or symbolic representations are examples of techniques used by those of ordinary skill in the signal processing or related arts to convey the substance of their work to others skilled in the art. An algorithm is here, and generally, considered to be a self-consistent sequence of operations or similar signal processing leading to a desired result, in this context, operations or processing involve physical manipulation of physical quantities. Typically, although not necessarily, such quantities may take the form of electrical or magnetic signals capable of being stored, transferred, combined, compared or otherwise manipulated. It has proven convenient at times, principally for reasons of common usage, to refer to such signals as bits, data, values, elements, symbols, characters, terms, numbers, numerals or the like. It should be understood, however, that all of these or similar terms are to be associated with appropriate physical quantities and are merely convenient labels. Unless specifically stated otherwise, as apparent from the following discussion, it is appreciated that throughout this specification discussions utilizing terms such as “processing,” “computing,” “calculating,” “determining” or the like refer to actions or processes of a specific apparatus, such as a special purpose computer or a similar special purpose electronic computing device. In the context of this specification, therefore, a special purpose computer or a similar special purpose electronic computing device is capable of manipulating or transforming signals, typically represented as physical electronic or magnetic quantities within memories, registers, or other information storage devices, transmission devices, or display devices of the special purpose computer or similar special purpose electronic computing device.
Method and system are described to provision and manage cloud-based clustered application deployment. In one example embodiment, a cloud-based clustered application deployment uses a three tier topology that includes a load balancing tier, an application tier, and a database tier. Each tier comprises a set of nodes, where each node is implemented using a virtual instance of a machine running within a public virtualization space, such as, e.g., the virtualization space provided by Amazon Elastic Compute Cloud (EC2) service.
The nodes in one tier of a clustered application are homogenous in that they each use the same machine image stored in the public storage space. Thus, the same machine image is used for launching each of the nodes in the application tier, while a different machine image is used to launch a node in the toad balancing tier, and still another machine image is used to launch one or more nodes in the database tier. The machine images, which are read-only boot images that are used for launching cluster nodes, are provided by a control server (also referred to as a controller). The controller is configured to enforce sequential start sequence of a cluster using an asynchronous messaging system that provides notifications to cluster nodes as the individual nodes of the cluster become available. This messaging system is also used when the size of the cluster is increased or decreased, providing change notifications to nodes that subscribe to these notifications.
A clustered application that comprises a set of nodes grouped into several logical tiers may distribute the load of the application across the nodes in order to support loads that are higher than single standalone instances can handle. A set of techniques for optimizing a clustered computing application in response to varying load may be referred to as elastic scalability. Elastic scalability may be supported in two modes: manual and rule-based in the manual mode, the size of a cluster can be increased or decreased in response to commands from an administrator initiated, e.g., through the cluster dashboard user interface (shown in FIG. 6). In the rule-based mode, the size of a cluster can be increased or decreased automatically in response to a set of logical rules that are evaluated periodically by the controller. These rules may be based on load measurements, application performance metrics, usage patterns, and user-specified data and business logic. In general, the manual mode may be provided to allow an administrator to override rule-based cluster sizing functions when needed; however, the rule-based mode allows the cluster to operate more efficiently and autonomously in response to load conditions, which may result in a lower operational cost for the cluster and a quicker response to changes in load.
A system that provisions and manages a computing application hosted on one or more virtual nodes may be referred to as a hosted service system. A hosted service system may be configured to provide automated administration of a computing application, replacing the administration tasks that would otherwise be performed by the customer when running in an on-premise production deployment. The technology within an example hosted service system may hide the behavior of the underlying virtualization service, and provide instances of a computing application that are substantially indistinguishable (e.g., in terms of reliability, security, and performance) from local on-premise deployments of the computing application. An example computing applications that a hosted service system may provision and manage are Adobe® LiveCycle® Enterprise Suite (ES) and Adobe® ConnectPro® offered by Adobe Systems Incorporated. While embodiments of the hosted service system are described with reference to Amazon EC2 service, other virtualization services may be utilized.
In operation, a user can access a provider's web site and request to launch a computing application that can be deployed remotely on a plurality of virtual nodes (on a cloud) such that the user no longer is required to deploy the computing application locally, within their own data center, on their own hardware. A request may be triggered by a user, e.g., by activating a visual control such as a “Start” button presented on a web page. When a hosted service system receives a request to launch a computing application, a call is made to the application programming interface (API) associated with the virtualization service to trigger the loading of machine images associated with respective tiers of the requested computing application. In one embodiment, where a clustered application comprises a load balancing tier, an application tier, and a database tier, the load balancing tier and the database tier initially may each comprise one virtual node, while the application tier may initially comprise a plurality of virtual nodes. A request to launch a clustered computing application may be triggered explicitly by a user or automatically. The associated node is loaded with the contents of the machine image. In one embodiment, nodes of a load balancing tier are launched using a load balancer machine image, nodes of an application tier are launched using an application server machine image, and nodes of a database tier are launched using a database server machine image.
An example architecture within which method and system to provision and manage a clustered computing application hosted by a plurality of virtual nodes may be implemented is described with reference to an architecture diagram illustrated in FIG. 1. The architecture 100 may include a client computer system 110 and a hosted service system 120. In one example embodiment, the hosted service system 120 is to provision and manage an enterprise SaaS product utilizing a cloud-based computing service as a virtualization infrastructure. Cloud-based computing services are shown in FIG. 1 as a virtualization service 130 and a network storage service 140. In one embodiment, a hosted service system 120 utilizes Amazon EC2 as a virtualization service and Amazon Simple Storage Service (Amazon S3) as a network storage service. The client computer system 110 and the hosted service system 120 may be in communication with each other via a communications network that may be a public network (e.g., the Internet).
The virtualization service 130 may load a clustered application 132 onto a cloud. The clustered application 132 may be accessed by the client 110 via a browser application 112. As mentioned above, a user in control of the client computer system 110 may send a request to the hosted service system 120 to load the computing application. The request may be initiated via a user interface 122 provided by the hosted service system 120 to the client computer system 110 via the browser application 112.
The user interface 122, in one embodiment, provides both an end-user's and a system administrator's view of the clustered application 132 and also permits issuing control operations to the clustered application 132 and permits viewing the resulting changes in the state of the clustered application 132. For example, where the clustered application is LiveCycle®, an end-user may manipulate various electronic forms. The user interface 122 may also serve as a source of information for the hosted service system 120, including documentation, downloads, and support. The user interface 122, in one embodiment, uses Adobe® Flex® software, offered by Adobe Systems incorporated, as the user interface technology for the implementation of the user interface. The user interface 122, in one embodiment, uses an XML (Extensible Markup Language)-based representational state transfer (REST) style secure communications protocol to synchronize its operations with a control server 124. A request to access the user interface 122 may be authenticated using one of a variety of authentication techniques.
The request from the client computer system 110 to load the clustered application 132 is received at the control server 124, which responds to the request by activating an access interface 134 provided by the virtualization service 130. The control server 124, in one example embodiment, provides coordination between the components of the architecture 100, provides administration and monitoring of the virtualization service 130, and also may be configured to audit system usage and resource allocation with respect to the clustered application 132. The control server 124 includes a database to store information pertaining to various aspects of system usage. The control server 124, in one embodiment, runs within a standard Hypertext Transfer Protocol Secure (HTTPS)-compliant web server and may be deployed as a publically accessible web application that is available outside a firewall. The control server 124, in one embodiment, is implemented using Ruby on Rails™ technology,
The virtualization service 130 accesses the storage 144 of the network storage system 140 to obtain machine images in order to load the associated clustered application 132. The machine images can be uploaded to the network storage system by the control server 124 utilizing an access interface 142 provided with the network storage system 140. As mentioned above, the machine images obtained b the virtualization service 130 include a machine image for one or more virtual nodes running one or more load balancers, a machine image for one or more virtual nodes running one or more application nodes, and a machine image for one or more virtual nodes running one or more database nodes. The communications from the clustered application 132 to the control server 124, may include enforcing sequential start sequence of the clustered application 132 and providing notifications to cluster nodes of the clustered application 132 as the individual nodes of clustered application 132 become available, as well as providing notifications to cluster nodes of the clustered application 132 when the size of the cluster is increased or decreased.
The hosted service system 120 further includes a secure networking client 126 to provide a bidirectional, encrypted, compressed connection between a machine in the end-user's secure network environment (e.g., the client computer system 110) and a virtual node running within the virtualization infrastructure (t)e clustered application 132). The networking client 126 manages various aspects of transmission control protocol (TCP) traffic forwarding, encryption, and network discovery, such that the user can access the clustered application 132 as if it was running locally on the user's machine. In this mode, the user's network security envelope is extended to surround the clustered application 132 using comparable levels of encryption and protection against network security threats.
A diagrammatic representation 200 of a tree-tiered clustered computing application is shown in FIG. 2. As shown in FIG. 2, a cluster 210 comprises a load balancing tier comprising a toad balancer node 220, t application tier comprising two application server nodes 232 and 234, and a database tier comprising a primary database node 242 and a database failover replica node 244.
FIG. 3 is a block diagram illustrating anode in a clustered application hosted by a virtual instance of a machine, in accordance with an example embodiment. As shown in FIG. 3, the system 300 includes a virtual instance 320 that is in communication with a public network storage system 350, a client computer system 360, and a control server 370. The virtual instance 320, which is a node in a cluster of nodes that together host a clustered computing application, comprises an operating system 324, a computing application 322, and an agent 330. The computing application 322 may be a load balancer (if the virtual instance 320 is a load balancer node in the cluster), a database server (if the virtual instance 320 is a database node in the cluster), or an application server (if the virtual instance 320 is an application node in the cluster).
The agent 330 is provided to permit communications between the virtual instance 320 and the network storage system 350, the client computer system 360, and the control server 370. The agent 330 includes an operating system (OS) adapter 332 to facilitate communication between the agent 330 and the operating system 324 and an application interface 334 to facilitate communications between the computing application 322 and the agent 320. A network storage interface 338 is configured to facilitate communications between the network storage system 350 and the agent 330. A network component 340 is configured to facilitate communications between the client computer system 360 and the agent 330. A web server 342 is configured to facilitate communications between the control server 370 and the agent 330. Another component of the agent 230 is a cluster listener 344. The cluster listener 344 that subscribes to cluster change messages the cluster listener 344, upon receiving of a cluster change message, makes changes to the state of the computing application 322 based on the change to the cluster.
The control server 370, in one example embodiment, is a web server that provides a web application architecture, in which objects are modeled within a relational database and actions performed on those objects are methods within a set of controllers. As mentioned above, the control server 370 is configured to enforce the start sequence of the cluster and to provide change notifications to the nodes in the cluster, using asynchronous messaging system. The control server 370 keeps track of the state of the nodes in the cluster and the links between the nodes, and also supports elastic scalability of the cluster by managing automatic changes in the size of the cluster. Some components of the control server 370 are described with reference to FIG. 4.
FIG. 4 is a block diagram illustrating a system 400 for provisioning and managing a clustered computing application deployed on a cloud, according to one example embodiment. As shown in FIG. 4, the system 400 includes a cluster launch detector 402, a cluster status monitor 404, a configuration module 406, a publishing module 408, a cluster manager 410, and a rules engine 412. The cluster launch detector 402 may be configured to detect a request to launch the clustered computing application on the cluster of nodes and also to detect that a clustered computing application has been launched on a cluster of nodes, each node in the cluster being a virtual instance of a machine within a virtualization service.
The cluster status monitor 404 may be configured to monitor status of the nodes in the cluster to detect availability various nodes, e.g., the database server, within the virtualization service. The configuration module 406 may be configured to configure a node, e.g., to configure a load balancer that delivers messages to one or more nodes executing instances of the application server. The publishing module 408 may be configured to issue notification messages addressed to nodes in the cluster. The notification messages may include information that may be used by a node for connecting to the database server provided in the cluster and information for discovering other nodes in the cluster.
The cluster manager 410 may be configured to detect a request to change the size of the cluster and to perform the change in response to the request. The cluster manager 410 cooperates with the rules engine 412. The rules engine 412 may be configured to periodically access various measurements associated with the cluster, evaluate one or more rules based on the measurements, and produce a cluster size change recommendation or request. The cluster manager 410 may be configured to process the cluster size change request. The modules illustrated in FIG. 4 may be implemented as software, hardware, or a combination of both. Various operations performed by the system 400, according to an example embodiment, are discussed with reference to FIG. 5.
FIG. 5 is a flow chart illustrating a method 500 to provision a clustered computing application deployed on a cloud, in accordance with an example embodiment. The method 500 may be performed by processing logic that may comprise hardware, software (such as run on a general purpose computer system programmed to perform particular functions pursuant to instructions from program software or on a dedicated machine), or a combination of both. The processing logic, according to example embodiments, may reside in or comprise any of the modules shown in FIG. 4.
As shown in FIG. 5, the method 500 commences with operation 510, where the cluster launch detector 402 of FIG. 4 detects a request to launch a clustered computing application. As a clustered computing application executes on a cluster of nodes, a clustered computing application may be referred to as merely a cluster. In order to launch a clustered computing application that utilizes as three-tier topology as shown in FIG. 2, all nodes of each tier need to be started within the virtualization service in a manner that permits the nodes of the cluster to cooperate with each other. An example start sequence for a cluster may be described with reference to operations 520-540.
In one example embodiment, in response to a request to launch a clustered computing application, all cluster nodes in the application tier and the database tier are provisioned and started within a virtualization service. A load balancer is provisioned but not configured until all nodes of the application tier and the database have been started. The control server 124 of FIG. 1 monitors the status of the cluster nodes, awaiting the availability of the primary database node. Prior to the availability of the primary database node, any application node reaching the running state will pause during its start sequence to await notification that the primary database node is available. At operation 520, the cluster status monitor 404 of FIG. 4 commences monitoring the status of the nodes in the cluster to detect availability of the database server (e.g., primary database) within the virtualization service.
After the primary database becomes available, the publishing module 408 of FIG. 4 generates asynchronous notification messages addressed to application nodes and to the database failover replica. These messages are stored within a public storage service (such as, e.g., Amazon S3 service). These messages persist within the public storage service until they are retrieved by each addressee node in the cluster. Any node within the cluster that is already running detects and retrieves its notification message. Nodes that have not yet reached the running state retrieve their notification message during their boot sequence. A notification message generated by the publishing module 408 includes connection information for the primary database, and discovery information for the other nodes, if necessary. Thus, at operation 530, in response to detecting availability of the database server, a notification message addressed to the application server is issued.
Each application node will then configure itself to join the cluster and connect to the primary database using the contents of the notification message. The database failover replica will also configure itself for replication of the primary database instance. As is shown in FIG. 4, in response to detecting that all nodes in the application tier and the database tier have started, the configuration module 406 of FIG. 4 configures the load balancer 220 that then becomes available for delivering messages to the application server. While the operations listed in FIG. 4 refer to one application server, the application tier of the cluster may include two or more application servers, each application server running on a separate instance of a virtual machine.
After the load balancer 220 has been configured such that it can deliver massages to the application server node 230, the cluster launch detector 402 detects, at operation 540, that the clustered computing application 210 has been launched on a cluster of nodes, wherein each node in the cluster is a virtual instance of a machine within a virtualization service. Upon completion of this sequence, the cluster is available and ready for use in all respects. The load balancer 220 is assigned a dynamically generated Internet protocol (IP) address and hostname when it is provisioned, which is used to access the cluster. The generated hostname may be replaced with a vanity hostname and a corresponding domain name system (DNS) entry, for each customer in a commercial offering.
At operation 550, the cluster manager 410 of FIG. 4 detects a request to change a size of the cluster, e.g., a request to stop anode in the cluster or start another application server node, to start another database server node or to start another load balancer. The request to stop a node or to start a new node may be issued in response to an operation of a user or as a result of execution of one or more rules by the rules engine 412 of FIG. 4. At operation 560, the cluster manager 410 performs the change in response to the request.
For example, when the request to change a size of the cluster is a request to change the size of the application tier, either adding or removing application nodes, the control server 124 may operate as described below. Additional cluster nodes in the application tier are started or stopped as requested. Asynchronous notification messages addressed to all application nodes and database nodes are issued. In one embodiment, when adding nodes to the cluster, notification messages contain the same information that a cluster node would receive during the cluster start sequence. When removing nodes from the cluster, notification messages contain information about the removed nodes. Once the cluster size change has completed and all affected nodes have started or stopped, respectively, then the load balancer is reconfigured with the changes. Upon completion of this sequence, the cluster size has been changed and the newly configured cluster is ready for use in respects.
FIG. 6 is a diagrammatic representation of a user interface for displaying topology of a clustered application to a user, in accordance with an example embodiment. A user interface 600, as shown in FIG. 6 provides a visual representation of the three tiers of a clustered application, where a load balancing tier includes one load balancer node (610), the application tier includes three application server nodes (612, 614, and 616), and the database tier includes two database server nodes (622 and 624). The database server node 622 may host the primary database, and the database server node 624 may host the database failover replica. The user interface 600 may also display one or more visual controls to permit a user (e.g., an administrator) to start, stop, grow, shrink, or share a cluster. Each cluster node may be displayed to provide performance metrics that are collected periodically for every virtual instance that is part of the cluster, along with an updated dashboard gauge view to reflect the health of the cluster as a whole. In one embodiment, the user interface 600 may be implemented using Flex®.
In one example embodiment, cluster type specifications that describe the contents and sizing of the cluster tiers may be created using XML. This approach provides an extensible mechanism to define new cluster topologies for using clustered applications. An example of a cluster definition for the default three-tier web conferencing application is shown below in Table 1.
TABLE 1
<cluster-definition>
 <name>Connect Pro 7.5 Standard</name>
 <tier-definition>
  <name>Load Balancers</name>
  <type>LB</type>
  <elastic-enabled>false</elastic-enabled>
  <min-size>1</min-size>
  <max-size>1</max-size>
 </tier-definition>
 <tier-definition>
  <name>Connect Pro Application Servers</name>
  <type>APP</type>
  <elastic-enabled>true</elastic-enabled>
  <min-size>2</min-size>
  <node-type>
  <name>Connect Pro 7.5 Node</name>
  <ami-id>ami-d1fd13b8</ami-id>
  <instance-type>m1.large</instance-type>
  </node-type>
 </tier-definition>
 <tier-definition>
  <name>SQL Server 2005 Instances</name>
  <type>DB</type>
  <elastic-enabled>false</elastic-enabled>
  <min-size>1</min-size>
  <max-size>1</max-size>
  <node-type>
  <name>SQL Server 2005 Primary Database</name>
  <ami-id>ami-d93ed2b0</ami-id>
  <instance-type>m1.large</instance-type>
  </node-type>
 </tier-definition>
</cluster-definition>
The cluster definition, such as the definition shown in Table 1 above, is used by the control server 124 of FIG. 1 and also by the user interface 600 of FIG. 6 to specify and coordinate cluster functions. In the control server 124, the cluster definition is used when starting a cluster and also during elastic scaling functions. In the user interface 600, the cluster definition is used to describe cluster options and selectable or optional cluster behavior.
As mentioned above, a cloud-based deployment of a clustered application may be configured to permit elastic scalability where a node from any of the tiers may be added to or removed from the cluster. Rule-based elastic scalability may be implemented using the rules engine 412 of FIG. 4 that is configured to evaluate a set of logical rules that have been specified for a given cluster. Rule expressions can be composed of any combination of arithmetic operators and data available within the controller. Some examples of available data include:
    • Load Measurements, such as the average round trip time of a performance test Uniform Resource Locator (URL);
    • Health Tests, such as the availability or response time of a health check URL;
    • Operating System or Application Metrics, such as a central processing unit (CPU) utilization threshold;
    • Usage Patterns, such as time-based or calendar-based scaling directives;
    • Cost Constraints, such as minimum or maximum cluster sizes; and
    • User-Specified Data and Logic, such as the result of a custom database query.
Rules may be specified individually for any cluster within the system, e.g., using a language grammar derived from Ruby on Rails™, using XML rule specification format, or any other rule format. Rules may also be specified collectively for any set of clusters belonging to a single user. The set of rules for a given cluster may be evaluated in priority order, where priority is defined as a value, e.g., in [1, 100]—with 1 as the highest priority and 100 as the lowest—and each rule is assigned a priority value. Each rule may also specify that further rule evaluation for the duster is to continue or halt depending on the evaluation output of the rule.
In one example embodiment, a background thread within the controller is responsible for periodically evaluating the set of rules and autonomously modifying the state of each cluster accordingly. The background thread may execute with a configurable frequency (e.g., the rules may be evaluated every 30 seconds), and the results of the evaluation of each rule and any cluster commands that were performed are stored in an event log in the system database. A set of default rules for basic cluster management may be provided by default for any cluster. An editor to compose and register custom rules for a cluster may be made available via the cluster dashboard view.
FIG. 7 is a diagrammatic representation of a machine in the example electronic form of a computer system 700 within which a set of instructions, for causing the machine to perform any one or more of the methodologies discussed herein, may be executed. In various embodiments, the machine operates as a standalone device or may be connected (e.g., networked) to other machines in a networked deployment, the machine may operate in the capacity of a server or a client machine in server-client network environment, or as a peer machine in a peer-to-peer (or distributed) network environment. The machine may be a personal computer (P( ) a tablet PC, a set-top box (STB), a Personal Digital Assistant (PDA), a cellular telephone, a portable music player (e.g., a portable hard drive audio device such as an “Moving Picture Experts Group (MPEG) Layer 3” (MP3) player), a web appliance, a network router, switch or bridge, or any machine capable of executing a set of instructions (sequential or otherwise) that specify actions to be taken by that machine. Further, while only a single machine is illustrated, the term “machine” shall also be taken to include any collection of machines that individually or jointly execute a set (or multiple sets) of instructions to perform any one or more of the methodologies discussed herein.
The example computer system 700 includes a processor 702 (e.g., a central processing unit (CPU), a graphics processing unit (GPU) or both), a main memory 704 and a static memory 706, which communicate with each other via a bus 708. The computer system 700 may further include a video display unit 710 (e.g., a liquid crystal display (LCD) or a cathode ray tube (CRT)). The computer system 700 also includes an alphanumeric input device 712 (e.g., a keyboard), a user interface (UT) cursor control device 714 (e.g., a mouse), a disk drive unit 716, a signal generation device 718 (e.g., a speaker and a network interface device 720.
The disk drive unit 716 includes a computer-readable (or machine-readable) medium 722 on which is stored one or more sets of instructions and data structures (e.g., software 724) embodying or utilized by any one or more of the methodologies or functions described herein. The software 724 may also reside, completely or at least partially, within the main memory 704 and/or within the processor 702 during execution thereof by the computer system 700, the main memory 704 and the processor 702 also constituting machine-readable media.
The software 724 may further be transmitted or received over a network 726 via the network interface device 720 utilizing any one of a number of well-known transfer protocols (e.g., Hyper Text Transfer Protocol (HTTP)).
While the machine-readable medium 722 is shown in an example embodiment to be a single medium, the term “machine-readable medium” should be taken to include a single medium or multiple media (e.g., a centralized or distributed database, and/or associated caches and servers) that store the one or more sets of instructions. The term “machine-readable medium” shall also be taken to include any medium that is capable of storing or encoding a set of instructions for execution by the machine and that cause the machine to perform any one or more of the methodologies of the present invention, or that is capable of storing or encoding data structures utilized by or associated with such a set of instructions. The term “machine-readable medium” shall accordingly be taken to include, but not be limited to, solid-state memories, optical and magnetic media. Such medium may also include, without limitation, hard disks, floppy disks, flash memory cards, digital video disks, random access memory (RAMO, read only memory (ROMs), and the like.
Thus, method and system to provision and manage a clustered computing application deployed on a cloud have been described. While some example approaches described herein may be used with ADOBE® products, the techniques described herein may be utilized beneficially with various other products.
The embodiments described herein may be implemented in an operating environment comprising software installed on a computer, in hardware, or in a combination of software and hardware. Although embodiments have been described with reference to specific example embodiments, it will be evident that various modifications and changes may be made to these embodiments without departing from the broader spirit and scope of the invention. Accordingly, the specification and drawings are to be regarded in an illustrative rather than a restrictive sense.

Claims (20)

The invention claimed is:
1. A method comprising:
receiving a request to launch a clustered computing application on a cluster of nodes, each node in the cluster being a virtual instance of a machine within a virtualization service;
monitoring, using a processor of a control server, a status of the nodes in the cluster to determine an availability of a database server within the virtualization service;
in response to the determining of the availability of the database server, sending a notification message to an application server, the notification message including information for the application server to connect to the database server;
in response to determining that the database server and the application server have started, configuring a load balancer to deliver messages to the application server; and
subsequent to launching the clustered computing application, automatically changing a size of the cluster based on data for the clustered computing application and on cluster-sizing rules.
2. The method of claim 1, wherein the load balancer is configured to deliver messages to the application server in response to determining that all required servers have started.
3. The method of claim 1, wherein the database server is hosted on at least one server of the cluster.
4. The method of claim 1, wherein automatically changing the size of the cluster comprises:
receiving a request to change the size of the cluster; and
performing the change in response to the request, wherein performing the change comprises at least one of the following:
starting an additional node hosting at least one of an additional database server or an additional application server, or
stopping an existing node hosting at least one of an existing database server or an existing application server.
5. The method of claim 1, wherein automatically changing the size of the cluster comprises:
receiving a request to change the size of the cluster; and
performing the change in response to the request, wherein the request to change the size of the cluster is in response to executing one or more rules provided by a rules engine.
6. The method of claim 1, wherein the notification message further includes information for discovering other nodes in the cluster.
7. The method of claim 1, further comprising issuing a message addressed to a database failover replica in response to the determining of the availability of the database server, the database failover replica to configure itself for replication of the database server, wherein the database server is a primary database instance.
8. The method of claim 1, wherein the clustered computing application comprises:
a load balancing tier comprising the load balancer executing on a first node in the cluster;
an application tier comprising the application server executing on a second node in the cluster; and
a database tier comprising the database server executing on a third node in the cluster.
9. A tangible machine-readable storage device in communication with at least one processor, the tangible machine-readable storage device having instructions which when executed by the at least one processor, cause a control server to perform operations comprising:
receiving a request to launch a clustered computing application on a cluster of nodes, each node in the cluster being a virtual instance of a machine within a virtualization service;
determining that a database server within the virtualization service is available;
in response to determining the database server is available, sending a notification message to an application server, the notification message including information for connecting to the database server;
in response to determining that the database server and the application server have started, configuring a load balancer to deliver messages to the application server; and
subsequent to launching the clustered computing application, changing a size of the cluster based on data for the clustered computing application and on cluster-sizing rules.
10. The tangible machine-readable storage device of claim 9, wherein the load balancer is configured to deliver messages to the application server in response to determining that all required servers have started.
11. The tangible machine-readable storage device of claim 9, wherein the database server is hosted on at least one server of the cluster.
12. The tangible machine-readable storage device of claim 9, wherein changing the size of the cluster comprises:
receiving a request to change the size of the cluster; and
performing the change in response to the request, wherein performing the change comprises at least one of the following:
starting an additional node hosting at least one of an additional database server or an additional application server, or
stopping an existing node hosting at least one of an existing database server or an existing application server.
13. The tangible machine-readable storage device of claim 9, wherein changing the size of the cluster comprises:
receiving a request to change the size of the cluster; and
performing the change in response to the request, wherein the request to change the size of the cluster is in response to executing one or more rules provided by a rules engine.
14. The tangible machine-readable storage device of claim 9, wherein the notification message further includes information for discovering other nodes in the cluster.
15. The tangible machine-readable storage device of claim 9, wherein the operations further comprise issuing a message addressed to a database failover replica in response to determining the database server is available, the database failover replica to configure itself for replication of the database server, wherein the database server is a primary database instance.
16. The tangible machine-readable storage device of claim 9, wherein the clustered computing application comprises:
a load balancing tier comprising the load balancer executing on a first node in the cluster,
an application tier comprising the application server executing on a second node in the cluster, and
a database tier comprising the database server executing on a third node in the cluster.
17. A computer-implemented system comprising:
one or more processors of a control server; and
one or more computer storage media storing computer-executable instructions that, when executed by the one or more processors, implement a method comprising:
receiving a request to launch a clustered computing application on a cluster of nodes, each node in the cluster being a virtual instance of a machine within a virtualization service,
monitoring a status of the nodes in the cluster to determine an availability of a database server within the virtualization service,
in response to the determining of the availability of the database server, sending a notification message addressed to an application server, the notification message including information for connecting to the database server,
in response to determining that the database server and the application server have started, configuring a load balancer to deliver messages to the application server, and
changing a size of the cluster based on data for the clustered computing application and on cluster-sizing rules.
18. The computer-implemented system of claim 17, wherein the load balancer is configured to deliver messages to the application server in response to detecting that all required servers have started.
19. The computer-implemented system of claim 17, wherein changing the size of the cluster comprises:
receiving a request to change the size of the cluster; and
performing the change in response to the request, wherein performing the change comprises at least one of the following:
starting an additional node hosting at least one of an additional database server or an additional application server, or
stopping an existing node hosting at least one of an existing database server or an existing application server.
20. The computer-implemented system of claim 17, wherein changing the size of the cluster comprises:
receiving a request to change the size of the cluster; and
performing the change in response to the request, wherein the request to change the size of the cluster is in response to executing one or more rules provided by a rules engine.
US13/854,758 2010-07-02 2013-04-01 Provisioning and managing a cluster deployed on a cloud Active 2030-09-12 US9270521B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US13/854,758 US9270521B2 (en) 2010-07-02 2013-04-01 Provisioning and managing a cluster deployed on a cloud

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/830,080 US8412810B1 (en) 2010-07-02 2010-07-02 Provisioning and managing a cluster deployed on a cloud
US13/854,758 US9270521B2 (en) 2010-07-02 2013-04-01 Provisioning and managing a cluster deployed on a cloud

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
US12/830,080 Continuation US8412810B1 (en) 2010-07-02 2010-07-02 Provisioning and managing a cluster deployed on a cloud

Publications (2)

Publication Number Publication Date
US20130227091A1 US20130227091A1 (en) 2013-08-29
US9270521B2 true US9270521B2 (en) 2016-02-23

Family

ID=47989914

Family Applications (2)

Application Number Title Priority Date Filing Date
US12/830,080 Active 2031-06-07 US8412810B1 (en) 2010-07-02 2010-07-02 Provisioning and managing a cluster deployed on a cloud
US13/854,758 Active 2030-09-12 US9270521B2 (en) 2010-07-02 2013-04-01 Provisioning and managing a cluster deployed on a cloud

Family Applications Before (1)

Application Number Title Priority Date Filing Date
US12/830,080 Active 2031-06-07 US8412810B1 (en) 2010-07-02 2010-07-02 Provisioning and managing a cluster deployed on a cloud

Country Status (1)

Country Link
US (2) US8412810B1 (en)

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160142314A1 (en) * 2014-11-14 2016-05-19 Nicira, Inc. Stateful services on stateless clustered edge
US9866473B2 (en) 2014-11-14 2018-01-09 Nicira, Inc. Stateful services on stateless clustered edge
US9876714B2 (en) 2014-11-14 2018-01-23 Nicira, Inc. Stateful services on stateless clustered edge
US10951584B2 (en) 2017-07-31 2021-03-16 Nicira, Inc. Methods for active-active stateful network service cluster
US11153122B2 (en) 2018-02-19 2021-10-19 Nicira, Inc. Providing stateful services deployed in redundant gateways connected to asymmetric network
US11178217B2 (en) 2017-01-09 2021-11-16 International Business Machines Corporation DNS-based in-packet service version tagging
US11281503B2 (en) 2019-05-05 2022-03-22 Mastercard International Incorporated Automated core services bootstrap for on-premises clusters
US11296984B2 (en) 2017-07-31 2022-04-05 Nicira, Inc. Use of hypervisor for active-active stateful network service cluster
US11533255B2 (en) 2014-11-14 2022-12-20 Nicira, Inc. Stateful services on stateless clustered edge
US11570092B2 (en) 2017-07-31 2023-01-31 Nicira, Inc. Methods for active-active stateful network service cluster
US11593367B1 (en) 2021-09-29 2023-02-28 Amazon Technologies, Inc. Selecting between hydration-based scanning and stateless scale-out scanning to improve query performance
US20230195700A1 (en) * 2021-12-22 2023-06-22 Nutanix, Inc. Autonomous database management system
US11727003B2 (en) 2021-11-26 2023-08-15 Amazon Technologies, Inc. Scaling query processing resources for efficient utilization and performance
US11799761B2 (en) 2022-01-07 2023-10-24 Vmware, Inc. Scaling edge services with minimal disruption

Families Citing this family (76)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9448790B2 (en) 2010-04-26 2016-09-20 Pivotal Software, Inc. Rapid updating of cloud applications
US9772831B2 (en) 2010-04-26 2017-09-26 Pivotal Software, Inc. Droplet execution engine for dynamic server application deployment
US8412810B1 (en) 2010-07-02 2013-04-02 Adobe Systems Incorporated Provisioning and managing a cluster deployed on a cloud
US8560699B1 (en) * 2010-12-28 2013-10-15 Amazon Technologies, Inc. Enforceable launch configurations
US9015710B2 (en) 2011-04-12 2015-04-21 Pivotal Software, Inc. Deployment system for multi-node applications
US9251481B2 (en) * 2011-06-13 2016-02-02 Accenture Global Services Limited Distributed metering and monitoring system
US8725875B2 (en) * 2011-06-21 2014-05-13 Intel Corporation Native cloud computing via network segmentation
US9170798B2 (en) 2012-03-02 2015-10-27 Vmware, Inc. System and method for customizing a deployment plan for a multi-tier application in a cloud infrastructure
US9519520B2 (en) * 2011-10-25 2016-12-13 Viasat, Inc. Federated, policy-driven service meshes for distributed software systems
US8725798B2 (en) 2011-12-15 2014-05-13 Microsoft Corporation Provisioning high performance computing clusters
US9047133B2 (en) 2012-03-02 2015-06-02 Vmware, Inc. Single, logical, multi-tier application blueprint used for deployment and management of multiple physical applications in a cloud environment
US9052961B2 (en) 2012-03-02 2015-06-09 Vmware, Inc. System to generate a deployment plan for a cloud infrastructure according to logical, multi-tier application blueprint
US10031783B2 (en) 2012-03-02 2018-07-24 Vmware, Inc. Execution of a distributed deployment plan for a multi-tier application in a cloud infrastructure
US9430295B1 (en) * 2012-03-29 2016-08-30 Infoblox Inc. Internet protocol address management (IPAM) integration with a plurality of virtualization tiers in the virtual cloud
US8965921B2 (en) 2012-06-06 2015-02-24 Rackspace Us, Inc. Data management and indexing across a distributed database
US9348652B2 (en) 2012-07-02 2016-05-24 Vmware, Inc. Multi-tenant-cloud-aggregation and application-support system
WO2014035309A1 (en) * 2012-09-03 2014-03-06 Telefonaktiebolaget L M Ericsson (Publ) Re-configuration in cloud computing environments
US9819548B2 (en) * 2013-01-25 2017-11-14 Cisco Technology, Inc. Shared information distribution in a computer network
US10057173B2 (en) * 2013-05-28 2018-08-21 Convida Wireless, Llc Load balancing in the Internet of things
EP3063657B1 (en) 2013-10-30 2021-12-01 Hewlett Packard Enterprise Development LP Monitoring a cloud service modeled as a topology
US10284427B2 (en) 2013-10-30 2019-05-07 Hewlett Packard Enterprise Development Lp Managing the lifecycle of a cloud service modeled as topology decorated by a number of policies
WO2015065356A1 (en) 2013-10-30 2015-05-07 Hewlett-Packard Development Company, L.P. Topology remediation
WO2015065359A1 (en) 2013-10-30 2015-05-07 Hewlett-Packard Development Company, L.P. Modifying realized topologies
EP3063658A4 (en) 2013-10-30 2017-05-24 Hewlett-Packard Enterprise Development LP Realized topology system management database
EP3063662A4 (en) 2013-10-30 2017-06-21 Hewlett-Packard Enterprise Development LP Facilitating autonomous computing within a cloud service
WO2015065374A1 (en) 2013-10-30 2015-05-07 Hewlett-Packard Development Company, L.P. Management of the lifecycle of a cloud service modeled as a topology
WO2015065355A1 (en) 2013-10-30 2015-05-07 Hewlett-Packard Development Company, L. P. Stitching an application model to an infrastructure template
WO2015065389A1 (en) 2013-10-30 2015-05-07 Hewlett-Packard Development Company, L.P. Execution of a topology
US9135259B2 (en) * 2013-11-06 2015-09-15 Linkedin Corporation Multi-tenancy storage node
US9946889B2 (en) * 2013-11-27 2018-04-17 Nakivo, Inc. Systems and methods for multi-tenant data protection application
CN103595574B (en) * 2013-12-02 2017-01-18 重庆市三文盾科技有限责任公司 Computer network cloud start-up system
US9916188B2 (en) 2014-03-14 2018-03-13 Cask Data, Inc. Provisioner for cluster management system
US9667711B2 (en) 2014-03-26 2017-05-30 International Business Machines Corporation Load balancing of distributed services
US10339010B1 (en) 2014-04-05 2019-07-02 Bruce Talley Systems and methods for synchronization of backup copies
US9727439B2 (en) 2014-05-28 2017-08-08 Vmware, Inc. Tracking application deployment errors via cloud logs
US9652211B2 (en) 2014-06-26 2017-05-16 Vmware, Inc. Policy management of deployment plans
US9712604B2 (en) 2014-05-30 2017-07-18 Vmware, Inc. Customized configuration of cloud-based applications prior to deployment
US10884774B2 (en) 2014-06-16 2021-01-05 Hewlett Packard Enterprise Development Lp Virtual node deployments of cluster-based applications modified to exchange reference to file systems
US9639691B2 (en) 2014-06-26 2017-05-02 Vmware, Inc. Dynamic database and API-accessible credentials data store
US11228637B2 (en) 2014-06-26 2022-01-18 Vmware, Inc. Cloud computing abstraction layer for integrating mobile platforms
US20160048408A1 (en) * 2014-08-13 2016-02-18 OneCloud Labs, Inc. Replication of virtualized infrastructure within distributed computing environments
US10628186B2 (en) * 2014-09-08 2020-04-21 Wirepath Home Systems, Llc Method for electronic device virtualization and management
US10904111B2 (en) 2014-10-02 2021-01-26 International Business Machines Corporation Lightweight framework with dynamic self-organizing coordination capability for clustered applications
US9256467B1 (en) 2014-11-11 2016-02-09 Amazon Technologies, Inc. System for managing and scheduling containers
US9674639B2 (en) 2015-02-24 2017-06-06 At&T Intellectual Property I, L.P. Method and apparatus for virtualized network function chaining management
US20160285957A1 (en) * 2015-03-26 2016-09-29 Avaya Inc. Server cluster profile definition in a distributed processing network
US10412020B2 (en) 2015-04-30 2019-09-10 Amazon Technologies, Inc. Background processes in update load balancers of an auto scaling group
US10341426B2 (en) * 2015-04-30 2019-07-02 Amazon Technologies, Inc. Managing load balancers associated with auto-scaling groups
US10038640B2 (en) 2015-04-30 2018-07-31 Amazon Technologies, Inc. Managing state for updates to load balancers of an auto scaling group
US10778664B1 (en) * 2015-05-14 2020-09-15 Amazon Technologies, Inc. Software asset management of computer systems and virtual instances for reporting and optimization
US10834054B2 (en) * 2015-05-27 2020-11-10 Ping Identity Corporation Systems and methods for API routing and security
CN107924332B (en) * 2015-07-09 2023-06-06 意大利电信股份公司 ICT service supply method and system
US10291513B2 (en) 2015-11-30 2019-05-14 At&T Intellectual Property I, L.P. Topology aware load balancing engine
CN106027623A (en) * 2016-03-14 2016-10-12 中国科学院计算技术研究所 Distributed cluster state management method and system thereof
US10069869B2 (en) 2016-05-17 2018-09-04 Amazon Technologies, Inc. Versatile autoscaling
CN106131122A (en) * 2016-06-21 2016-11-16 浪潮电子信息产业股份有限公司 A kind of method and device disposing load balancing service
US9934121B2 (en) * 2016-06-24 2018-04-03 Microsoft Technology Licensing, Llc Intent-based interaction with cluster resources
US11443026B2 (en) * 2016-10-20 2022-09-13 International Business Machines Corporation Synchronizing data across multiple instances of an application in a cloud
US10587580B2 (en) 2016-10-26 2020-03-10 Ping Identity Corporation Methods and systems for API deception environment and API traffic control and security
US10409642B1 (en) 2016-11-22 2019-09-10 Amazon Technologies, Inc. Customer resource monitoring for versatile scaling service scaling policy recommendations
US10614055B2 (en) * 2016-12-29 2020-04-07 Emc Ip Holding Cimpany Llc Method and system for tree management of trees under multi-version concurrency control
CN107547250A (en) * 2017-06-26 2018-01-05 新华三云计算技术有限公司 The method and apparatus that database is disposed in cloud computing management platform
US10699010B2 (en) 2017-10-13 2020-06-30 Ping Identity Corporation Methods and apparatus for analyzing sequences of application programming interface traffic to identify potential malicious actions
CN108459883A (en) * 2018-01-11 2018-08-28 杭州魔点科技有限公司 application program chain configuration management method and device
US11044336B2 (en) * 2018-01-29 2021-06-22 Salesforce.Com, Inc. Systems, methods, and apparatuses for capturing data change events in a cloud based computing environment
US10812585B2 (en) * 2018-07-31 2020-10-20 EMC IP Holding Company LLC Adaptive connection policy for dynamic load balancing of client connections
US10809987B2 (en) * 2018-08-14 2020-10-20 Hyperblox Inc. Software acceleration platform for supporting decomposed, on-demand network services
US10884815B2 (en) 2018-10-29 2021-01-05 Pivotal Software, Inc. Independent services platform
CN109885613A (en) * 2019-01-03 2019-06-14 江苏智途科技股份有限公司 Clustering data rule processing method
US11496475B2 (en) 2019-01-04 2022-11-08 Ping Identity Corporation Methods and systems for data traffic based adaptive security
US11669365B1 (en) 2019-08-26 2023-06-06 Amazon Technologies, Inc. Task pool for managed compute instances
CN110633151B (en) * 2019-09-20 2022-09-02 北京小米移动软件有限公司 Method, device and storage medium for balancing distributed message issuing cluster partitions
US10986174B1 (en) * 2020-09-18 2021-04-20 EMC IP Holding Company LLC Automatic discovery and configuration of server nodes
CN112764825B (en) * 2020-12-30 2023-12-29 望海康信(北京)科技股份公司 Service integration system, corresponding device and storage medium
US11500893B2 (en) * 2021-01-27 2022-11-15 Salesforce, Inc. System and method for dynamically finding database nodes and replication state
CN113905057A (en) * 2021-09-30 2022-01-07 卡斯柯信号有限公司 Multi-node data synchronization method, apparatus, and medium for intelligent yard system

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050080982A1 (en) * 2003-08-20 2005-04-14 Vasilevsky Alexander D. Virtual host bus adapter and method
US20050080885A1 (en) * 2003-09-26 2005-04-14 Imran Ahmed Autonomic monitoring for web high availability
US20050160424A1 (en) * 2004-01-21 2005-07-21 International Business Machines Corporation Method and system for grid-enabled virtual machines with distributed management of applications
US20090119642A1 (en) * 2007-11-05 2009-05-07 Sap Ag System and Method of Executing a Dynamic Program in a Structured Environment
US20090193414A1 (en) * 2004-01-21 2009-07-30 International Business Machines Corporation Method and System for a Grid-Enabled Virtual Machine with Movable Objects
US7941432B2 (en) * 2006-11-21 2011-05-10 Globalnotice, Inc. Providing notice via the internet
US8069435B1 (en) * 2003-08-18 2011-11-29 Oracle America, Inc. System and method for integration of web services
US20110320224A1 (en) * 2010-06-28 2011-12-29 Abir Sen Systems and Methods for Customizing Product Selections Based on Member Parameters and Providing the Selections to Members for Purchase
US8412810B1 (en) 2010-07-02 2013-04-02 Adobe Systems Incorporated Provisioning and managing a cluster deployed on a cloud

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8069435B1 (en) * 2003-08-18 2011-11-29 Oracle America, Inc. System and method for integration of web services
US20050080982A1 (en) * 2003-08-20 2005-04-14 Vasilevsky Alexander D. Virtual host bus adapter and method
US20050080885A1 (en) * 2003-09-26 2005-04-14 Imran Ahmed Autonomic monitoring for web high availability
US7689685B2 (en) * 2003-09-26 2010-03-30 International Business Machines Corporation Autonomic monitoring for web high availability
US20050160424A1 (en) * 2004-01-21 2005-07-21 International Business Machines Corporation Method and system for grid-enabled virtual machines with distributed management of applications
US20090193414A1 (en) * 2004-01-21 2009-07-30 International Business Machines Corporation Method and System for a Grid-Enabled Virtual Machine with Movable Objects
US7941432B2 (en) * 2006-11-21 2011-05-10 Globalnotice, Inc. Providing notice via the internet
US20090119642A1 (en) * 2007-11-05 2009-05-07 Sap Ag System and Method of Executing a Dynamic Program in a Structured Environment
US20110320224A1 (en) * 2010-06-28 2011-12-29 Abir Sen Systems and Methods for Customizing Product Selections Based on Member Parameters and Providing the Selections to Members for Purchase
US8412810B1 (en) 2010-07-02 2013-04-02 Adobe Systems Incorporated Provisioning and managing a cluster deployed on a cloud

Non-Patent Citations (8)

* Cited by examiner, † Cited by third party
Title
"U.S. Appl. No. 12/830,080, Non Final Office Action mailed Aug. 7, 2012", 8 pgs.
"U.S. Appl. No. 12/830,080, Notice of Allowance mailed Nov. 30, 2012", 5 pgs.
"U.S. Appl. No. 12/830,080, Response filed Nov. 11, 2012 to Non-Final Office Action mailed Aug. 7, 2012", 9 pgs.
Liu et al., "Web Server Farm in the Cloud: Performance Evaluation and Dynamic Architecture", Lecture Notes in Computer Science, vol. 5931/2009, 369-380. Date Retrieved: Mar. 31, 2010 http://www.springerlink.com/content/573j262k2l3263m1/.
Rochwerger et al., "The RESERVOIR Model and Architecture for Open Federated Cloud Computing", IBM Systems Journal, 2009, 17 pages. Date Retrieved: Mar. 30, 2010 http://www.cs.umu.se/~elmroth/papers/reservoir-ibmsj08.pdf.
Rochwerger et al., "The RESERVOIR Model and Architecture for Open Federated Cloud Computing", IBM Systems Journal, 2009, 17 pages. Date Retrieved: Mar. 30, 2010 http://www.cs.umu.se/˜elmroth/papers/reservoir-ibmsj08.pdf.
Vecchiola et al., "Aneka: A Software Platform for .NET-based Cloud Computing", ARXIV e-prints, Jul. 2009, 30 pages. Date Retrieved: Mar. 29, 2010 http://adsabs.harvard.edu/abs/2009arXiv0907.4622V.
Zhang et al., "On-demand Mode of Legacy Desktop Software and its Automatic Deployment for Cloud-Computing Environment", Tsinghua National Laboratory for Information Science and Technology, Nov. 2009, 10 pages. Date Retrieved: Mar. 30, 2010 http://trac.nchc.org.tw/grid/raw-attachment/wiki/rock/virt-app/On-demand%20Mode%20of%20Legacy%20Desktop%20Software%20and%20Its%20Automatic%20Deployment%20for%20Cloud-Computing%20Environment.pdf.

Cited By (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9866473B2 (en) 2014-11-14 2018-01-09 Nicira, Inc. Stateful services on stateless clustered edge
US9876714B2 (en) 2014-11-14 2018-01-23 Nicira, Inc. Stateful services on stateless clustered edge
US10044617B2 (en) * 2014-11-14 2018-08-07 Nicira, Inc. Stateful services on stateless clustered edge
US11533255B2 (en) 2014-11-14 2022-12-20 Nicira, Inc. Stateful services on stateless clustered edge
US20160142314A1 (en) * 2014-11-14 2016-05-19 Nicira, Inc. Stateful services on stateless clustered edge
US11178217B2 (en) 2017-01-09 2021-11-16 International Business Machines Corporation DNS-based in-packet service version tagging
US11296984B2 (en) 2017-07-31 2022-04-05 Nicira, Inc. Use of hypervisor for active-active stateful network service cluster
US10951584B2 (en) 2017-07-31 2021-03-16 Nicira, Inc. Methods for active-active stateful network service cluster
US11570092B2 (en) 2017-07-31 2023-01-31 Nicira, Inc. Methods for active-active stateful network service cluster
US11153122B2 (en) 2018-02-19 2021-10-19 Nicira, Inc. Providing stateful services deployed in redundant gateways connected to asymmetric network
US11281503B2 (en) 2019-05-05 2022-03-22 Mastercard International Incorporated Automated core services bootstrap for on-premises clusters
US11579941B2 (en) 2019-05-05 2023-02-14 Mastercard International Incorporated Control cluster for multi-cluster container environments
US11593367B1 (en) 2021-09-29 2023-02-28 Amazon Technologies, Inc. Selecting between hydration-based scanning and stateless scale-out scanning to improve query performance
US11727003B2 (en) 2021-11-26 2023-08-15 Amazon Technologies, Inc. Scaling query processing resources for efficient utilization and performance
US20230195700A1 (en) * 2021-12-22 2023-06-22 Nutanix, Inc. Autonomous database management system
US11799761B2 (en) 2022-01-07 2023-10-24 Vmware, Inc. Scaling edge services with minimal disruption

Also Published As

Publication number Publication date
US20130227091A1 (en) 2013-08-29
US8412810B1 (en) 2013-04-02

Similar Documents

Publication Publication Date Title
US9270521B2 (en) Provisioning and managing a cluster deployed on a cloud
US11115466B2 (en) Distributed network services
US11455224B2 (en) Displaying a service graph in association with a time of a detected anomaly
US8739157B2 (en) System and method for managing cloud deployment configuration of an application
US8103769B1 (en) Dynamic isolation of shared resources
US9569240B2 (en) Method and system to provision and manage a computing application hosted by a virtual instance of a machine
US9876703B1 (en) Computing resource testing
US8332688B1 (en) Failover and recovery of a computing application hosted by a virtual instance of a machine
US20180131583A1 (en) Automatic provisioning of cloud services
US11558268B2 (en) System and method for processing network data
US9130943B1 (en) Managing communications between client applications and application resources of on-premises and cloud computing nodes
CN107534570A (en) Virtualize network function monitoring
US8607233B2 (en) Web service management
US11381488B2 (en) Centralized, scalable, resource monitoring system
US20150263885A1 (en) Method and apparatus for automatic enablement of network services for enterprises
US11482255B2 (en) Replay a service graph at a point in time to troubleshoot
US20230126045A1 (en) Event-Driven Provisioning of an Elastic Orchestration Platform
US10176067B1 (en) On-demand diagnostics in a virtual environment
US11803410B2 (en) Asserting initialization status of virtualized system
US9942354B1 (en) Managing service message rates in a computing service environment
US10027544B1 (en) Detecting and managing changes in networking devices
CN110768855B (en) Method and device for testing linkmzation performance
US11902178B2 (en) System and method to effectively allocate computing resources to end users
US11334343B1 (en) Systems and methods for managing releases of applications in a computing environment
US11861627B1 (en) Using customer input to determine proper functionality of a block storage service

Legal Events

Date Code Title Description
AS Assignment

Owner name: ADOBE SYSTEMS INCORPORATED, CALIFORNIA

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:TOMPKINS, DAVID;REEL/FRAME:036685/0093

Effective date: 20100701

FEPP Fee payment procedure

Free format text: PAYOR NUMBER ASSIGNED (ORIGINAL EVENT CODE: ASPN); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

STCF Information on status: patent grant

Free format text: PATENTED CASE

AS Assignment

Owner name: ADOBE INC., CALIFORNIA

Free format text: CHANGE OF NAME;ASSIGNOR:ADOBE SYSTEMS INCORPORATED;REEL/FRAME:048867/0882

Effective date: 20181008

MAFP Maintenance fee payment

Free format text: PAYMENT OF MAINTENANCE FEE, 4TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1551); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

Year of fee payment: 4

MAFP Maintenance fee payment

Free format text: PAYMENT OF MAINTENANCE FEE, 8TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1552); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

Year of fee payment: 8