WO2010099514A2 - System and method for computer cloud management - Google Patents

System and method for computer cloud management Download PDF

Info

Publication number
WO2010099514A2
WO2010099514A2 PCT/US2010/025705 US2010025705W WO2010099514A2 WO 2010099514 A2 WO2010099514 A2 WO 2010099514A2 US 2010025705 W US2010025705 W US 2010025705W WO 2010099514 A2 WO2010099514 A2 WO 2010099514A2
Authority
WO
WIPO (PCT)
Prior art keywords
application
application infrastructure
server
infrastructure
nodes
Prior art date
Application number
PCT/US2010/025705
Other languages
French (fr)
Other versions
WO2010099514A3 (en
Inventor
Coach Wei
Original Assignee
Coach Wei
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 Coach Wei filed Critical Coach Wei
Publication of WO2010099514A2 publication Critical patent/WO2010099514A2/en
Publication of WO2010099514A3 publication Critical patent/WO2010099514A3/en

Links

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
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0896Bandwidth or capacity management, i.e. automatically increasing or decreasing capacities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0896Bandwidth or capacity management, i.e. automatically increasing or decreasing capacities
    • H04L41/0897Bandwidth or capacity management, i.e. automatically increasing or decreasing capacities by horizontal or vertical scaling of resources, or by migrating entities, e.g. virtual resources or entities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/70Admission control; Resource allocation
    • H04L47/78Architectures of resource allocation
    • H04L47/781Centralised allocation of resources
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/70Admission control; Resource allocation
    • H04L47/82Miscellaneous aspects
    • H04L47/822Collecting or measuring resource availability data
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/14Network analysis or design
    • H04L41/145Network analysis or design involving simulating, designing, planning or modelling of a network

Definitions

  • the present invention relates to a system and a method for computer cloud management and in particular, to utilizing a computer cloud network for accelerating and auto-scaling an application in response to load demand changes.
  • FIG. 1 shows the basic structure of a distributed application in a client-server architecture.
  • the clients 100 send requests 110 via the network 140 to the server 150, and the server 150 sends responses 120 back to the clients 100 via the network 140.
  • the same server is able to serve multiple concurrent clients.
  • FIG. 2 shows the architecture of a typical web application.
  • the client part of a web application runs inside a web browser 210 that interacts with the user.
  • the server part of a web application runs on one or multiple computers, such as Web Server 250, Application Server 260, and Database Server 280.
  • the server components typically reside in an infrastructure referred to as "host infrastructure” or "application infrastructure” 245.
  • Performance refers to the application's responsiveness to user interactions.
  • Scalability refers to an application's capability to perform under increased load demand.
  • Availability refers to an application's capability to deliver continuous, uninterrupted service. With the exponential growth of the number of Internet users, access demand can easily overwhelm the capacity of a single server computer.
  • FIG. 3 is an illustration of using multiple web servers, multiple application servers and multiple database servers to increase the capacity of the web application. Clustering is frequently used today for improving application scalability.
  • Site mirroring is a more advanced approach than server clustering because it replicates an entire application, including documents, code, data, web server software, application server software, database server software, to another geographic location, thereby creating two geographically separated sites mirroring each other.
  • a hardware device called "Global Load Balancing Device” performs load balancing among the multiple sites.
  • both server clustering and site mirroring For both server clustering and site mirroring, a variety of load balancing mechanisms have been developed. They all work fine in their specific context. However, both server clustering and site mirroring have significant limitations. Both approaches provision a "fixed" amount of infrastructure capacity, while the load on a web application is not fixed. In reality, there is no "right" amount of infrastructure capacity to provision for a web application because the load on the application can swing from zero to millions of hits within a short period of time when there is a traffic spike. When under-provisioned, the application may perform poorly or even become unavailable. When over-provisioned, the over-provisioned capacity is wasted. To be conservative, a lot of web operators end up purchasing significantly more capacity than needed.
  • a third approach for improving web performance is to use a Content Delivery Network (CDN) service.
  • CDN Content Delivery Network
  • Companies like Akamai and Limelight Networks operate a global content delivery infrastructure comprising of tens of thousands of servers strategically placed across the globe. These servers cache web content (static documents) produced by their customers (content providers).
  • DNS Domain Name Server
  • a routing mechanism typically based on Domain Name Server (DNS) techniques
  • DNS Domain Name Server
  • cloud computing refers to the use of Internet-based (i.e. Cloud) computer technology for a variety of services.
  • Cloud is a style of computing in which dynamically scalable and often virtualized resources are provided as a service over the Internet. Users need not have knowledge of, expertise in, or control over the technology infrastructure 'in the cloud' that supports them".
  • the word "cloud” is a metaphor, based on how it is depicted in computer network diagrams, and is an abstraction for the complex infrastructure it conceals.
  • Cloud Computing we use the term “Cloud Computing” to refer to the utilization of a network-based computing infrastructure that includes many interconnected computing nodes to provide a certain type of service, of which each node may employ technologies like virtualization and web services. The internal works of the cloud itself are concealed from the user point of view.
  • VMWare is a highly successful company that provides virtualization software to "virtualize” computer operating systems from the underlying hardware resources.
  • VM virtual machine
  • Each "virtual machine” behaves just like a regular computer from an external point of view. One can install software onto it, delete files from it and run programs on it, though the "virtual machine” itself is just a software program running on a "real" computer.
  • cloud computing can increase data center efficiency, enhance operational flexibility and reduce costs.
  • Running a web application in a cloud environment has the potential to efficiently meet performance, scalability and availability objectives. For example, when there is a traffic increase that exceeded the current capacity, one can launch new server nodes to handle the increased traffic. If the current capacity exceeds the traffic demand by a certain threshold, one can shut down some of the server nodes to lower resource consumption. If some existing server nodes failed, one can launch new nodes and redirect traffic to the new nodes.
  • the invention provides a cloud management system that provides dynamic content acceleration, traffic management and auto-scaling for applications.
  • the system directs clients to appropriate server nodes among a plurality of geographically distributed nodes so that performance is optimal according to a certain metrics.
  • the system also monitors the load condition and performance of the application, and dynamically adjusts the application's infrastructure capacity to match the demand according to a certain policy. For example, when it detects a traffic increase that may overwhelm the current capacity, the system automatically launches new server instances and spreads load to these new instances. Further, the system manages traffic and performs load balancing among a plurality of server nodes that the application is running on.
  • the invention features a method for auto-scaling the infrastructure capacity of an application in response to client demands.
  • the method includes providing an application configured to run on an application infrastructure comprising a plurality of server nodes and to be accessed by clients via a first network.
  • providing traffic management means directing traffic from the clients to the server nodes of the application infrastructure.
  • Providing monitoring means gathering performance metrics of the application and metrics of the application infrastructure.
  • Providing controlling means configured to change the application infrastructure.
  • monitoring the performance metrics of the application and the metrics of the application infrastructure via the monitoring means thereby obtaining metrics information and then changing the application infrastructure based on the metrics information via the controlling means.
  • the application infrastructure comprises a cloud computing environment.
  • the application infrastructure comprises virtual machines.
  • the application infrastructure comprises virtual machines and physical server machines.
  • the application infrastructure comprises server nodes running in different geographic locations.
  • the controlling means comprise means for starting, means for stopping and means for managing virtual machine instances.
  • the metrics information comprises geographic proximity of the clients to the server nodes of the application infrastructure.
  • the metrics information comprises application load demand.
  • the metrics information comprises application performance data.
  • the traffic management means comprises means for resolving a domain name of the application via a Domain Name Server (DNS).
  • DNS Domain Name Server
  • the traffic management means performs traffic management by providing Internet Protocol (IP) addresses of the server nodes in the application infrastructure to the clients.
  • IP Internet Protocol
  • the traffic management means selects one or more optimal server nodes among the server nodes in the application infrastructure for serving client requests.
  • the traffic management means selects one or more server nodes among the server nodes in the application infrastructure based on geographic proximity of the server nodes to the clients.
  • the traffic management means selects one or more server nodes among the server nodes in the application infrastructure based on optimized network performance to certain clients.
  • the traffic management means selects a persistent server node among the server nodes in the application infrastructure for serving requests from the same client.
  • the controlling means change the application infrastructure capacity in response to the metrics information.
  • the controlling means change the application infrastructure capacity in response to a certain policy.
  • the controlling means change the application infrastructure capacity in response to instructions received from a third party.
  • the controlling means change the application infrastructure capacity by launching new server nodes in the application infrastructure.
  • the controlling means change the application infrastructure capacity by shutting down sever nodes in the application infrastructure.
  • the invention features a system for auto-scaling the infrastructure capacity of an application in response to client demands.
  • the system includes an application configured to run on an application infrastructure comprising a plurality of server nodes and to be accessed by clients via a first network.
  • the system also includes traffic management means directing traffic from the clients to the server nodes of the application infrastructure, monitoring means gathering performance metrics of the application and metrics of the application infrastructure and controlling means configured to change the application infrastructure.
  • the monitoring means monitor the performance metrics of the application and the metrics of the application infrastructure and thereby obtain metrics information.
  • the controlling means change the application infrastructure based on the metrics information and the traffic management means direct network traffic targeted to access the application to server nodes of the changed application infrastructure.
  • the system is horizontally scalable. Its capacity increases linearly by just adding more computing nodes to the system. It is also fault-tolerant. Failure of individual components within the system does not cause system failure. In fact, the system assumes component failures as common occurrences and is able to run on commodity hardware to deliver high performance and high availability services.
  • Applications of the present invention include but are not limited to the followings. Accelerating and load balancing requests among node instances running at multiple sites (data centers), as shown in FIG. 7. Scaling and load balancing a web application in a cloud environment, as shown in FIG. 8. Scaling and load balancing an email application in a cloud environment, as shown in FIG. 9.
  • the traffic processing units provide performance acceleration, load balancing and failover.
  • the management means manage server nodes in response to load demand and performance changes, such as starting new nodes, shutting down existing nodes and recover from failed nodes, among others.
  • the monitoring means monitor server nodes and collect performance metrics data;
  • the traffic processing unit uses a Domain Name System (DNS) to provide Internet Protocol (IP) addresses for the "optimal" server node in a DNS hostname query.
  • DNS Domain Name System
  • IP Internet Protocol
  • Such a technique can be used in any situation where the client requires access to a replicated network resource. It directs the client request to an appropriate replica so that the route to the replica is good from a performance standpoint.
  • the traffic processing unit also takes session stickiness into consideration that requests from the same client session is routed to the same server node persistently when session stickiness is required. Session stickiness, also known as “IP address persistence" or “server affinity” in the art, means that different requests from the same client session will always to be routed to the same server in a multi-server environment.
  • FIG. 1 is block diagram of a distributed application in a client-server architecture (static web site);
  • FIG. 2 is block diagram of a typical web application ("dynamic web site");
  • FIG. 3 A is a block diagram of a cluster computing environment (prior art).
  • FIG. 3B is a schematic diagram of site-mirrored computing environment(prior art).
  • FIG. 4 is a schematic diagram of a cloud computing environment
  • FIG. 5 is a schematic diagram of one embodiment of the cloud management system of this invention.
  • FIG. 6 is a block diagram showing the high level functional components of the cloud management system of FIG. 5;
  • FIG. 7 is a schematic diagram showing the use of the cloud management system of this invention for managing traffic to server nodes running in different geographic regions;
  • FIG. 8 is a schematic diagram showing an example of using the present invention to manage a web application in a cloud environment
  • FIG. 9 is a schematic diagram showing an example of using the present invention to manage mail servers running in a cloud environment
  • FIG. 10 is a schematic diagram showing details of another embodiment of the present invention referred to as "Yottaa”;
  • FIG. 11 is a flow diagram showing how Yottaa resolves a client request
  • FIG. 12 is a block diagram showing the architecture of a Yottaa Traffic Management node
  • FIG. 13 shows the life cycle of a Yottaa Traffic Management node
  • FIG. 14 shows the architecture of a Yottaa Manager node
  • FIG. 15 shows the life cycle of a Yottaa Manager node
  • FIG. 16 shows the architecture of a Yottaa Monitor node
  • FIG. 17 shows the building blocks of a Node Manager module
  • FIG. 18 shows the work flow of how a Node Manager module manages virtual machine nodes
  • FIG. 19 shows a schematic diagram of using the invention of FIG. 5 to deliver a web performance service over the Internet to web site operators;
  • FIG. 20 shows how an HTTP request is served from a 3-tiered web application using the present invention.
  • FIG. 21 shows the various function blocks of an Application Delivery Network including the cloud management system of the present invention.
  • an improved cloud computing environment includes client machines 500 accessing web applications running on virtual machine nodes 592, 594, in the cloud computing environment 590, via the Internet 520.
  • the improved cloud computing environment also includes a cloud management system 580 that intercepts the network traffic from the clients 500 to the cloud computing environment 590 in order to provide traffic management, node management, node monitoring and load balancing, among others.
  • the cloud management system 580 includes a traffic management module 540, a node management module 550, a node monitoring module 560 and a data repository 570.
  • Traffic management module 540 manages and load-balances requests 510 from clients 500 to different server nodes 592, 594 that the application is running on. These server nodes are typically virtual machine nodes in a cloud computing environment, but they can also be physical servers. Further, the traffic management module 540 routes a client request to a server node that is "optimal" from a performance point of view according to certain metrics. In one example the metrics is the geographic proximity between the client and the server node. For a global user base, selecting the "closest" server node to serve client requests can produce significant application performance acceleration. Unlike content delivery networks that provide acceleration for static content, traffic management module 540 delivers acceleration for both static as well as dynamic content.
  • the traffic management module 540 uses a Domain Name System (DNS) to provide Internet Protocol (IP) addresses for the "optimal" server node in a DNS hostname query.
  • DNS Domain Name System
  • IP Internet Protocol
  • Such a technique can be used in any situation where the client requires access to a replicated network resource. It directs the client request to an appropriate replica so that the route to the replica is good from a performance standpoint.
  • the traffic management module 540 also takes session stickiness into consideration so that requests from the same client session are routed to the same server node persistently when session stickiness is required. Session stickiness, also known as “IP address persistence" or “server affinity” in the art, means that different requests from the same client session are always routed to the same server in a multi-server environment. "Session stickiness" is required for a variety of web applications to function correctly.
  • Node management module 550 provides services for managing the sever nodes 592, 594, such as starting a virtual machine (VM) instance, stopping a VM instance and recovering from a node failure, among others.
  • this service launches new server nodes when the application is over loaded and it shuts down some server nodes when it detects these nodes are not necessary any more.
  • the node monitoring module 560 monitors the sever nodes 592, 594 over the network, collects performance and availability data, and provides feedback to the cloud management system 580. This feedback is then used to make decisions such as when to scale up and when to scale down.
  • Data repository 570 contains data for the cloud management system, such as Virtual Machine Image (VMI), application artifacts (files, scripts, and configuration data), routing policy data, and node management policy data, among others.
  • VMI Virtual Machine Image
  • application artifacts files, scripts, and configuration data
  • routing policy data node management policy data, among others.
  • the cloud management system 580 includes a management interface 545 that provides a user interface 546 (Mgmt UI) and a programmatic interface 547 (Mgmt API) for external parties to interact with the system. Using the management interface 545, one can configure the system and customize services for individual applications.
  • Cloud management system 580 also includes a traffic redirection module 555 for redirecting internet traffic from the clients 500 to the cloud computing environment 590 to pass through the cloud management system 580, as shown in FIG. 5.
  • the cloud management system of FIG. 5 may be used to manage traffic among servers running in different regions in a cloud computing environment, as shown in FIG. 7.
  • the invention may also be used in providing traffic management, performance acceleration, load balancing, and failover services for a variety of applications running in a cloud environment, such as web applications (shown in FIG. 8) and email applications (shown in FIG.9), among others.
  • the present invention is used to provide an on-demand service delivered over the Internet to web site operators to help them improve their web application performance, scalability and availability, as shown in FIG. 20.
  • Service provider HOO manages and operates a global infrastructure H40 providing web performance related services, including monitoring, acceleration, load balancing, traffic management, auto scaling and failover.
  • the global infrastructure also has a management and configuration user interface (UI) H30, as shown in FIG.21, for customers to purchase, configure and manage services from the service provider.
  • UI management and configuration user interface
  • Customers include web operator HlO, who owns and manages web application H50.
  • Web application H50 may be deployed in one data center, a few data centers, in one location, in multiple locations, or run on virtual machines in a distributed cloud computing environment.
  • System H40 provides services including monitoring, acceleration, traffic management, load balancing, failover and auto-scaling to web application H50 with the result of better performance, better scalability and better availability to web users H20.
  • web operator HlO pays a fee to service provider HOO.
  • FIG. 10 shows an embodiment of the present invention called "Yottaa” and depicts the architecture of Yottaa service and the steps of using Yottaa in resolving a request from client machine AOO located in North America to its closest server instance A45.
  • requests from client machine A80 located in Asia are directed to server
  • the system is deployed over network A20.
  • the network can be a local area network, a wireless network, and a wide area network such as the Internet, among others.
  • the web application is running on nodes labeled as "Server", such as Server A45, Server A65. Each of the server nodes may be running an instance of a mail server application, a web application or some other kind application.
  • Each zone contains at least one YTM node. Normally there should be more than one YTM nodes in each zone for robustness reasons.
  • a manager node detects that there are fewer than expected number of YTM instances, it launches new YTM instances (if configuration policy permits so and certain conditions are met). All these YTM instances together manage the subset of server nodes inside this zone.
  • YTM instances there are also YTM instances within the network that do not belong to any zone. These instances include top level Yottaa Traffic Management (top YTM) nodes A30.
  • traffic management is implemented by using a Domain Name Server (DNS) based approach.
  • DNS Domain Name Server
  • Each YTM node contains a DNS module.
  • the top level YTM nodes and lower level YTM nodes together form a hierarchical DNS tree that resolves hostnames to appropriate IP addresses of selected "optimal" server nodes by taking factors such as node load conditions, geographic proximity, network performance and session stickiness (if required) into consideration.
  • client requests are load balanced and accelerated by connecting to "optimal" server nodes.
  • Yottaa divides all these server instances into different zones, often according to geographic proximity or network proximity.
  • Each YTM node manages a list of server nodes.
  • YTM node A50 manages servers in Zone A40, such as Server A45.
  • Yottaa deploys several types of nodes including Yottaa Traffic Management (YTM) node, such as A30, A50, and A70, Yottaa Manager node, such as A38, A58 and A78 and Yottaa Monitor node, such as A32, A52 and A72.
  • YTM Traffic Management
  • These three types of logical nodes are not required to be implemented as separate entities in actual implementation. Two of then, or all of them, can be combined into the same physical entity.
  • YTM nodes There are two types of YTM nodes: top level YTM node (such as A30) and lower level YTM node (such as A50 and A70). They are structurally identical but function differently. Whether an YTM node is a top level node or a lower level node is specified by the node's own configuration. Each YTM node contains a DNS module. For example, YTM A50 contains DNS A55. Further, if a hostname requires sticky- session support (as specified by web operators), a sticky-session list (such as A48 and A68) is created for the hostname of each application. This sticky session list is shared by YTM nodes that manage the same list of server nodes for this application.
  • sticky-session list such as A48 and A68
  • Top level YTM nodes provide services to lower level YTM nodes by directing DNS requests to them.
  • each lower level YTM node may provide similar services to its own set of "lower" level YTM nodes, establishing a DNS tree.
  • the system prevents a node from being overwhelmed with too many requests, guarantees the performance of each node and is able to scale up to cover the entire Internet by just adding more nodes.
  • FIG. 10 shows architecturally how a client in one geographic region is directed to a "closest” server node.
  • the meaning of "closest” is determined by the system's routing policy for the specific application.
  • Client AOO wants to connect to a server, the following steps happen in resolving the client DNS request.
  • Client AOO sends a DNS lookup request to its local DNS server AlO.
  • Local DNS server AlO (if it can not resolve the request directly) sends a request to a top level YTM A30, which then directs it to its DNS module A35 running inside A30.
  • the selection of A30 is because YTM A30 is configured in the DNS record for the requested hostname of the web application.
  • top YTM A30 Upon receiving the request from AlO, top YTM A30 returns a list of lower level YTM nodes to AlO.
  • the list is chosen according to the current routing policy, such as selecting 3 YTM nodes that are geographically closest to client local DNS AlO.
  • AlO receives the response, and sends the hostname resolution request to one of the returned lower level YTM nodes, i.e., A50.
  • Lower level YTM node A50 receives the request, returns a list of IP addresses of server nodes selected according to its routing policy. In this case, server node A45 is chosen and returned because it is geographically closest to the client DNS AlO.
  • AlO returns the received list of IP addresses to client A00.
  • AOO connects to Server A45 and sends a request.
  • Server A45 receives the request from client A00, processes it and returns a response.
  • client A80 who is located in Asia is routed to Server A65 instead.
  • the invention provides a web-based user interface (UI) 546 for web operators to configure the system.
  • Web operators can also use other means such as making network-based Application Programming Interface (API) calls or modifying configuration files directly by the service provider.
  • API Application Programming Interface
  • a web operator uses a web-based UI, a web operator enters the hostname of the target web application, for example, www.yottaa.com.
  • the web operator enters the IP addresses of the static servers that the target web application is running on (if there are servers that the web application has already been deployed to directly by the web operator).
  • the web operator configures whether the system is allowed to launch new server instances in response to traffic demand spikes and the associated node management policy.
  • the web operator configures whether the system is allowed to shut down server nodes if capacity exceeds demand by a certain threshold.
  • the web operator adds the supplied top level traffic management node names to the DNS record of the hostname of the target application and then configures other parameters such as whether the hostname requires sticky-session support, session expiration value, and routing policy, among others.
  • the system receives the above information, it performs the necessary actions to set up its service. For example, in the Yottaa embodiment, upon receiving the hostname and static IP addresses of the target server nodes, the system propagates such information to selected lower level YTM nodes (using the current routing policy) so that at least some lower level YTM nodes can resolve the hostname to IP address(s) when a DNS lookup request is received.
  • FIG. 11 shows a process workflow of how a hostname of a web application is resolved using the Yottaa service of FIG. 10.
  • a client wants to connect to a host of a web application, i.e., w ⁇ examiilcxom, it needs to resolve the IP address of the hostname first. To do so, it queries its local DNS server. The local DNS server first checks whether such a hostname is cached and still valid from a previous resolution. If so, the cached result is returned. If not, client DNS server issues a request to the pre-configured DNS server for $W£$L£MMgl ⁇ L£ ⁇ i, which is a top level YTM node.
  • the top level YTM node returns a list of lower level YTM nodes according to a repeatable routing policy configured for this application.
  • the routing policy can be related to the geo-proximity between the lower level YTM node and the client DNS server AlO, a pre-computed mapping between hostnames and lower level YTM nodes, or some other repeatable policy. Whatever policy is used, the top level YTM node guarantees the returned result is repeatable. If the same client DNS server requests the same hostname resolution again later, the same list of lower level YTM nodes is returned. Upon receiving the returned list of YTM nodes, client DNS server needs to query these nodes until a resolved IP address is received.
  • the YTM node So it sends a request to one of the lower level YTM nodes in the list.
  • the lower level YTM receives the request.
  • this hostname requires sticky-session support. Whether a hostname requires sticky-session support is typically configured by the web operator during the initial setup of the subscribed Yottaa service (can be changed later). If sticky-session support is not required, the YTM node returns a list of IP addresses of "optimal" server nodes that are mapped to )vwwjPL!MWhL£QM, chosen according to the current routing policy.
  • the YTM node first looks for an entry in the sticky-session list using the hostname (in this case, TOW. example : oom) and the IP address of the client DNS server as the key. If such an entry is found, the expiration time of this entry in the sticky-session list is updated to be the current time plus the pre-configured session expiration value (When a web operator performs initial configuration of Yottaa service, he enters a session expiration timeout value into the system, such as one hour). On the other side, if no entry is found, the YTM node picks an "optimal" server node according to the current routing policy, creates an entry with the proper key and expiration information, and inserts this entry into the sticky- session list.
  • the hostname in this case, TOW. example : oom
  • the server node's IP address is returned to the client DNS server. If the same client DNS server queries www,cxample. . com again before the entry expires, the same IP address will be returned. If an error is received during the process of querying a lower level YTM node, the client DNS server will query the next YTM node in the list. So the failure of an individual lower level YTM node is invisible to the client. Finally, the client DNS server returns the received IP address(s) to the client. The client can now connect to the server node. If there is an error connecting to a returned IP address, the client will try to connect to the next IP address in the list, until a connection is successfully made.
  • Top YTM nodes typically set a long time-to-live (TTL) value for its returned results. Doing so minimizes the load on top level nodes as well as reduces the number of queries from the client DNS server. On the other side, lower YTM nodes typically set a short Time-to-live value, making the system very responsive to node status changes.
  • TTL time-to-live
  • the sticky-session list is periodically cleaned up by purging the expired entries.
  • An entry expires when there is no client DNS request for the same hostname from the same client DNS server during the entire session expiration duration since the last lookup.
  • web operators can configure the system to map multiple (or using a wildcard) client DNS servers to one entry in the sticky-session table. In this case, DNS query from any of these client DNS servers receives the same IP address for the same hostname when sticky-session support is required.
  • a Monitor node detects the server failure, notifies its associated Manager nodes.
  • the associated Manager nodes notify the corresponding YTM nodes.
  • These YTM nodes then immediately remove the entry from the sticky-session list, and direct traffic to a different server node.
  • users who were connected to the failed server node earlier may see errors duration the transition period. However, only this portion of users, and only during a short period of time, is impacted.
  • TTL expiration which is expected to be short given that lower level YTM nodes set short TTL, these users will connect to a different server node and resume their operations.
  • the system manages server node shutdown intelligently so as to eliminate service interruption for these users who are connected to this server node. It waits until all user sessions on this server node have expired before finally shutting down the node instance.
  • Yottaa leverages the inherit scalability designed into the Internet's DNS system. It also provides multiple levels of redundancy in every step (except for sticky-session scenarios that a DNS lookup requires a persistent IP address). Further, the system uses a multi-tiered DNS hierarchy so that it naturally spreads loads onto different YTM nodes to efficiently distribute load and be highly scalable, while be able to adjust TTL value for different nodes and be responsive to node status changes.
  • FIG. 12 shows the functional blocks of a Yottaa Traffic Management node, shown as COO in this diagram.
  • the YTM node contains DNS module ClO that perform standard DNS functions, Status Probe module C60 that monitors status of this YTM node itself and responds to status inquires, Management UI module C50 that enables System Administrators to manage this node directly when necessary, Node Manager C40 (optional) that can manage server nodes over a network and a Routing Policy module C30 that manages routing policy.
  • the routing policy module can load different routing policy as necessary. Part of module C30 is an interface for routing policy and another part of this module provide sticky-session support during a DNS lookup process.
  • YTM node COO contains Configuration module C75, node instance DB C80, and Data Repository module C85.
  • FIG. 13 shows how a YTM node works.
  • a YTM node boots up, it reads initialization parameters from its environment, its configuration file, instance DB and so on. During the process, it takes proper actions as necessary, such as loading a specific routing policy for different applications. Further, if there are Managers specified in the initialization parameters, the node sends a startup availability event to such Managers. Consequentially, these Managers propagate a list of server nodes to this YTM node and assign Monitors to monitor the status of this YTM node. Then the node checks to see if it is a top level YTM according to its configuration parameters.
  • the node If it is a top level YTM, the node enters its main loop of request processing until eventually a shutdown request is received or a node failure happened. Upon receiving a shutdown command, the node notifies its associated Managers of the shutdown event, logs the event and then performs shutdown. If the node is not a top level YTM node, it continues its initialization by sending a startup availability event to a designated list of top level YTM nodes as specified in the node's configuration data.
  • a top level YTM node When a top level YTM node receives a startup availability event from a lower level YTM node, it performs the following actions. First, it adds the lower level YTM node to the routing list so that future DNS requests maybe routed to this lower level YTM node. If the lower level YTM node does not have associated Managers set up already (as indicated by the startup availability event message), selects a list of Managers according to the top level YTM node's own routing policy, and returns this list of Manager nodes to the lower level YTM node.
  • a lower level YTM node When a lower level YTM node receives the list of Managers from a top level YTM node, it continues its initialization by sending a startup availability event to each Manager in the list.
  • a Manager node When a Manager node receives a startup availability event from a lower level YTM node, it assigns Monitor nodes to monitor the status of the YTM node. Further, the Manager returns the list of server nodes that is under management by this Manager to the YTM node.
  • the lower level YTM node receives a list of server nodes from a Manager node, it is added to the managed server node list that this YTM node manages so that future DNS requests maybe routed to servers in the list. After the YTM node completes setting up its managed server node list, it enters its main loop for request processing. For example:
  • the YTM node If a DNS request is received, the YTM node returns one or more server nodes from its managed server node list according to the routing policy for the target hostname and client DNS server.
  • the server node is removed from the managed server node list. • If a server node startup event is received, the new server node is added to the managed server node list.
  • the YTM node notifies its associated Manager nodes as well as the top level YTM nodes of its shutdown, saves the necessary state into its local storage, logs the event and shuts down.
  • FIG. 14 shows the functional blocks of a Yottaa Manager node, shown as FOO in this diagram and as A38 and A58 in FIG. 10.
  • Yottaa Manager nodes perform a variety of functions such as assigning nodes to associated Monitors for monitoring, receiving notification events from Monitors about node status changes, notifying YTM nodes of such status changes, starting or stopping node instances, among others.
  • Yottaa Manager node contains a Request Processor module F20 that processes requests received from other nodes over the network, a Node Manager module F30 that can be used to manage virtual machine instances, a Management User Interface (UI) module F40 that can be used to configure the node locally, and a Status Probe module F50 that monitors the status of this node itself and responds to status inquires.
  • UI Management User Interface
  • Status Probe module F50 that monitors the status of this node itself and responds to status inquires.
  • the Manager node then also contains Node Monitor module FlO that maintains the list of nodes to be monitored and periodically polls nodes in the list according to the current monitoring policy.
  • FIG.15 shows how a manager node works.
  • it When it starts up, it reads configuration data and initialization parameters from its environment, configuration file, instance DB and so on. Proper actions are taken during the process. Then it sends a startup availability event to a list of parent Managers as specified from its configuration data or initialization parameters.
  • a parent Manager receives the startup availability event, it adds this new node to its list of nodes under "management", and "assigns" some associated Monitor nodes to monitor the status of this new node by sending a corresponding request to these Monitor nodes.
  • the parent Manager delegates the management responsibilities of some server nodes to the new Manager node by responding with a list of such server nodes.
  • the child Manager node When the child Manager node receives a list of server nodes of which it is expected to assume management responsibility, it assigns some of its associated Monitors to do status polling, performance monitoring of the list of server nodes. If no parent Manager is specified, the Yottaa Manager is expected to create its list of server nodes from its configuration data. Then the Manager node finishes its initialization and enters its main processing loop of request processing. If the request is a startup availability event from an YTM node, it adds this YTM node to the monitoring list and replies with the list of server nodes for which it assigns the YTM node to do traffic management. Note that, in general, the same server node is be assigned to multiple YTM nodes for routing.
  • the request is a shutdown request, it notifies its parent Managers of the shutdown, logs the event, and then performs shutdown. If a node error request is reported from a Monitor node, the Manager removes the error node from its list (or move it to a different list), logs the event, and optionally reports the event. If the error node is a server node, the Manager node notifies the associated YTM nodes of the server node loss, and if configured to do so and a certain conditions are met, attempts to re-start the node or launch a new server node.
  • FIG. 16 shows the functional blocks of the Monitor Node, shown as GOO in this diagram and as A32, A52 and A72 in FIG. 10.
  • Monitor node GOO includes a node monitor GlO, monitor policy G20, request processor G30, management UI G40, status probe G50, a pluggable service framework G60, configuration G70, instance database G80 and data repository G90.
  • Yottaa Monitor nodes perform the function of monitoring the status of a list of assigned nodes. Each Monitor node reports to a few Manager nodes, which assign nodes and the associated monitoring policy to this
  • the assigned nodes may include static server nodes that the customer application is running on, virtual machine nodes that the application is deployed to dynamically and other Yottaa nodes such as YTM nodes, Managers and Monitors.
  • the Monitor When an event such as node failure is detected, the Monitor notifies Managers of the status change and then it is up to the Managers to decide whether and what actions should be taken.
  • a Manager When a Manager receives an event from a monitor node, it checks the current node management policy and other statistics to figure out whether it should take node management actions. If the policy permits and if the statistics predict an upcoming traffic spike, the Manager starts new server nodes, and notifies YTM nodes to spread traffic to the new server nodes. On the other side, if the policy permits and the statistics show significantly decreased traffic demand, the Manager node notifies YTM nodes stop sending traffic to a certain server nodes and then shuts down these nodes.
  • FIG. 17 shows the functional blocks of the Node Management module JOO, one of the major building blocks of a cloud management system.
  • Node Manager provides service to manage nodes over the network.
  • An important component is Node Management policy JlO.
  • a node management policy is created when the web operator configures the cloud management system for his applications by specifying whether the system is allowed to dynamically start or shut down nodes in response to application load condition changes, the application artifacts to use for launching new nodes, initialization parameters associated with new nodes, and so on.
  • the node management service launches new server nodes when the application is over loaded. It shuts down some server nodes when it detects these nodes are not needed any more.
  • the behavior can be customized using either the management UI or via API calls.
  • a web operator can schedule a capacity scale-up to a certain number of server nodes (or to meet a certain performance metric) in anticipation of an event that would lead to significant traffic demand.
  • FIG. 18 shows the node management workflow.
  • the cloud management system receives a node status change event from its monitoring agents, it first checks whether the event signals a server node down. If so, the server node is removed from the system. If the system policy says "re-launch failed nodes", the Node Manager will try to launch a new server node. Then the system checks whether the event indicates that the current set of server nodes are getting over loaded. If so, at a certain threshold, and if the system's policy permits, a node manager will launch new server nodes and notify the traffic management service to spread load to the new nodes. Finally, the system checks to see whether it is in the state of "having too much capacity”. If so and the node management policy permits, a Node Manager will try to shut down a certain number of server nodes to eliminate capacity waste.
  • the system picks the best geographic region to launch the new server node.
  • Globally distributed cloud environments such as Amazon.com's EC2 cover several continents. Launching new nodes at appropriate geographic locations help spread application load globally, reduce network traffic and improve application performance.
  • shutting down server nodes to reduce capacity waste the system checks whether session stickiness is required for the application. If so, shutdown is timed until all current sessions on these server nodes have expired.

Abstract

A method for auto-scaling the infrastructure capacity of an application in response to client demands includes providing an application configured to run on an application infrastructure comprising a plurality of server nodes and to be accessed by clients via a first network. Next, providing traffic management means directing traffic from the clients to the server nodes of the application infrastructure. Providing monitoring means gathering performance metrics of the application and metrics of the application infrastructure. Providing controlling means configured to change the application infrastructure. Next, monitoring the performance metrics of the application and the metrics of the application infrastructure via the monitoring means thereby obtaining metrics information and then changing the application infrastructure based on the metrics information via the controlling means. Finally directing network traffic targeted to access the application to server nodes of the changed application infrastructure via the traffic management means.

Description

SYSTEM AND METHOD FOR COMPUTER CLOUD MANAGEMENT
Cross Reference to related Co-Pending Applications
This application claims the benefit of U.S. provisional application Serial No. 61/156,069 filed on February 27, 2009 and entitled METHOD AND SYSTEM FOR COMPUTER CLOUD MANAGEMENT, which is commonly assigned and the contents of which are expressly incorporated herein by reference.
This application claims the benefit of U.S. provisional application Serial No. 61/165,250 filed on March 31, 2009 and entitled CLOUD ROUTING NETWORK FOR BETTER INTERNET PERFORMANCE, RELIABILITY AND SECURITY, which is commonly assigned and the contents of which are expressly incorporated herein by reference.
Field of the Invention
The present invention relates to a system and a method for computer cloud management and in particular, to utilizing a computer cloud network for accelerating and auto-scaling an application in response to load demand changes.
Background of the Invention
The advancement of computer networking has enabled computer programs to evolve from the early days' monolithic form that is used by one user at a time into distributed applications. A distributed application, running on two or more networked computers, is able to support multiple users at the same time. FIG. 1 shows the basic structure of a distributed application in a client-server architecture. The clients 100 send requests 110 via the network 140 to the server 150, and the server 150 sends responses 120 back to the clients 100 via the network 140. The same server is able to serve multiple concurrent clients.
Today, most applications are distributed. FIG. 2 shows the architecture of a typical web application. The client part of a web application runs inside a web browser 210 that interacts with the user. The server part of a web application runs on one or multiple computers, such as Web Server 250, Application Server 260, and Database Server 280. The server components typically reside in an infrastructure referred to as "host infrastructure" or "application infrastructure" 245.
In order for a web application to be able to serve a large number of clients, its host infrastructure must meet performance, scalability and availability requirements. "Performance" refers to the application's responsiveness to user interactions. "Scalability" refers to an application's capability to perform under increased load demand. "Availability" refers to an application's capability to deliver continuous, uninterrupted service. With the exponential growth of the number of Internet users, access demand can easily overwhelm the capacity of a single server computer.
An effective way to address performance, scalability and availability concerns is to host a web application on multiple servers (server clustering) and load balance client requests among these servers (or sites). Load balancing spreads the load among multiple servers. If one server failed, the load balancing mechanism would direct traffic away from the failed server so that the site is still operational. FIG. 3 is an illustration of using multiple web servers, multiple application servers and multiple database servers to increase the capacity of the web application. Clustering is frequently used today for improving application scalability.
Another way for addressing performance, scalability and availability concerns is to replicate the entire application to two different data centers (site mirroring). Site mirroring is a more advanced approach than server clustering because it replicates an entire application, including documents, code, data, web server software, application server software, database server software, to another geographic location, thereby creating two geographically separated sites mirroring each other. A hardware device called "Global Load Balancing Device" performs load balancing among the multiple sites.
For both server clustering and site mirroring, a variety of load balancing mechanisms have been developed. They all work fine in their specific context. However, both server clustering and site mirroring have significant limitations. Both approaches provision a "fixed" amount of infrastructure capacity, while the load on a web application is not fixed. In reality, there is no "right" amount of infrastructure capacity to provision for a web application because the load on the application can swing from zero to millions of hits within a short period of time when there is a traffic spike. When under-provisioned, the application may perform poorly or even become unavailable. When over-provisioned, the over-provisioned capacity is wasted. To be conservative, a lot of web operators end up purchasing significantly more capacity than needed. It is common to see server utilization below 20% in a lot of data centers today, resulting in substantial capacity waste. Yet the application still goes under when traffic spikes happen. This is called as a "capacity dilemma" that happens every day. Furthermore, these traditional techniques are time consuming and expensive to set up and are equally time consuming and expensive to make changes. Events like natural disaster can cause an entire site to fail. Comparing to server clustering, site mirroring provides availability even if one site completely failed. However, it is more complex to set up and requires data synchronization between the two sites. Lastly, the set of global load balancing devices is a single point of failure.
A third approach for improving web performance is to use a Content Delivery Network (CDN) service. Companies like Akamai and Limelight Networks operate a global content delivery infrastructure comprising of tens of thousands of servers strategically placed across the globe. These servers cache web content (static documents) produced by their customers (content providers). When a user requests such content, a routing mechanism (typically based on Domain Name Server (DNS) techniques) would find an appropriate caching server to serve the request. By using content delivery service, users receive better content performance because content is delivered from an edge server that is closer to the user.
Though content delivery networks can enhance performance and scalability, they are limited to static content. Web applications are dynamic. Responses dynamically generated from web applications can not be cached. Web application scalability is still limited by its hosting infrastructure capacity. Further, CDN services do not enhance availability for web applications in general. If the hosting infrastructure goes down, the application will not be available. So though CDN services help improve performance and scalability in serving static content, they do not change the fact that the site's scalability and availability are limited by the site's infrastructure capacity. Over the recent years, cloud computing has emerged as an efficient and more flexible way to do computing, shown in FIG. 4. According to Wikipedia, cloud computing "refers to the use of Internet-based (i.e. Cloud) computer technology for a variety of services. It is a style of computing in which dynamically scalable and often virtualized resources are provided as a service over the Internet. Users need not have knowledge of, expertise in, or control over the technology infrastructure 'in the cloud' that supports them". The word "cloud" is a metaphor, based on how it is depicted in computer network diagrams, and is an abstraction for the complex infrastructure it conceals. In this document, we use the term "Cloud Computing" to refer to the utilization of a network-based computing infrastructure that includes many interconnected computing nodes to provide a certain type of service, of which each node may employ technologies like virtualization and web services. The internal works of the cloud itself are concealed from the user point of view.
One of the enablers for cloud computing is virtualization. Wikipedia explains that "virtualization is a broad term that refers to the abstraction of computer resource". It includes "Platform virtualization, which separates an operating system from the underlying platform resources", "Resource virtualization, the virtualization of specific system resources, such as storage volumes, name spaces, and network resource" and so on. VMWare is a highly successful company that provides virtualization software to "virtualize" computer operating systems from the underlying hardware resources.
Due to virtualization, one can use software to start, stop and manage "virtual machine" (VM) nodes 460, 470 in a computing environment 450, shown in FIG. 4.
Each "virtual machine" behaves just like a regular computer from an external point of view. One can install software onto it, delete files from it and run programs on it, though the "virtual machine" itself is just a software program running on a "real" computer.
Another enabler for cloud computing is the availability of commodity hardware as well as the computing power of commodity hardware. For a few hundred dollars, one can acquire a computer that is more powerful than a machine that would have cost ten times more twenty years ago. Though an individual commodity machine itself may not be reliable, putting many of them together can produce an extremely reliable and powerful system. Amazon.com's Elastic Computing Cloud (EC2) is an example of a cloud computing environment that employs thousands of commodity machines with virtualization software to form an extremely powerful computing infrastructure.
By utilizing commodity hardware and virtualization, cloud computing can increase data center efficiency, enhance operational flexibility and reduce costs. Running a web application in a cloud environment has the potential to efficiently meet performance, scalability and availability objectives. For example, when there is a traffic increase that exceeded the current capacity, one can launch new server nodes to handle the increased traffic. If the current capacity exceeds the traffic demand by a certain threshold, one can shut down some of the server nodes to lower resource consumption. If some existing server nodes failed, one can launch new nodes and redirect traffic to the new nodes.
However, running web applications in a cloud computing environment like Amazon EC2 creates new requirements for traffic management and load balancing because of the frequent node stopping and starting. In the cases of server clustering and site mirroring, stopping a server or server failure are exceptions. The corresponding load balancing mechanisms are also designed to handle such occurrences as exceptions. In a cloud computing environment, server reboot and server shutdown are assumed to be common occurrences rather than exceptions. On one side, the assumption that individual nodes are not reliable is at the center of design for a cloud system due to its utilization of commodity hardware. On the other side, there are business reasons to start or stop nodes in order to increase resource utilization and reduce costs. Naturally, the traffic management and load balancing system required for a cloud computing environment must be responsive to node status changes.
Thus it would be advantageous to provide a cloud management system that can automatically scale up and scale down infrastructure capacity in response to an application's load demand, intelligently direct traffic to a plurality of server nodes in response to node status changes and load condition changes, while enhancing an application's performance, scalability and availability.
Summary of the Invention
The invention provides a cloud management system that provides dynamic content acceleration, traffic management and auto-scaling for applications. The system directs clients to appropriate server nodes among a plurality of geographically distributed nodes so that performance is optimal according to a certain metrics. The system also monitors the load condition and performance of the application, and dynamically adjusts the application's infrastructure capacity to match the demand according to a certain policy. For example, when it detects a traffic increase that may overwhelm the current capacity, the system automatically launches new server instances and spreads load to these new instances. Further, the system manages traffic and performs load balancing among a plurality of server nodes that the application is running on.
In general, in one aspect, the invention features a method for auto-scaling the infrastructure capacity of an application in response to client demands. The method includes providing an application configured to run on an application infrastructure comprising a plurality of server nodes and to be accessed by clients via a first network. Next, providing traffic management means directing traffic from the clients to the server nodes of the application infrastructure. Providing monitoring means gathering performance metrics of the application and metrics of the application infrastructure. Providing controlling means configured to change the application infrastructure. Next, monitoring the performance metrics of the application and the metrics of the application infrastructure via the monitoring means thereby obtaining metrics information and then changing the application infrastructure based on the metrics information via the controlling means. Finally directing network traffic targeted to access the application to server nodes of the changed application infrastructure via the traffic management means.
Implementations of this aspect of the invention may include one or more of the following. The application infrastructure comprises a cloud computing environment. The application infrastructure comprises virtual machines. The application infrastructure comprises virtual machines and physical server machines. The application infrastructure comprises server nodes running in different geographic locations. The controlling means comprise means for starting, means for stopping and means for managing virtual machine instances. The metrics information comprises geographic proximity of the clients to the server nodes of the application infrastructure. The metrics information comprises application load demand. The metrics information comprises application performance data. The traffic management means comprises means for resolving a domain name of the application via a Domain Name Server (DNS). The traffic management means performs traffic management by providing Internet Protocol (IP) addresses of the server nodes in the application infrastructure to the clients. The traffic management means performs load balancing among the server nodes in the application infrastructure. The traffic management means selects one or more optimal server nodes among the server nodes in the application infrastructure for serving client requests. The traffic management means selects one or more server nodes among the server nodes in the application infrastructure based on geographic proximity of the server nodes to the clients. The traffic management means selects one or more server nodes among the server nodes in the application infrastructure based on optimized network performance to certain clients. The traffic management means selects a persistent server node among the server nodes in the application infrastructure for serving requests from the same client. The controlling means change the application infrastructure capacity in response to the metrics information. The controlling means change the application infrastructure capacity in response to a certain policy. The controlling means change the application infrastructure capacity in response to instructions received from a third party. The controlling means change the application infrastructure capacity by launching new server nodes in the application infrastructure. The controlling means change the application infrastructure capacity by shutting down sever nodes in the application infrastructure.
In general, in another aspect, the invention features a system for auto-scaling the infrastructure capacity of an application in response to client demands. The system includes an application configured to run on an application infrastructure comprising a plurality of server nodes and to be accessed by clients via a first network. The system also includes traffic management means directing traffic from the clients to the server nodes of the application infrastructure, monitoring means gathering performance metrics of the application and metrics of the application infrastructure and controlling means configured to change the application infrastructure. The monitoring means monitor the performance metrics of the application and the metrics of the application infrastructure and thereby obtain metrics information. The controlling means change the application infrastructure based on the metrics information and the traffic management means direct network traffic targeted to access the application to server nodes of the changed application infrastructure.
Among the advantages of the invention may be one or more of the following. The system is horizontally scalable. Its capacity increases linearly by just adding more computing nodes to the system. It is also fault-tolerant. Failure of individual components within the system does not cause system failure. In fact, the system assumes component failures as common occurrences and is able to run on commodity hardware to deliver high performance and high availability services.
Applications of the present invention include but are not limited to the followings. Accelerating and load balancing requests among node instances running at multiple sites (data centers), as shown in FIG. 7. Scaling and load balancing a web application in a cloud environment, as shown in FIG. 8. Scaling and load balancing an email application in a cloud environment, as shown in FIG. 9. The traffic processing units provide performance acceleration, load balancing and failover. The management means manage server nodes in response to load demand and performance changes, such as starting new nodes, shutting down existing nodes and recover from failed nodes, among others. The monitoring means monitor server nodes and collect performance metrics data;
The traffic processing unit uses a Domain Name System (DNS) to provide Internet Protocol (IP) addresses for the "optimal" server node in a DNS hostname query. Such a technique can be used in any situation where the client requires access to a replicated network resource. It directs the client request to an appropriate replica so that the route to the replica is good from a performance standpoint. Further, the traffic processing unit also takes session stickiness into consideration that requests from the same client session is routed to the same server node persistently when session stickiness is required. Session stickiness, also known as "IP address persistence" or "server affinity" in the art, means that different requests from the same client session will always to be routed to the same server in a multi-server environment. "Session stickiness" is required for a variety of web applications to function correctly. The details of one or more embodiments of the invention are set forth in the accompanying drawings and description below. Other features, objects and advantages of the invention will be apparent from the following description of the preferred embodiments, the drawings and from the claims.
Brief Description of the Drawings
FIG. 1 is block diagram of a distributed application in a client-server architecture (static web site);
FIG. 2 is block diagram of a typical web application ("dynamic web site");
FIG. 3 A is a block diagram of a cluster computing environment (prior art);
FIG. 3B is a schematic diagram of site-mirrored computing environment(prior art);
FIG. 4 is a schematic diagram of a cloud computing environment;
FIG. 5 is a schematic diagram of one embodiment of the cloud management system of this invention;
FIG. 6 is a block diagram showing the high level functional components of the cloud management system of FIG. 5;
FIG. 7 is a schematic diagram showing the use of the cloud management system of this invention for managing traffic to server nodes running in different geographic regions;
FIG. 8 is a schematic diagram showing an example of using the present invention to manage a web application in a cloud environment;
FIG. 9 is a schematic diagram showing an example of using the present invention to manage mail servers running in a cloud environment; FIG. 10 is a schematic diagram showing details of another embodiment of the present invention referred to as "Yottaa";
FIG. 11 is a flow diagram showing how Yottaa resolves a client request;
FIG. 12 is a block diagram showing the architecture of a Yottaa Traffic Management node;
FIG. 13 shows the life cycle of a Yottaa Traffic Management node;
FIG. 14 shows the architecture of a Yottaa Manager node;
FIG. 15 shows the life cycle of a Yottaa Manager node;
FIG. 16 shows the architecture of a Yottaa Monitor node;
FIG. 17 shows the building blocks of a Node Manager module;
FIG. 18 shows the work flow of how a Node Manager module manages virtual machine nodes;
FIG. 19 shows a schematic diagram of using the invention of FIG. 5 to deliver a web performance service over the Internet to web site operators;
FIG. 20 shows how an HTTP request is served from a 3-tiered web application using the present invention; and
FIG. 21 shows the various function blocks of an Application Delivery Network including the cloud management system of the present invention.
Detailed Description of the Invention
Referring to FIG. 5, an improved cloud computing environment includes client machines 500 accessing web applications running on virtual machine nodes 592, 594, in the cloud computing environment 590, via the Internet 520. The improved cloud computing environment also includes a cloud management system 580 that intercepts the network traffic from the clients 500 to the cloud computing environment 590 in order to provide traffic management, node management, node monitoring and load balancing, among others. The cloud management system 580 includes a traffic management module 540, a node management module 550, a node monitoring module 560 and a data repository 570.
Traffic management module 540 manages and load-balances requests 510 from clients 500 to different server nodes 592, 594 that the application is running on. These server nodes are typically virtual machine nodes in a cloud computing environment, but they can also be physical servers. Further, the traffic management module 540 routes a client request to a server node that is "optimal" from a performance point of view according to certain metrics. In one example the metrics is the geographic proximity between the client and the server node. For a global user base, selecting the "closest" server node to serve client requests can produce significant application performance acceleration. Unlike content delivery networks that provide acceleration for static content, traffic management module 540 delivers acceleration for both static as well as dynamic content.
The traffic management module 540 uses a Domain Name System (DNS) to provide Internet Protocol (IP) addresses for the "optimal" server node in a DNS hostname query. Such a technique can be used in any situation where the client requires access to a replicated network resource. It directs the client request to an appropriate replica so that the route to the replica is good from a performance standpoint. Further, the traffic management module 540 also takes session stickiness into consideration so that requests from the same client session are routed to the same server node persistently when session stickiness is required. Session stickiness, also known as "IP address persistence" or "server affinity" in the art, means that different requests from the same client session are always routed to the same server in a multi-server environment. "Session stickiness" is required for a variety of web applications to function correctly.
Node management module 550 provides services for managing the sever nodes 592, 594, such as starting a virtual machine (VM) instance, stopping a VM instance and recovering from a node failure, among others. In accordance to the node management policies in the system, this service launches new server nodes when the application is over loaded and it shuts down some server nodes when it detects these nodes are not necessary any more.
The node monitoring module 560 monitors the sever nodes 592, 594 over the network, collects performance and availability data, and provides feedback to the cloud management system 580. This feedback is then used to make decisions such as when to scale up and when to scale down.
Data repository 570 contains data for the cloud management system, such as Virtual Machine Image (VMI), application artifacts (files, scripts, and configuration data), routing policy data, and node management policy data, among others.
Referring to FIG. 6, besides traffic management 540, node management 550, node monitoring 560 and data repository 570, the cloud management system 580 includes a management interface 545 that provides a user interface 546 (Mgmt UI) and a programmatic interface 547 (Mgmt API) for external parties to interact with the system. Using the management interface 545, one can configure the system and customize services for individual applications. Cloud management system 580 also includes a traffic redirection module 555 for redirecting internet traffic from the clients 500 to the cloud computing environment 590 to pass through the cloud management system 580, as shown in FIG. 5.
The cloud management system of FIG. 5 may be used to manage traffic among servers running in different regions in a cloud computing environment, as shown in FIG. 7. The invention may also be used in providing traffic management, performance acceleration, load balancing, and failover services for a variety of applications running in a cloud environment, such as web applications (shown in FIG. 8) and email applications (shown in FIG.9), among others.
In another example, the present invention is used to provide an on-demand service delivered over the Internet to web site operators to help them improve their web application performance, scalability and availability, as shown in FIG. 20. Service provider HOO manages and operates a global infrastructure H40 providing web performance related services, including monitoring, acceleration, load balancing, traffic management, auto scaling and failover. The global infrastructure also has a management and configuration user interface (UI) H30, as shown in FIG.21, for customers to purchase, configure and manage services from the service provider. Customers include web operator HlO, who owns and manages web application H50. Web application H50 may be deployed in one data center, a few data centers, in one location, in multiple locations, or run on virtual machines in a distributed cloud computing environment. System H40 provides services including monitoring, acceleration, traffic management, load balancing, failover and auto-scaling to web application H50 with the result of better performance, better scalability and better availability to web users H20. In return for using the service, web operator HlO pays a fee to service provider HOO.
FIG. 10 shows an embodiment of the present invention called "Yottaa" and depicts the architecture of Yottaa service and the steps of using Yottaa in resolving a request from client machine AOO located in North America to its closest server instance A45.
Similarly, requests from client machine A80 located in Asia are directed to server
A65 that is close to A80. The system is deployed over network A20. The network can be a local area network, a wireless network, and a wide area network such as the Internet, among others. The web application is running on nodes labeled as "Server", such as Server A45, Server A65. Each of the server nodes may be running an instance of a mail server application, a web application or some other kind application.
The entire network is divided into "zones", i.e., A40, A60. Each zone contains at least one YTM node. Normally there should be more than one YTM nodes in each zone for robustness reasons. When a manager node detects that there are fewer than expected number of YTM instances, it launches new YTM instances (if configuration policy permits so and certain conditions are met). All these YTM instances together manage the subset of server nodes inside this zone. Besides the zones, there are also YTM instances within the network that do not belong to any zone. These instances include top level Yottaa Traffic Management (top YTM) nodes A30.
In this embodiment, traffic management is implemented by using a Domain Name Server (DNS) based approach. Each YTM node contains a DNS module. The top level YTM nodes and lower level YTM nodes together form a hierarchical DNS tree that resolves hostnames to appropriate IP addresses of selected "optimal" server nodes by taking factors such as node load conditions, geographic proximity, network performance and session stickiness (if required) into consideration. As a result, client requests are load balanced and accelerated by connecting to "optimal" server nodes.
As was mentioned above, Yottaa divides all these server instances into different zones, often according to geographic proximity or network proximity. Each YTM node manages a list of server nodes. For example, YTM node A50 manages servers in Zone A40, such as Server A45. Over the network, Yottaa deploys several types of nodes including Yottaa Traffic Management (YTM) node, such as A30, A50, and A70, Yottaa Manager node, such as A38, A58 and A78 and Yottaa Monitor node, such as A32, A52 and A72. These three types of logical nodes are not required to be implemented as separate entities in actual implementation. Two of then, or all of them, can be combined into the same physical entity.
There are two types of YTM nodes: top level YTM node (such as A30) and lower level YTM node (such as A50 and A70). They are structurally identical but function differently. Whether an YTM node is a top level node or a lower level node is specified by the node's own configuration. Each YTM node contains a DNS module. For example, YTM A50 contains DNS A55. Further, if a hostname requires sticky- session support (as specified by web operators), a sticky-session list (such as A48 and A68) is created for the hostname of each application. This sticky session list is shared by YTM nodes that manage the same list of server nodes for this application. Top level YTM nodes provide services to lower level YTM nodes by directing DNS requests to them. In a cascading fashion, each lower level YTM node may provide similar services to its own set of "lower" level YTM nodes, establishing a DNS tree. Using such a cascading tree structure, the system prevents a node from being overwhelmed with too many requests, guarantees the performance of each node and is able to scale up to cover the entire Internet by just adding more nodes.
FIG. 10 shows architecturally how a client in one geographic region is directed to a "closest" server node. The meaning of "closest" is determined by the system's routing policy for the specific application. When client AOO wants to connect to a server, the following steps happen in resolving the client DNS request. First, Client AOO sends a DNS lookup request to its local DNS server AlO. Local DNS server AlO (if it can not resolve the request directly) sends a request to a top level YTM A30, which then directs it to its DNS module A35 running inside A30. The selection of A30 is because YTM A30 is configured in the DNS record for the requested hostname of the web application. Upon receiving the request from AlO, top YTM A30 returns a list of lower level YTM nodes to AlO. The list is chosen according to the current routing policy, such as selecting 3 YTM nodes that are geographically closest to client local DNS AlO. AlO receives the response, and sends the hostname resolution request to one of the returned lower level YTM nodes, i.e., A50. Lower level YTM node A50 receives the request, returns a list of IP addresses of server nodes selected according to its routing policy. In this case, server node A45 is chosen and returned because it is geographically closest to the client DNS AlO. AlO returns the received list of IP addresses to client A00. AOO connects to Server A45 and sends a request. Server A45 receives the request from client A00, processes it and returns a response. Similarly, client A80 who is located in Asia is routed to Server A65 instead.
As shown in FIG. 6, the invention provides a web-based user interface (UI) 546 for web operators to configure the system. Web operators can also use other means such as making network-based Application Programming Interface (API) calls or modifying configuration files directly by the service provider. In one example, using a web-based UI, a web operator enters the hostname of the target web application, for example, www.yottaa.com. Next, the web operator enters the IP addresses of the static servers that the target web application is running on (if there are servers that the web application has already been deployed to directly by the web operator). Next, the web operator configures whether the system is allowed to launch new server instances in response to traffic demand spikes and the associated node management policy. Also, the web operator configures whether the system is allowed to shut down server nodes if capacity exceeds demand by a certain threshold. Next, the web operator adds the supplied top level traffic management node names to the DNS record of the hostname of the target application and then configures other parameters such as whether the hostname requires sticky-session support, session expiration value, and routing policy, among others. Once the system receives the above information, it performs the necessary actions to set up its service. For example, in the Yottaa embodiment, upon receiving the hostname and static IP addresses of the target server nodes, the system propagates such information to selected lower level YTM nodes (using the current routing policy) so that at least some lower level YTM nodes can resolve the hostname to IP address(s) when a DNS lookup request is received.
FIG. 11 shows a process workflow of how a hostname of a web application is resolved using the Yottaa service of FIG. 10. When a client wants to connect to a host of a web application, i.e., w^^examiilcxom, it needs to resolve the IP address of the hostname first. To do so, it queries its local DNS server. The local DNS server first checks whether such a hostname is cached and still valid from a previous resolution. If so, the cached result is returned. If not, client DNS server issues a request to the pre-configured DNS server for $W£$L£MMglϊL£Ωπi, which is a top level YTM node. The top level YTM node returns a list of lower level YTM nodes according to a repeatable routing policy configured for this application. For example, the routing policy can be related to the geo-proximity between the lower level YTM node and the client DNS server AlO, a pre-computed mapping between hostnames and lower level YTM nodes, or some other repeatable policy. Whatever policy is used, the top level YTM node guarantees the returned result is repeatable. If the same client DNS server requests the same hostname resolution again later, the same list of lower level YTM nodes is returned. Upon receiving the returned list of YTM nodes, client DNS server needs to query these nodes until a resolved IP address is received. So it sends a request to one of the lower level YTM nodes in the list. The lower level YTM receives the request. First, it figures out whether this hostname requires sticky-session support. Whether a hostname requires sticky-session support is typically configured by the web operator during the initial setup of the subscribed Yottaa service (can be changed later). If sticky-session support is not required, the YTM node returns a list of IP addresses of "optimal" server nodes that are mapped to )vwwjPL!MWhL£QM, chosen according to the current routing policy.
If sticky-session support is required, the YTM node first looks for an entry in the sticky-session list using the hostname (in this case, TOW. example :oom) and the IP address of the client DNS server as the key. If such an entry is found, the expiration time of this entry in the sticky-session list is updated to be the current time plus the pre-configured session expiration value (When a web operator performs initial configuration of Yottaa service, he enters a session expiration timeout value into the system, such as one hour). On the other side, if no entry is found, the YTM node picks an "optimal" server node according to the current routing policy, creates an entry with the proper key and expiration information, and inserts this entry into the sticky- session list. Finally, the server node's IP address is returned to the client DNS server. If the same client DNS server queries www,cxample..com again before the entry expires, the same IP address will be returned. If an error is received during the process of querying a lower level YTM node, the client DNS server will query the next YTM node in the list. So the failure of an individual lower level YTM node is invisible to the client. Finally, the client DNS server returns the received IP address(s) to the client. The client can now connect to the server node. If there is an error connecting to a returned IP address, the client will try to connect to the next IP address in the list, until a connection is successfully made.
Top YTM nodes typically set a long time-to-live (TTL) value for its returned results. Doing so minimizes the load on top level nodes as well as reduces the number of queries from the client DNS server. On the other side, lower YTM nodes typically set a short Time-to-live value, making the system very responsive to node status changes.
The sticky-session list is periodically cleaned up by purging the expired entries. An entry expires when there is no client DNS request for the same hostname from the same client DNS server during the entire session expiration duration since the last lookup. Further, web operators can configure the system to map multiple (or using a wildcard) client DNS servers to one entry in the sticky-session table. In this case, DNS query from any of these client DNS servers receives the same IP address for the same hostname when sticky-session support is required.
During a sticky-session scenario, if the server node of a persistent IP address goes down, a Monitor node detects the server failure, notifies its associated Manager nodes. The associated Manager nodes notify the corresponding YTM nodes. These YTM nodes then immediately remove the entry from the sticky-session list, and direct traffic to a different server node. Depending on the returned Time-to-live value, the behavior of client DNS resolvers and client DNS servers, and how the application is programmed, users who were connected to the failed server node earlier may see errors duration the transition period. However, only this portion of users, and only during a short period of time, is impacted. Upon TTL expiration, which is expected to be short given that lower level YTM nodes set short TTL, these users will connect to a different server node and resume their operations.
Further, for sticky-session scenarios, the system manages server node shutdown intelligently so as to eliminate service interruption for these users who are connected to this server node. It waits until all user sessions on this server node have expired before finally shutting down the node instance.
Yottaa leverages the inherit scalability designed into the Internet's DNS system. It also provides multiple levels of redundancy in every step (except for sticky-session scenarios that a DNS lookup requires a persistent IP address). Further, the system uses a multi-tiered DNS hierarchy so that it naturally spreads loads onto different YTM nodes to efficiently distribute load and be highly scalable, while be able to adjust TTL value for different nodes and be responsive to node status changes.
FIG. 12 shows the functional blocks of a Yottaa Traffic Management node, shown as COO in this diagram. The YTM node contains DNS module ClO that perform standard DNS functions, Status Probe module C60 that monitors status of this YTM node itself and responds to status inquires, Management UI module C50 that enables System Administrators to manage this node directly when necessary, Node Manager C40 (optional) that can manage server nodes over a network and a Routing Policy module C30 that manages routing policy. The routing policy module can load different routing policy as necessary. Part of module C30 is an interface for routing policy and another part of this module provide sticky-session support during a DNS lookup process. Further, YTM node COO contains Configuration module C75, node instance DB C80, and Data Repository module C85.
FIG. 13 shows how a YTM node works. When a YTM node boots up, it reads initialization parameters from its environment, its configuration file, instance DB and so on. During the process, it takes proper actions as necessary, such as loading a specific routing policy for different applications. Further, if there are Managers specified in the initialization parameters, the node sends a startup availability event to such Managers. Consequentially, these Managers propagate a list of server nodes to this YTM node and assign Monitors to monitor the status of this YTM node. Then the node checks to see if it is a top level YTM according to its configuration parameters. If it is a top level YTM, the node enters its main loop of request processing until eventually a shutdown request is received or a node failure happened. Upon receiving a shutdown command, the node notifies its associated Managers of the shutdown event, logs the event and then performs shutdown. If the node is not a top level YTM node, it continues its initialization by sending a startup availability event to a designated list of top level YTM nodes as specified in the node's configuration data.
When a top level YTM node receives a startup availability event from a lower level YTM node, it performs the following actions. First, it adds the lower level YTM node to the routing list so that future DNS requests maybe routed to this lower level YTM node. If the lower level YTM node does not have associated Managers set up already (as indicated by the startup availability event message), selects a list of Managers according to the top level YTM node's own routing policy, and returns this list of Manager nodes to the lower level YTM node.
When a lower level YTM node receives the list of Managers from a top level YTM node, it continues its initialization by sending a startup availability event to each Manager in the list. When a Manager node receives a startup availability event from a lower level YTM node, it assigns Monitor nodes to monitor the status of the YTM node. Further, the Manager returns the list of server nodes that is under management by this Manager to the YTM node. When the lower level YTM node receives a list of server nodes from a Manager node, it is added to the managed server node list that this YTM node manages so that future DNS requests maybe routed to servers in the list. After the YTM node completes setting up its managed server node list, it enters its main loop for request processing. For example:
• If a DNS request is received, the YTM node returns one or more server nodes from its managed server node list according to the routing policy for the target hostname and client DNS server.
• If the request is a server node down event from a Manager node, the server node is removed from the managed server node list. • If a server node startup event is received, the new server node is added to the managed server node list.
Finally, if a shutdown request is received, the YTM node notifies its associated Manager nodes as well as the top level YTM nodes of its shutdown, saves the necessary state into its local storage, logs the event and shuts down.
FIG. 14 shows the functional blocks of a Yottaa Manager node, shown as FOO in this diagram and as A38 and A58 in FIG. 10. Yottaa Manager nodes perform a variety of functions such as assigning nodes to associated Monitors for monitoring, receiving notification events from Monitors about node status changes, notifying YTM nodes of such status changes, starting or stopping node instances, among others. Yottaa Manager node contains a Request Processor module F20 that processes requests received from other nodes over the network, a Node Manager module F30 that can be used to manage virtual machine instances, a Management User Interface (UI) module F40 that can be used to configure the node locally, and a Status Probe module F50 that monitors the status of this node itself and responds to status inquires. Optionally, if a Monitor node is combined into this node, the Manager node then also contains Node Monitor module FlO that maintains the list of nodes to be monitored and periodically polls nodes in the list according to the current monitoring policy.
FIG.15 shows how a manager node works. When it starts up, it reads configuration data and initialization parameters from its environment, configuration file, instance DB and so on. Proper actions are taken during the process. Then it sends a startup availability event to a list of parent Managers as specified from its configuration data or initialization parameters. When a parent Manager receives the startup availability event, it adds this new node to its list of nodes under "management", and "assigns" some associated Monitor nodes to monitor the status of this new node by sending a corresponding request to these Monitor nodes. Then the parent Manager delegates the management responsibilities of some server nodes to the new Manager node by responding with a list of such server nodes. When the child Manager node receives a list of server nodes of which it is expected to assume management responsibility, it assigns some of its associated Monitors to do status polling, performance monitoring of the list of server nodes. If no parent Manager is specified, the Yottaa Manager is expected to create its list of server nodes from its configuration data. Then the Manager node finishes its initialization and enters its main processing loop of request processing. If the request is a startup availability event from an YTM node, it adds this YTM node to the monitoring list and replies with the list of server nodes for which it assigns the YTM node to do traffic management. Note that, in general, the same server node is be assigned to multiple YTM nodes for routing. If the request is a shutdown request, it notifies its parent Managers of the shutdown, logs the event, and then performs shutdown. If a node error request is reported from a Monitor node, the Manager removes the error node from its list (or move it to a different list), logs the event, and optionally reports the event. If the error node is a server node, the Manager node notifies the associated YTM nodes of the server node loss, and if configured to do so and a certain conditions are met, attempts to re-start the node or launch a new server node.
FIG. 16 shows the functional blocks of the Monitor Node, shown as GOO in this diagram and as A32, A52 and A72 in FIG. 10. Monitor node GOO includes a node monitor GlO, monitor policy G20, request processor G30, management UI G40, status probe G50, a pluggable service framework G60, configuration G70, instance database G80 and data repository G90. Yottaa Monitor nodes perform the function of monitoring the status of a list of assigned nodes. Each Monitor node reports to a few Manager nodes, which assign nodes and the associated monitoring policy to this
Monitor node. The assigned nodes may include static server nodes that the customer application is running on, virtual machine nodes that the application is deployed to dynamically and other Yottaa nodes such as YTM nodes, Managers and Monitors.
When an event such as node failure is detected, the Monitor notifies Managers of the status change and then it is up to the Managers to decide whether and what actions should be taken.
When a Manager receives an event from a monitor node, it checks the current node management policy and other statistics to figure out whether it should take node management actions. If the policy permits and if the statistics predict an upcoming traffic spike, the Manager starts new server nodes, and notifies YTM nodes to spread traffic to the new server nodes. On the other side, if the policy permits and the statistics show significantly decreased traffic demand, the Manager node notifies YTM nodes stop sending traffic to a certain server nodes and then shuts down these nodes.
FIG. 17 shows the functional blocks of the Node Management module JOO, one of the major building blocks of a cloud management system. Node Manager provides service to manage nodes over the network. An important component is Node Management policy JlO. A node management policy is created when the web operator configures the cloud management system for his applications by specifying whether the system is allowed to dynamically start or shut down nodes in response to application load condition changes, the application artifacts to use for launching new nodes, initialization parameters associated with new nodes, and so on. According to the node management policy in the system, the node management service launches new server nodes when the application is over loaded. It shuts down some server nodes when it detects these nodes are not needed any more. As stated earlier, the behavior can be customized using either the management UI or via API calls. For example, a web operator can schedule a capacity scale-up to a certain number of server nodes (or to meet a certain performance metric) in anticipation of an event that would lead to significant traffic demand.
FIG. 18 shows the node management workflow. When the cloud management system receives a node status change event from its monitoring agents, it first checks whether the event signals a server node down. If so, the server node is removed from the system. If the system policy says "re-launch failed nodes", the Node Manager will try to launch a new server node. Then the system checks whether the event indicates that the current set of server nodes are getting over loaded. If so, at a certain threshold, and if the system's policy permits, a node manager will launch new server nodes and notify the traffic management service to spread load to the new nodes. Finally, the system checks to see whether it is in the state of "having too much capacity". If so and the node management policy permits, a Node Manager will try to shut down a certain number of server nodes to eliminate capacity waste.
In launching new server nodes, the system picks the best geographic region to launch the new server node. Globally distributed cloud environments such as Amazon.com's EC2 cover several continents. Launching new nodes at appropriate geographic locations help spread application load globally, reduce network traffic and improve application performance. In shutting down server nodes to reduce capacity waste, the system checks whether session stickiness is required for the application. If so, shutdown is timed until all current sessions on these server nodes have expired.
Several embodiments of the present invention have been described. Nevertheless, it will be understood that various modifications may be made without departing from the spirit and scope of the invention. Accordingly, other embodiments are within the scope of the following claims.
What is claimed is:

Claims

1. A method for auto-scaling the infrastructure capacity of an application in response to client demands, comprising: providing an application configured to run on an application infrastructure comprising a plurality of server nodes and to be accessed by clients via a first network; providing traffic management means directing traffic from said clients to said server nodes of the application infrastructure; providing monitoring means gathering performance metrics of said application and metrics of the application infrastructure; providing controlling means configured to change said application infrastructure; monitoring said performance metrics of said application and said metrics of the application infrastructure via said monitoring means thereby obtaining metrics information; changing said application infrastructure based on said metrics information via said controlling means; directing network traffic targeted to access said application to server nodes of the changed application infrastructure via said traffic management means.
2. The method of claim 1, wherein said application infrastructure comprises a cloud computing environment.
3. The method of claim 1, wherein said application infrastructure comprises virtual machines.
4. The method of claim 1, wherein said application infrastructure comprises virtual machines and physical server machines.
5. The method of claim 1, wherein said application infrastructure comprises server nodes running in different geographic locations.
6. The method of claim 3, wherein said controlling means comprise means for starting, means for stopping and means for managing virtual machine instances.
7. The method of claim 1, wherein said metrics information comprises geographic proximity of said clients to said server nodes of said application infrastructure.
8. The method of claim 1, wherein said metrics information comprises application load demand.
9. The method of claim 1, wherein said metrics information comprises application performance data.
10. The method of claim 1, wherein said traffic management means comprises means for resolving a domain name of said application via a Domain Name Server
(DNS).
11. The method of claim 1, wherein said traffic management means performs traffic management by providing IP addresses of said server nodes in said application infrastructure to said clients.
12. The method of claim 1, wherein said traffic management means performs load balancing among said server nodes in said application infrastructure.
13. The method of claim 1, wherein said traffic management means selects one or more optimal server nodes among said server nodes in said application infrastructure for serving client requests.
14. The method of claim 1, wherein said traffic management means selects one or more servers nodes among said server nodes in said application infrastructure based on geographic proximity of said server nodes to said clients.
15. The method of claim 1, wherein said traffic management means selects one or more server nodes among said server nodes in said application infrastructure based on optimized network performance to certain clients.
16. The method of claim 1, wherein said traffic management means selects a persistent server node among said server nodes in said application infrastructure for serving requests from the same client.
17. The method of claim 1, wherein said controlling means change said application infrastructure capacity in response to said metrics information.
18. The method of claim 1, wherein said controlling means change said application infrastructure capacity in response to a certain policy.
19. The method of claim 1, wherein said controlling means change said application infrastructure capacity in response to instructions received from a third party.
20. The method of claim 1, wherein said controlling means change said application infrastructure capacity by launching new server nodes in said application infrastructure.
21. The method of claim 1, wherein said controlling means change said application infrastructure capacity by shutting down sever nodes in said application infrastructure.
22. A system for auto-scaling the infrastructure capacity of an application in response to client demands, comprising: an application configured to run on an application infrastructure comprising a plurality of server nodes and to be accessed by clients via a first network; traffic management means directing traffic from said clients to said server nodes of the application infrastructure; monitoring means gathering performance metrics of said application and metrics of the application infrastructure; controlling means configured to change said application infrastructure; wherein said monitoring means monitor said performance metrics of said application and said metrics of the application infrastructure and thereby obtain metrics information; wherein said controlling means change said application infrastructure based on said metrics information; and wherein said traffic management means direct network traffic targeted to access said application to server nodes of the changed application infrastructure.
23. The system of claim 22, wherein said application infrastructure comprises a cloud computing environment.
24. The system of claim 22, wherein said application infrastructure comprises virtual machines.
25. The system of claim 22, wherein said application infrastructure comprises virtual machines and physical server machines.
26. The system of claim 22, wherein said application infrastructure comprises server nodes running in different geographic locations.
27. The system of claim 24, wherein said controlling means comprise means for starting, means for stopping and means for managing virtual machine instances.
28. The system of claim 22, wherein said metrics information comprises geographic proximity of said clients to said server nodes of said application infrastructure.
29. The system of claim 22, wherein said metrics information comprises application load demand.
30. The system of claim 22, wherein said metrics information comprises application performance data.
31. The system of claim 22, wherein said traffic management means comprises means for resolving a domain name of said application via a Domain Name Server (DNS).
32. The system of claim 22, wherein said traffic management means performs traffic management by providing IP addresses of said server nodes in said application infrastructure to said clients.
33. The system of claim 22, wherein said traffic management means performs load balancing among said server nodes in said application infrastructure.
34. The system of claim 22, wherein said traffic management means selects one or more optimal server nodes among said server nodes in said application infrastructure for serving client requests.
35. The system of claim 22, wherein said traffic management means selects one or more servers nodes among said server nodes in said application infrastructure based on geographic proximity of said server nodes to said clients.
36. The system of claim 22, wherein said traffic management means selects one or more server nodes among said server nodes in said application infrastructure based on optimized network performance to certain clients.
37. The system of claim 22, wherein said traffic management means selects a persistent server node among said server nodes in said application infrastructure for serving requests from the same client.
38. The system of claim 22, wherein said controlling means change said application infrastructure capacity in response to said metrics information.
39. The system of claim 22, wherein said controlling means change said application infrastructure capacity in response to a certain policy.
40. The system of claim 22, wherein said controlling means change said application infrastructure capacity in response to instructions received from a third party.
41. The system of claim 22, wherein said controlling means change said application infrastructure capacity by launching new server nodes in said application infrastructure.
42. The system of claim 22, wherein said controlling means change said application infrastructure capacity by shutting down sever nodes in said application infrastructure.
43. The system of claim 22 further comprising configuration management means and wherein said configuration management means comprise one of a user interface or an application programming interface (API).
PCT/US2010/025705 2009-02-27 2010-02-27 System and method for computer cloud management WO2010099514A2 (en)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US15606909P 2009-02-27 2009-02-27
US61/156,069 2009-02-27
US16525009P 2009-03-31 2009-03-31
US61/165,250 2009-03-31

Publications (2)

Publication Number Publication Date
WO2010099514A2 true WO2010099514A2 (en) 2010-09-02
WO2010099514A3 WO2010099514A3 (en) 2011-01-06

Family

ID=42666263

Family Applications (2)

Application Number Title Priority Date Filing Date
PCT/US2010/025705 WO2010099514A2 (en) 2009-02-27 2010-02-27 System and method for computer cloud management
PCT/US2010/025704 WO2010099513A2 (en) 2009-02-27 2010-02-27 Adaptive network with automatic scaling

Family Applications After (1)

Application Number Title Priority Date Filing Date
PCT/US2010/025704 WO2010099513A2 (en) 2009-02-27 2010-02-27 Adaptive network with automatic scaling

Country Status (3)

Country Link
US (2) US8209415B2 (en)
EP (1) EP2401841A4 (en)
WO (2) WO2010099514A2 (en)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8789164B2 (en) 2012-03-16 2014-07-22 International Business Machines Corporation Scalable virtual appliance cloud (SVAC) and devices usable in an SVAC
US9871745B2 (en) 2014-11-12 2018-01-16 International Business Machines Corporation Automatic scaling of at least one user application to external clouds
CN109862016A (en) * 2019-02-19 2019-06-07 电子科技大学 A kind of countercheck for the automatic dilatation Yo-Yo attack of cloud computing
US10382565B2 (en) 2017-01-27 2019-08-13 Red Hat, Inc. Capacity scaling of network resources

Families Citing this family (334)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8326814B2 (en) 2007-12-05 2012-12-04 Box, Inc. Web-based file management system and service
US8458658B2 (en) 2008-02-29 2013-06-04 Red Hat, Inc. Methods and systems for dynamically building a software appliance
US8935692B2 (en) 2008-05-22 2015-01-13 Red Hat, Inc. Self-management of virtual machines in cloud-based networks
US8849971B2 (en) 2008-05-28 2014-09-30 Red Hat, Inc. Load balancing in cloud-based networks
US9092243B2 (en) 2008-05-28 2015-07-28 Red Hat, Inc. Managing a software appliance
US20090300423A1 (en) * 2008-05-28 2009-12-03 James Michael Ferris Systems and methods for software test management in cloud-based network
US8239509B2 (en) 2008-05-28 2012-08-07 Red Hat, Inc. Systems and methods for management of virtual appliances in cloud-based network
US10657466B2 (en) 2008-05-29 2020-05-19 Red Hat, Inc. Building custom appliances in a cloud-based network
US8108912B2 (en) 2008-05-29 2012-01-31 Red Hat, Inc. Systems and methods for management of secure data in cloud-based network
US8943497B2 (en) 2008-05-29 2015-01-27 Red Hat, Inc. Managing subscriptions for cloud-based virtual machines
US8341625B2 (en) * 2008-05-29 2012-12-25 Red Hat, Inc. Systems and methods for identification and management of cloud-based virtual machines
US8868721B2 (en) 2008-05-29 2014-10-21 Red Hat, Inc. Software appliance management using broadcast data
US10372490B2 (en) * 2008-05-30 2019-08-06 Red Hat, Inc. Migration of a virtual machine from a first cloud computing environment to a second cloud computing environment in response to a resource or services in the second cloud computing environment becoming available
US9842004B2 (en) * 2008-08-22 2017-12-12 Red Hat, Inc. Adjusting resource usage for cloud-based networks
US9910708B2 (en) * 2008-08-28 2018-03-06 Red Hat, Inc. Promotion of calculations to cloud-based computation resources
US8782233B2 (en) * 2008-11-26 2014-07-15 Red Hat, Inc. Embedding a cloud-based resource request in a specification language wrapper
US9037692B2 (en) * 2008-11-26 2015-05-19 Red Hat, Inc. Multiple cloud marketplace aggregation
US9210173B2 (en) * 2008-11-26 2015-12-08 Red Hat, Inc. Securing appliances for use in a cloud computing environment
US8984505B2 (en) * 2008-11-26 2015-03-17 Red Hat, Inc. Providing access control to user-controlled resources in a cloud computing environment
US9870541B2 (en) 2008-11-26 2018-01-16 Red Hat, Inc. Service level backup using re-cloud network
US10025627B2 (en) * 2008-11-26 2018-07-17 Red Hat, Inc. On-demand cloud computing environments
US9930138B2 (en) * 2009-02-23 2018-03-27 Red Hat, Inc. Communicating with third party resources in cloud computing environment
US9485117B2 (en) 2009-02-23 2016-11-01 Red Hat, Inc. Providing user-controlled resources for cloud computing environments
US8977750B2 (en) 2009-02-24 2015-03-10 Red Hat, Inc. Extending security platforms to cloud-based networks
US9501329B2 (en) * 2009-05-08 2016-11-22 Rackspace Us, Inc. Methods and systems for cloud computing management
US9311162B2 (en) 2009-05-27 2016-04-12 Red Hat, Inc. Flexible cloud management
US9450783B2 (en) 2009-05-28 2016-09-20 Red Hat, Inc. Abstracting cloud management
US9104407B2 (en) 2009-05-28 2015-08-11 Red Hat, Inc. Flexible cloud management with power management support
US9201485B2 (en) 2009-05-29 2015-12-01 Red Hat, Inc. Power management in managed network having hardware based and virtual resources
US20100306767A1 (en) * 2009-05-29 2010-12-02 Dehaan Michael Paul Methods and systems for automated scaling of cloud computing systems
US9703609B2 (en) 2009-05-29 2017-07-11 Red Hat, Inc. Matching resources associated with a virtual machine to offered resources
US20100318609A1 (en) * 2009-06-15 2010-12-16 Microsoft Corporation Bridging enterprise networks into cloud
US8832459B2 (en) 2009-08-28 2014-09-09 Red Hat, Inc. Securely terminating processes in a cloud computing environment
US8316125B2 (en) * 2009-08-31 2012-11-20 Red Hat, Inc. Methods and systems for automated migration of cloud processes to external clouds
US8862720B2 (en) * 2009-08-31 2014-10-14 Red Hat, Inc. Flexible cloud management including external clouds
US8769083B2 (en) 2009-08-31 2014-07-01 Red Hat, Inc. Metering software infrastructure in a cloud computing environment
US8504443B2 (en) * 2009-08-31 2013-08-06 Red Hat, Inc. Methods and systems for pricing software infrastructure for a cloud computing environment
US8271653B2 (en) * 2009-08-31 2012-09-18 Red Hat, Inc. Methods and systems for cloud management using multiple cloud management schemes to allow communication between independently controlled clouds
US20110078303A1 (en) * 2009-09-30 2011-03-31 Alcatel-Lucent Usa Inc. Dynamic load balancing and scaling of allocated cloud resources in an enterprise network
US8375223B2 (en) * 2009-10-30 2013-02-12 Red Hat, Inc. Systems and methods for secure distributed storage
US9971880B2 (en) * 2009-11-30 2018-05-15 Red Hat, Inc. Verifying software license compliance in cloud computing environments
US10402544B2 (en) * 2009-11-30 2019-09-03 Red Hat, Inc. Generating a software license knowledge base for verifying software license compliance in cloud computing environments
US9389980B2 (en) * 2009-11-30 2016-07-12 Red Hat, Inc. Detecting events in cloud computing environments and performing actions upon occurrence of the events
US9529689B2 (en) 2009-11-30 2016-12-27 Red Hat, Inc. Monitoring cloud computing environments
US10268522B2 (en) * 2009-11-30 2019-04-23 Red Hat, Inc. Service aggregation using graduated service levels in a cloud network
US8606667B2 (en) * 2010-02-26 2013-12-10 Red Hat, Inc. Systems and methods for managing a software subscription in a cloud network
US20110214124A1 (en) * 2010-02-26 2011-09-01 James Michael Ferris Systems and methods for generating cross-cloud computing appliances
US10783504B2 (en) * 2010-02-26 2020-09-22 Red Hat, Inc. Converting standard software licenses for use in cloud computing environments
US9053472B2 (en) 2010-02-26 2015-06-09 Red Hat, Inc. Offering additional license terms during conversion of standard software licenses for use in cloud computing environments
US8255529B2 (en) * 2010-02-26 2012-08-28 Red Hat, Inc. Methods and systems for providing deployment architectures in cloud computing environments
US20110213687A1 (en) * 2010-02-26 2011-09-01 James Michael Ferris Systems and methods for or a usage manager for cross-cloud appliances
US8402139B2 (en) * 2010-02-26 2013-03-19 Red Hat, Inc. Methods and systems for matching resource requests with cloud computing environments
US11922196B2 (en) * 2010-02-26 2024-03-05 Red Hat, Inc. Cloud-based utilization of software entitlements
US8122282B2 (en) * 2010-03-12 2012-02-21 International Business Machines Corporation Starting virtual instances within a cloud computing environment
US20110239039A1 (en) * 2010-03-26 2011-09-29 Dieffenbach Devon C Cloud computing enabled robust initialization and recovery of it services
US7917954B1 (en) * 2010-09-28 2011-03-29 Kaspersky Lab Zao Systems and methods for policy-based program configuration
US8909783B2 (en) 2010-05-28 2014-12-09 Red Hat, Inc. Managing multi-level service level agreements in cloud-based network
US9436459B2 (en) 2010-05-28 2016-09-06 Red Hat, Inc. Generating cross-mapping of vendor software in a cloud computing environment
US9354939B2 (en) 2010-05-28 2016-05-31 Red Hat, Inc. Generating customized build options for cloud deployment matching usage profile against cloud infrastructure options
US8954564B2 (en) 2010-05-28 2015-02-10 Red Hat, Inc. Cross-cloud vendor mapping service in cloud marketplace
US9202225B2 (en) 2010-05-28 2015-12-01 Red Hat, Inc. Aggregate monitoring of utilization data for vendor products in cloud networks
US8504689B2 (en) 2010-05-28 2013-08-06 Red Hat, Inc. Methods and systems for cloud deployment analysis featuring relative cloud resource importance
US8364819B2 (en) 2010-05-28 2013-01-29 Red Hat, Inc. Systems and methods for cross-vendor mapping service in cloud networks
US8606897B2 (en) 2010-05-28 2013-12-10 Red Hat, Inc. Systems and methods for exporting usage history data as input to a management platform of a target cloud-based network
JP5556393B2 (en) * 2010-06-04 2014-07-23 富士通株式会社 Network system, management server, and virtual machine placement method
US10715457B2 (en) 2010-06-15 2020-07-14 Oracle International Corporation Coordination of processes in cloud computing environments
EP2583211B1 (en) 2010-06-15 2020-04-15 Oracle International Corporation Virtual computing infrastructure
US9729464B1 (en) 2010-06-23 2017-08-08 Brocade Communications Systems, Inc. Method and apparatus for provisioning of resources to support applications and their varying demands
US20120221603A1 (en) * 2010-07-02 2012-08-30 salesforces.com, Inc. Distributed mobile services
WO2012023050A2 (en) 2010-08-20 2012-02-23 Overtis Group Limited Secure cloud computing system and method
US8739157B2 (en) * 2010-08-26 2014-05-27 Adobe Systems Incorporated System and method for managing cloud deployment configuration of an application
US9342368B2 (en) 2010-08-31 2016-05-17 International Business Machines Corporation Modular cloud computing system
US8862542B2 (en) * 2010-08-31 2014-10-14 Red Hat, Inc. Replicating data objects within a storage network
US9003014B2 (en) 2010-08-31 2015-04-07 International Business Machines Corporation Modular cloud dynamic application assignment
US9858133B2 (en) * 2010-09-20 2018-01-02 Netflix, Inc. Techniques for assessing the resiliency of a distribution computing service provided by a collection of interacting servers
US8769534B2 (en) * 2010-09-23 2014-07-01 Accenture Global Services Limited Measuring CPU utilization in a cloud computing infrastructure by artificially executing a bursting application on a virtual machine
US9483313B2 (en) * 2010-10-19 2016-11-01 Microsoft Technology Licensing, Llc Availability management for reference data services
US20120102185A1 (en) 2010-10-20 2012-04-26 Sony Computer Entertainment America Inc. Resource management of server hosts in online game environment
US20150106813A1 (en) * 2010-10-21 2015-04-16 Brocade Communications Systems, Inc. Method and apparatus for provisioning of resources to support applications and their varying demands
US8639793B2 (en) * 2010-10-29 2014-01-28 Cisco Technology, Inc. Disaster recovery and automatic relocation of cloud services
US8667138B2 (en) 2010-10-29 2014-03-04 Cisco Technology, Inc. Distributed hierarchical rendering and provisioning of cloud services
US8996689B2 (en) * 2010-11-11 2015-03-31 Telefonaktiebolaget L M Ericsson (Publ) Methods of operating networks, application servers, and wireless devices supporting machine-to-machine applications
US8612615B2 (en) 2010-11-23 2013-12-17 Red Hat, Inc. Systems and methods for identifying usage histories for producing optimized cloud utilization
US8909784B2 (en) 2010-11-23 2014-12-09 Red Hat, Inc. Migrating subscribed services from a set of clouds to a second set of clouds
US8612577B2 (en) 2010-11-23 2013-12-17 Red Hat, Inc. Systems and methods for migrating software modules into one or more clouds
US9736252B2 (en) 2010-11-23 2017-08-15 Red Hat, Inc. Migrating subscribed services in a cloud deployment
US8904005B2 (en) 2010-11-23 2014-12-02 Red Hat, Inc. Indentifying service dependencies in a cloud deployment
US8924539B2 (en) 2010-11-24 2014-12-30 Red Hat, Inc. Combinatorial optimization of multiple resources across a set of cloud-based networks
US8825791B2 (en) 2010-11-24 2014-09-02 Red Hat, Inc. Managing subscribed resource in cloud network using variable or instantaneous consumption tracking periods
US10192246B2 (en) 2010-11-24 2019-01-29 Red Hat, Inc. Generating multi-cloud incremental billing capture and administration
US8713147B2 (en) 2010-11-24 2014-04-29 Red Hat, Inc. Matching a usage history to a new cloud
US8949426B2 (en) 2010-11-24 2015-02-03 Red Hat, Inc. Aggregation of marginal subscription offsets in set of multiple host clouds
US9246872B2 (en) 2010-11-24 2016-01-26 Telefonaktiebolaget L M Ericsson (Publ) Methods and arrangements for enabling data transmission between a mobile device and a static destination address
US9442771B2 (en) 2010-11-24 2016-09-13 Red Hat, Inc. Generating configurable subscription parameters
US9606831B2 (en) 2010-11-30 2017-03-28 Red Hat, Inc. Migrating virtual machine operations
US9563479B2 (en) 2010-11-30 2017-02-07 Red Hat, Inc. Brokering optimized resource supply costs in host cloud-based network using predictive workloads
US20120144389A1 (en) * 2010-12-07 2012-06-07 International Business Machines Corporation Optimizing virtual image deployment for hardware architecture and resources
MY178111A (en) * 2010-12-22 2020-10-05 Mimos Berhad Intelligent load handling in cloid infrastructure using trend analysis
MY175153A (en) * 2010-12-22 2020-06-11 Mimos Berhad Method and system for cloud computing infrastructure monitoring
US9448824B1 (en) * 2010-12-28 2016-09-20 Amazon Technologies, Inc. Capacity availability aware auto scaling
GB2500356A (en) 2011-01-20 2013-09-18 Box Inc Real time notification of activities that occur in a web-based collaboration environment
CN102158475B (en) * 2011-02-22 2014-03-19 山东大学 System architecture based on student dormitory passageway system and system data synchronization method thereof
US9454406B2 (en) * 2011-02-28 2016-09-27 Novell, Inc. Techniques for cloud bursting
US8959221B2 (en) 2011-03-01 2015-02-17 Red Hat, Inc. Metering cloud resource consumption using multiple hierarchical subscription periods
US8832219B2 (en) 2011-03-01 2014-09-09 Red Hat, Inc. Generating optimized resource consumption periods for multiple users on combined basis
US9235447B2 (en) 2011-03-03 2016-01-12 Cisco Technology, Inc. Extensible attribute summarization
CN102215163B (en) * 2011-03-24 2014-04-09 东莞中山大学研究院 Multi-server video on demand processing method
EP2523423B1 (en) 2011-05-10 2019-01-02 Deutsche Telekom AG Method and system for providing a distributed scalable hosting environment for web services
ES2425627B1 (en) * 2011-05-12 2014-05-05 Telefónica, S.A. METHOD AND TRACKER FOR DISTRIBUTION OF CONTENT THROUGH A NETWORK OF DISTRIBUTION OF CONTENT
US20120297059A1 (en) * 2011-05-20 2012-11-22 Silverspore Llc Automated creation of monitoring configuration templates for cloud server images
US9223632B2 (en) 2011-05-20 2015-12-29 Microsoft Technology Licensing, Llc Cross-cloud management and troubleshooting
US8873398B2 (en) 2011-05-23 2014-10-28 Telefonaktiebolaget L M Ericsson (Publ) Implementing EPC in a cloud computer with openflow data plane
US8631099B2 (en) 2011-05-27 2014-01-14 Red Hat, Inc. Systems and methods for cloud deployment engine for selective workload migration or federation based on workload conditions
US10102018B2 (en) 2011-05-27 2018-10-16 Red Hat, Inc. Introspective application reporting to facilitate virtual machine movement between cloud hosts
US10360122B2 (en) 2011-05-31 2019-07-23 Red Hat, Inc. Tracking cloud installation information using cloud-aware kernel of operating system
US9037723B2 (en) 2011-05-31 2015-05-19 Red Hat, Inc. Triggering workload movement based on policy stack having multiple selectable inputs
US8782192B2 (en) 2011-05-31 2014-07-15 Red Hat, Inc. Detecting resource consumption events over sliding intervals in cloud-based network
US8984104B2 (en) 2011-05-31 2015-03-17 Red Hat, Inc. Self-moving operating system installation in cloud-based network
US9015601B2 (en) 2011-06-21 2015-04-21 Box, Inc. Batch uploading of content to a web-based collaboration environment
US9063912B2 (en) 2011-06-22 2015-06-23 Box, Inc. Multimedia content preview rendering in a cloud content management system
EP2729877A4 (en) 2011-07-08 2015-06-17 Box Inc Desktop application for access and interaction with workspaces in a cloud-based content management system and synchronization mechanisms thereof
GB2503625A (en) 2011-07-08 2014-01-01 Box Inc Collaboration sessions in a workspace on cloud-based content management system
US9015708B2 (en) * 2011-07-28 2015-04-21 International Business Machines Corporation System for improving the performance of high performance computing applications on cloud using integrated load balancing
US8943220B2 (en) * 2011-08-04 2015-01-27 Microsoft Corporation Continuous deployment of applications
US8732693B2 (en) 2011-08-04 2014-05-20 Microsoft Corporation Managing continuous software deployment
US9038055B2 (en) 2011-08-05 2015-05-19 Microsoft Technology Licensing, Llc Using virtual machines to manage software builds
US8706852B2 (en) * 2011-08-23 2014-04-22 Red Hat, Inc. Automated scaling of an application and its support components
US8762501B2 (en) 2011-08-29 2014-06-24 Telefonaktiebolaget L M Ericsson (Publ) Implementing a 3G packet core in a cloud computer with openflow data and control planes
US9167501B2 (en) 2011-08-29 2015-10-20 Telefonaktiebolaget L M Ericsson (Publ) Implementing a 3G packet core in a cloud computer with openflow data and control planes
CN102369714A (en) * 2011-08-31 2012-03-07 华为技术有限公司 Method of cloud terminal accessing cloud server in cloud computing system and cloud computing system
US9197718B2 (en) 2011-09-23 2015-11-24 Box, Inc. Central management and control of user-contributed content in a web-based collaboration environment and management console thereof
US8392585B1 (en) * 2011-09-26 2013-03-05 Theranos, Inc. Methods and systems for facilitating network connectivity
US8849976B2 (en) 2011-09-26 2014-09-30 Limelight Networks, Inc. Dynamic route requests for multiple clouds
US8515902B2 (en) 2011-10-14 2013-08-20 Box, Inc. Automatic and semi-automatic tagging features of work items in a shared workspace for metadata tracking in a cloud-based content management system with selective or optional user contribution
JP5982002B2 (en) 2011-10-25 2016-08-31 フォースウォール・メディア・インコーポレーテッド Network bandwidth throttling using traffic scheduling
US9098474B2 (en) 2011-10-26 2015-08-04 Box, Inc. Preview pre-generation based on heuristics and algorithmic prediction/assessment of predicted user behavior for enhancement of user experience
WO2013062599A1 (en) 2011-10-26 2013-05-02 Box, Inc. Enhanced multimedia content preview rendering in a cloud content management system
US9213503B2 (en) 2011-10-30 2015-12-15 Hewlett-Packard Development Company, L.P. Service provider management of virtual instances corresponding to hardware resources managed by other service providers
WO2013067224A1 (en) * 2011-11-02 2013-05-10 Akamai Technologies, Inc. Multi-domain configuration handling in an edge network server
US8990307B2 (en) 2011-11-16 2015-03-24 Box, Inc. Resource effective incremental updating of a remote client with events which occurred via a cloud-enabled platform
WO2013082320A1 (en) 2011-11-29 2013-06-06 Box, Inc. Mobile platform file and folder selection functionalities for offline access and synchronization
US8832249B2 (en) 2011-11-30 2014-09-09 At&T Intellectual Property I, L.P. Methods and apparatus to adjust resource allocation in a distributive computing network
US20130160129A1 (en) * 2011-12-19 2013-06-20 Verizon Patent And Licensing Inc. System security evaluation
US9019123B2 (en) 2011-12-22 2015-04-28 Box, Inc. Health check services for web-based collaboration environments
US9904435B2 (en) 2012-01-06 2018-02-27 Box, Inc. System and method for actionable event generation for task delegation and management via a discussion forum in a web-based collaboration environment
US9705704B2 (en) * 2012-01-13 2017-07-11 Verizon Patent And Licensing Inc. Method and system of forming a mobile virtual network
US10257109B2 (en) * 2012-01-18 2019-04-09 International Business Machines Corporation Cloud-based content management system
US11232481B2 (en) 2012-01-30 2022-01-25 Box, Inc. Extended applications of multimedia content previews in the cloud-based content management system
US8775638B2 (en) * 2012-02-02 2014-07-08 Siemens Aktiengesellschaft Method, computer readable medium and system for scaling medical applications in a public cloud data center
JP6460798B2 (en) 2012-02-10 2019-01-30 オラクル・インターナショナル・コーポレイション Cloud computing service framework
US9965745B2 (en) 2012-02-24 2018-05-08 Box, Inc. System and method for promoting enterprise adoption of a web-based collaboration environment
US9195636B2 (en) 2012-03-07 2015-11-24 Box, Inc. Universal file type preview for mobile devices
EP2651076B1 (en) * 2012-03-15 2016-08-03 Alcatel Lucent Method and server for determining home network quality
JP2013207784A (en) * 2012-03-29 2013-10-07 Fujitsu Ltd Communication interface device, program thereof, and virtual network construction method
CN109889443B (en) * 2012-03-29 2021-07-30 瑞典爱立信有限公司 Cloud computing system and method for implementing control plane of Evolved Packet Core (EPC) in cloud computing system
US9054919B2 (en) 2012-04-05 2015-06-09 Box, Inc. Device pinning capability for enterprise cloud service and storage accounts
US9086929B2 (en) 2012-04-06 2015-07-21 International Business Machines Corporation Dynamic allocation of a workload across a plurality of clouds
US9071613B2 (en) * 2012-04-06 2015-06-30 International Business Machines Corporation Dynamic allocation of workload deployment units across a plurality of clouds
US9575981B2 (en) 2012-04-11 2017-02-21 Box, Inc. Cloud service enabled to handle a set of files depicted to a user as a single file in a native operating system
US9286103B2 (en) * 2012-04-21 2016-03-15 International Business Machines Corporation Method and apparatus for providing a test network as an IP accessible cloud service
US9413587B2 (en) 2012-05-02 2016-08-09 Box, Inc. System and method for a third-party application to access content within a cloud-based platform
US9152640B2 (en) 2012-05-10 2015-10-06 Hewlett-Packard Development Company, L.P. Determining file allocation based on file operations
US9691051B2 (en) 2012-05-21 2017-06-27 Box, Inc. Security enhancement through application access control
US9027108B2 (en) 2012-05-23 2015-05-05 Box, Inc. Systems and methods for secure file portability between mobile applications on a mobile device
US8914900B2 (en) 2012-05-23 2014-12-16 Box, Inc. Methods, architectures and security mechanisms for a third-party application to access content in a cloud-based platform
WO2013184137A1 (en) * 2012-06-08 2013-12-12 Hewlett-Packard Development Company, L.P. Test and management for cloud applications
CN104335170A (en) * 2012-06-08 2015-02-04 惠普发展公司,有限责任合伙企业 Cloud application deployment
US8805989B2 (en) * 2012-06-25 2014-08-12 Sungard Availability Services, Lp Business continuity on cloud enterprise data centers
JP5954414B2 (en) * 2012-06-26 2016-07-20 富士通株式会社 COMMUNICATION CONTROL DEVICE, COMMUNICATION CONTROL METHOD, AND COMMUNICATION CONTROL SYSTEM
US9021099B2 (en) 2012-07-03 2015-04-28 Box, Inc. Load balancing secure FTP connections among multiple FTP servers
US9792320B2 (en) 2012-07-06 2017-10-17 Box, Inc. System and method for performing shard migration to support functions of a cloud-based service
GB2505072A (en) 2012-07-06 2014-02-19 Box Inc Identifying users and collaborators as search results in a cloud-based system
US9712510B2 (en) 2012-07-06 2017-07-18 Box, Inc. Systems and methods for securely submitting comments among users via external messaging applications in a cloud-based platform
US9237170B2 (en) 2012-07-19 2016-01-12 Box, Inc. Data loss prevention (DLP) methods and architectures by a cloud service
US9794256B2 (en) 2012-07-30 2017-10-17 Box, Inc. System and method for advanced control tools for administrators in a cloud-based service
US8868574B2 (en) 2012-07-30 2014-10-21 Box, Inc. System and method for advanced search and filtering mechanisms for enterprise administrators in a cloud-based environment
US8972956B2 (en) 2012-08-02 2015-03-03 International Business Machines Corporation Application deployment in heterogeneous environments
US10963420B2 (en) * 2012-08-10 2021-03-30 Adobe Inc. Systems and methods for providing hot spare nodes
US9292352B2 (en) 2012-08-10 2016-03-22 Adobe Systems Incorporated Systems and methods for cloud management
US9369520B2 (en) 2012-08-19 2016-06-14 Box, Inc. Enhancement of upload and/or download performance based on client and/or server feedback information
US8745267B2 (en) 2012-08-19 2014-06-03 Box, Inc. Enhancement of upload and/or download performance based on client and/or server feedback information
GB2513671A (en) 2012-08-27 2014-11-05 Box Inc Server side techniques for reducing database workload in implementing selective subfolder synchronization in a cloud-based environment
US9135462B2 (en) 2012-08-29 2015-09-15 Box, Inc. Upload and download streaming encryption to/from a cloud-based platform
US9311071B2 (en) 2012-09-06 2016-04-12 Box, Inc. Force upgrade of a mobile application via a server side configuration file
US9117087B2 (en) 2012-09-06 2015-08-25 Box, Inc. System and method for creating a secure channel for inter-application communication based on intents
US9195519B2 (en) 2012-09-06 2015-11-24 Box, Inc. Disabling the self-referential appearance of a mobile application in an intent via a background registration
US9106700B2 (en) * 2012-09-06 2015-08-11 Amazon Technologies, Inc. Risk aware domain name service
CN103828300B (en) * 2012-09-07 2016-10-19 运软网络科技(上海)有限公司 Logic is paid point and is paid the telecom information network architecture formula mapped system of point to physics
US9292833B2 (en) 2012-09-14 2016-03-22 Box, Inc. Batching notifications of activities that occur in a web-based collaboration environment
US10200256B2 (en) 2012-09-17 2019-02-05 Box, Inc. System and method of a manipulative handle in an interactive mobile user interface
US9553758B2 (en) 2012-09-18 2017-01-24 Box, Inc. Sandboxing individual applications to specific user folders in a cloud-based service
US10915492B2 (en) 2012-09-19 2021-02-09 Box, Inc. Cloud-based platform enabled with media content indexed for text-based searches and/or metadata extraction
US9843484B2 (en) * 2012-09-25 2017-12-12 A10 Networks, Inc. Graceful scaling in software driven networks
US9959420B2 (en) 2012-10-02 2018-05-01 Box, Inc. System and method for enhanced security and management mechanisms for enterprise administrators in a cloud-based environment
US9495364B2 (en) 2012-10-04 2016-11-15 Box, Inc. Enhanced quick search features, low-barrier commenting/interactive features in a collaboration platform
US9705967B2 (en) 2012-10-04 2017-07-11 Box, Inc. Corporate user discovery and identification of recommended collaborators in a cloud platform
US9665349B2 (en) 2012-10-05 2017-05-30 Box, Inc. System and method for generating embeddable widgets which enable access to a cloud-based collaboration platform
US9756022B2 (en) 2014-08-29 2017-09-05 Box, Inc. Enhanced remote key management for an enterprise in a cloud-based environment
US9628268B2 (en) 2012-10-17 2017-04-18 Box, Inc. Remote key management in a cloud-based environment
US9537973B2 (en) 2012-11-01 2017-01-03 Microsoft Technology Licensing, Llc CDN load balancing in the cloud
US9374276B2 (en) 2012-11-01 2016-06-21 Microsoft Technology Licensing, Llc CDN traffic management in the cloud
CN102932478B (en) * 2012-11-15 2016-08-17 北京搜狐新媒体信息技术有限公司 A kind of cloud platform node selecting method and system
US9569328B2 (en) * 2012-11-29 2017-02-14 Sap Se Managing application log levels in cloud environment
US8539080B1 (en) 2012-12-18 2013-09-17 Microsoft Corporation Application intelligent request management based on server health and client information
US10235383B2 (en) 2012-12-19 2019-03-19 Box, Inc. Method and apparatus for synchronization of items with read-only permissions in a cloud-based environment
WO2014105027A1 (en) * 2012-12-27 2014-07-03 Intel Corporation Reservation and execution image writing of native computing devices
US9396245B2 (en) 2013-01-02 2016-07-19 Box, Inc. Race condition handling in a system which incrementally updates clients with events that occurred in a cloud-based collaboration platform
CN103051564B (en) * 2013-01-07 2016-03-30 杭州华三通信技术有限公司 The method and apparatus of dynamic resource allocation
US9953036B2 (en) 2013-01-09 2018-04-24 Box, Inc. File system monitoring in a system which incrementally updates clients with events that occurred in a cloud-based collaboration platform
EP2755151A3 (en) 2013-01-11 2014-09-24 Box, Inc. Functionalities, features and user interface of a synchronization client to a cloud-based environment
EP2757491A1 (en) 2013-01-17 2014-07-23 Box, Inc. Conflict resolution, retry condition management, and handling of problem files for the synchronization client to a cloud-based platform
US20140208214A1 (en) * 2013-01-23 2014-07-24 Gabriel D. Stern Systems and methods for monitoring, visualizing, and managing physical devices and physical device locations
US9292349B2 (en) 2013-03-15 2016-03-22 International Business Machines Corporation Detecting deployment conflicts in heterogenous environments
US9392050B2 (en) 2013-03-15 2016-07-12 Cisco Technology, Inc. Automatic configuration of external services based upon network activity
US9298511B2 (en) 2013-03-15 2016-03-29 International Business Machines Corporation Resolving deployment conflicts in heterogeneous environments
US20160057214A1 (en) * 2013-04-15 2016-02-25 P. Ashok Anand Load Balancer System and Method for Server/Nodes in Cloud Environment
EP2989554B1 (en) * 2013-04-26 2020-02-05 LeoNovus USA Cloud computer system and method based on distributed consumer electronic devices
US9294483B2 (en) 2013-05-03 2016-03-22 John Wong Method and system for mitigation of distributed denial of service (DDOS) attacks
US9674217B2 (en) 2013-05-03 2017-06-06 John Wong Method and system for mitigation of distributed denial of service (DDOS) attacks
US10846074B2 (en) 2013-05-10 2020-11-24 Box, Inc. Identification and handling of items to be ignored for synchronization with a cloud-based platform by a synchronization client
US10725968B2 (en) * 2013-05-10 2020-07-28 Box, Inc. Top down delete or unsynchronization on delete of and depiction of item synchronization with a synchronization client to a cloud-based platform
US9672503B2 (en) 2013-05-21 2017-06-06 Amazon Technologies, Inc. Bandwidth metering in large-scale networks
GB2515192B (en) 2013-06-13 2016-12-14 Box Inc Systems and methods for synchronization event building and/or collapsing by a synchronization component of a cloud-based platform
US9805050B2 (en) 2013-06-21 2017-10-31 Box, Inc. Maintaining and updating file system shadows on a local device by a synchronization client of a cloud-based platform
US10110656B2 (en) 2013-06-25 2018-10-23 Box, Inc. Systems and methods for providing shell communication in a cloud-based platform
US10229134B2 (en) 2013-06-25 2019-03-12 Box, Inc. Systems and methods for managing upgrades, migration of user data and improving performance of a cloud-based platform
US9619545B2 (en) 2013-06-28 2017-04-11 Oracle International Corporation Naïve, client-side sharding with online addition of shards
CN103312823B (en) * 2013-07-09 2016-08-10 苏州市职业大学 A kind of cloud computing system
CA2917763C (en) 2013-07-10 2021-01-12 LeoNovus USA Cloud computing system and method utilizing unused resources of non-dedicated devices
KR20150011250A (en) * 2013-07-22 2015-01-30 한국전자통신연구원 Method and system for managing cloud center
US9535924B2 (en) 2013-07-30 2017-01-03 Box, Inc. Scalability improvement in a system which incrementally updates clients with events that occurred in a cloud-based collaboration platform
US20150043911A1 (en) * 2013-08-07 2015-02-12 Nec Laboratories America, Inc. Network Depth Limited Network Followed by Compute Load Balancing Procedure for Embedding Cloud Services in Software-Defined Flexible-Grid Optical Transport Networks
US9454778B2 (en) 2013-08-14 2016-09-27 Globalfoundries Inc. Automating capacity upgrade on demand
US20150066598A1 (en) * 2013-08-30 2015-03-05 International Business Machines Corporation Predicting service delivery costs under business changes
US20160212012A1 (en) * 2013-08-30 2016-07-21 Clearpath Networks, Inc. System and method of network functions virtualization of network services within and across clouds
US9386086B2 (en) 2013-09-11 2016-07-05 Cisco Technology Inc. Dynamic scaling for multi-tiered distributed systems using payoff optimization of application classes
US10509527B2 (en) 2013-09-13 2019-12-17 Box, Inc. Systems and methods for configuring event-based automation in cloud-based collaboration platforms
US9704137B2 (en) 2013-09-13 2017-07-11 Box, Inc. Simultaneous editing/accessing of content by collaborator invitation through a web-based or mobile application to a cloud-based collaboration platform
US8892679B1 (en) 2013-09-13 2014-11-18 Box, Inc. Mobile device, methods and user interfaces thereof in a mobile device platform featuring multifunctional access and engagement in a collaborative environment provided by a cloud-based platform
US9535909B2 (en) 2013-09-13 2017-01-03 Box, Inc. Configurable event-based automation architecture for cloud-based collaboration platforms
US9213684B2 (en) 2013-09-13 2015-12-15 Box, Inc. System and method for rendering document in web browser or mobile device regardless of third-party plug-in software
GB2518298A (en) 2013-09-13 2015-03-18 Box Inc High-availability architecture for a cloud-based concurrent-access collaboration platform
US9537775B2 (en) 2013-09-23 2017-01-03 Oracle International Corporation Methods, systems, and computer readable media for diameter load and overload information and virtualization
US10866931B2 (en) 2013-10-22 2020-12-15 Box, Inc. Desktop application for accessing a cloud collaboration platform
US9912570B2 (en) * 2013-10-25 2018-03-06 Brocade Communications Systems LLC Dynamic cloning of application infrastructures
US20150117259A1 (en) * 2013-10-30 2015-04-30 REMTCS, Inc. System and method for artificial intelligence cloud management
US20150120844A1 (en) * 2013-10-31 2015-04-30 International Business Machines Corporation Hierarchical response-enabled notification system
US9838483B2 (en) 2013-11-21 2017-12-05 Oracle International Corporation Methods, systems, and computer readable media for a network function virtualization information concentrator
CN103581340B (en) * 2013-11-25 2017-02-15 星云融创(北京)科技有限公司 Method and device for accessing domain name to proxy gateway
US11388082B2 (en) 2013-11-27 2022-07-12 Oracle International Corporation Methods, systems, and computer readable media for diameter routing using software defined network (SDN) functionality
US10103959B2 (en) * 2014-01-07 2018-10-16 International Business Machines Corporation Scalable software monitoring infrastructure, using parallel task queuing, to operate in elastic cloud environments
US9680715B2 (en) * 2014-01-07 2017-06-13 International Business Machines Corporation Assessing a service offering in a networked computing environment
US9647892B2 (en) 2014-01-07 2017-05-09 Red Hat, Inc. Cloud-based service resource provisioning based on network characteristics
US20150215228A1 (en) * 2014-01-28 2015-07-30 Oracle International Corporation Methods, systems, and computer readable media for a cloud-based virtualization orchestrator
US11809451B2 (en) * 2014-02-19 2023-11-07 Snowflake Inc. Caching systems and methods
US9444735B2 (en) 2014-02-27 2016-09-13 Cisco Technology, Inc. Contextual summarization tag and type match using network subnetting
US10439944B2 (en) 2014-03-31 2019-10-08 Telefonaktiebolaget Lm Ericsson (Publ) Handling of traffic flows in a communications system
CN103973682B (en) * 2014-04-30 2018-09-04 北京奇虎科技有限公司 Carry out the method and device of web page access
US9606316B1 (en) * 2014-05-01 2017-03-28 Amazon Technologies, Inc. Data center infrastructure
US10530854B2 (en) 2014-05-30 2020-01-07 Box, Inc. Synchronization of permissioned content in cloud-based environments
US9602514B2 (en) 2014-06-16 2017-03-21 Box, Inc. Enterprise mobility management and verification of a managed application by a content provider
WO2016022693A1 (en) 2014-08-05 2016-02-11 Moxie Software, Inc. Systems and methods for client-side contextual engagement
US10425501B2 (en) 2014-08-05 2019-09-24 Moxie Software, Inc. Element mapping and rule building systems and methods for contextual site visitor engagement
US9749242B2 (en) 2014-08-20 2017-08-29 At&T Intellectual Property I, L.P. Network platform as a service layer for open systems interconnection communication model layer 4 through layer 7 services
US9800673B2 (en) 2014-08-20 2017-10-24 At&T Intellectual Property I, L.P. Service compiler component and service controller for open systems interconnection layer 4 through layer 7 services in a cloud computing system
US9742690B2 (en) 2014-08-20 2017-08-22 At&T Intellectual Property I, L.P. Load adaptation architecture framework for orchestrating and managing services in a cloud computing system
US10291689B2 (en) 2014-08-20 2019-05-14 At&T Intellectual Property I, L.P. Service centric virtual network function architecture for development and deployment of open systems interconnection communication model layer 4 through layer 7 services in a cloud computing system
US9473567B2 (en) 2014-08-20 2016-10-18 At&T Intellectual Property I, L.P. Virtual zones for open systems interconnection layer 4 through layer 7 services in a cloud computing system
US9606826B2 (en) * 2014-08-21 2017-03-28 International Business Machines Corporation Selecting virtual machines to be migrated to public cloud during cloud bursting based on resource usage and scaling policies
US9894119B2 (en) 2014-08-29 2018-02-13 Box, Inc. Configurable metadata-based automation and content classification architecture for cloud-based collaboration platforms
US10574442B2 (en) 2014-08-29 2020-02-25 Box, Inc. Enhanced remote key management for an enterprise in a cloud-based environment
US10038731B2 (en) 2014-08-29 2018-07-31 Box, Inc. Managing flow-based interactions with cloud-based shared content
US9836339B1 (en) * 2014-09-24 2017-12-05 Amazon Technologies, Inc. Application programming interface as a service
KR102295664B1 (en) * 2014-10-21 2021-08-27 삼성에스디에스 주식회사 Global server load balancer apparatus and method for dynamically controlling time-to-live
US9130844B1 (en) 2014-11-11 2015-09-08 Citigroup Technology, Inc. Systems and methods for harvesting excess compute capacity across domains
US10951501B1 (en) * 2014-11-14 2021-03-16 Amazon Technologies, Inc. Monitoring availability of content delivery networks
WO2016081910A1 (en) * 2014-11-21 2016-05-26 Huawei Technologies Co., Ltd. System and method for modifying a service-specific data plane configuration
WO2016089435A1 (en) * 2014-12-03 2016-06-09 Hewlett Packard Enterprise Development Lp Updating a virtual network topology based on monitored application data
WO2016094534A1 (en) 2014-12-09 2016-06-16 Moxie Software, Inc. Element mapping and rule building systems and methods for contextual site visitor engagement
US9912558B2 (en) 2015-01-13 2018-03-06 Intel IP Corporation Techniques for monitoring virtualized network functions or network functions virtualization infrastructure
EP3245766B1 (en) * 2015-01-13 2020-08-26 Intel IP Corporation Techniques for monitoring virtualized network functions or network functions virtualization infrastructure
EP3248338B1 (en) * 2015-01-21 2019-11-27 Telefonaktiebolaget LM Ericsson (publ) Elasticity in a virtualised network
US9769206B2 (en) 2015-03-31 2017-09-19 At&T Intellectual Property I, L.P. Modes of policy participation for feedback instances
US10129157B2 (en) 2015-03-31 2018-11-13 At&T Intellectual Property I, L.P. Multiple feedback instance inter-coordination to determine optimal actions
US10129156B2 (en) 2015-03-31 2018-11-13 At&T Intellectual Property I, L.P. Dynamic creation and management of ephemeral coordinated feedback instances
US9524200B2 (en) 2015-03-31 2016-12-20 At&T Intellectual Property I, L.P. Consultation among feedback instances
US9992277B2 (en) 2015-03-31 2018-06-05 At&T Intellectual Property I, L.P. Ephemeral feedback instances
US10277666B2 (en) 2015-03-31 2019-04-30 At&T Intellectual Property I, L.P. Escalation of feedback instances
US9917729B2 (en) 2015-04-21 2018-03-13 Oracle International Corporation Methods, systems, and computer readable media for multi-layer orchestration in software defined networks (SDNs)
US10147110B2 (en) * 2015-06-29 2018-12-04 Vmware, Inc. Methods and systems to evaluate cost driver and virtual data center costs
US9851999B2 (en) 2015-07-30 2017-12-26 At&T Intellectual Property I, L.P. Methods, systems, and computer readable storage devices for handling virtualization of a physical telephone number mapping service
US9888127B2 (en) 2015-07-30 2018-02-06 At&T Intellectual Property I, L.P. Methods, systems, and computer readable storage devices for adjusting the use of virtual resources providing communication services based on load
US9866521B2 (en) 2015-07-30 2018-01-09 At&T Intellectual Property L.L.P. Methods, systems, and computer readable storage devices for determining whether to forward requests from a physical telephone number mapping service server to a virtual telephone number mapping service server
US10277736B2 (en) 2015-07-30 2019-04-30 At&T Intellectual Property I, L.P. Methods, systems, and computer readable storage devices for determining whether to handle a request for communication services by a physical telephone number mapping service or a virtual telephone number mapping service
CN105119996A (en) * 2015-09-01 2015-12-02 浪潮集团有限公司 Resource reusing method based on cloud platform
CN114422400B (en) * 2015-09-04 2023-09-05 动态网络服务股份有限公司 Method and apparatus for real-time traffic steering using real-time user monitoring data
US10374868B2 (en) * 2015-10-29 2019-08-06 Pure Storage, Inc. Distributed command processing in a flash storage system
US9912571B2 (en) 2015-12-28 2018-03-06 International Business Machines Corporation Determining a transaction parallelization improvement metric
US9509578B1 (en) 2015-12-28 2016-11-29 International Business Machines Corporation Method and apparatus for determining a transaction parallelization metric
US20170214634A1 (en) * 2016-01-26 2017-07-27 Futurewei Technologies, Inc. Joint autoscaling of cloud applications
US9961107B2 (en) * 2016-02-19 2018-05-01 Secureworks Corp. System and method for detecting and monitoring persistent events
US10230662B2 (en) 2016-05-20 2019-03-12 Mitel Networks, Inc. Hybrid cloud deployment for hybrid unified communications
US10122651B2 (en) 2016-08-31 2018-11-06 Inspeed Networks, Inc. Dynamic bandwidth control
US10135916B1 (en) 2016-09-19 2018-11-20 Amazon Technologies, Inc. Integration of service scaling and external health checking systems
US10182033B1 (en) * 2016-09-19 2019-01-15 Amazon Technologies, Inc. Integration of service scaling and service discovery systems
US10530815B2 (en) 2016-10-24 2020-01-07 Nubeva, Inc. Seamless service updates for cloud-based security services
US10419394B2 (en) 2016-10-24 2019-09-17 Nubeva, Inc. Providing scalable cloud-based security services
US10608995B2 (en) 2016-10-24 2020-03-31 Nubeva, Inc. Optimizing data transfer costs for cloud-based security services
US10454844B2 (en) * 2017-03-08 2019-10-22 A10 Networks, Inc. Dynamic capacity planning for application delivery platform across multiple cloud deployment
US10716060B2 (en) 2017-04-03 2020-07-14 Bank Of America Corporation Data transfer between computing device and user device at different locations and over session or connection to display one or more routing networks to use
US10601718B2 (en) 2017-04-03 2020-03-24 Bank Of America Corporation Data transfer, over session or connection, and between computing device and server associated with a routing network for modifying one or more parameters of the routing network
US10609156B2 (en) * 2017-04-03 2020-03-31 Bank Of America Corporation Data transfer, over session or connection, and between computing device and server associated with one or more routing networks in response to detecting activity
US10601934B2 (en) 2017-04-03 2020-03-24 Bank Of America Corporation Data transfer, over session or connection, and between computing device and one or more servers for transmitting data to a third party computing device
US10608918B2 (en) 2017-04-03 2020-03-31 Bank Of America Corporation Data transfer, over session or connection, and between computing device and one or more servers to determine likelihood of user device using a routing network
US11558202B2 (en) * 2017-07-31 2023-01-17 Cisco Technology, Inc. Network device authentication
US10951690B2 (en) * 2017-09-22 2021-03-16 Microsoft Technology Licensing, Llc Near real-time computation of scaling unit's load and availability state
US10691082B2 (en) * 2017-12-05 2020-06-23 Cisco Technology, Inc. Dynamically adjusting sample rates based on performance of a machine-learning based model for performing a network assurance function in a network assurance system
US10721124B2 (en) * 2018-04-06 2020-07-21 Cisco Technology, Inc. Cloud management connectivity assurance
US10958580B2 (en) * 2018-10-17 2021-03-23 ColorTokens, Inc. System and method of performing load balancing over an overlay network
CN112913197B (en) * 2018-10-30 2022-09-27 慧与发展有限责任合伙企业 Software defined wide area network uplink selection for cloud services
US10904124B2 (en) 2018-11-07 2021-01-26 International Business Machines Corporation System and method for dynamic stopping of cloud-based provisioning requests
US10831557B2 (en) 2019-02-28 2020-11-10 International Business Machines Corporation Task management using a virtual node
US10644954B1 (en) 2019-05-10 2020-05-05 Capital One Services, Llc Techniques for dynamic network management
US10587457B1 (en) 2019-05-10 2020-03-10 Capital One Services, Llc Techniques for dynamic network resiliency
US11005774B2 (en) 2019-05-29 2021-05-11 Capital One Services, Llc Techniques for excess resource utilization
US10756971B1 (en) 2019-05-29 2020-08-25 Capital One Services, Llc Techniques for dynamic network strengthening
US11228643B2 (en) * 2019-06-04 2022-01-18 Capital One Services, Llc System and method for fast application auto-scaling
US10698704B1 (en) 2019-06-10 2020-06-30 Captial One Services, Llc User interface common components and scalable integrable reusable isolated user interface
CN110365765B (en) * 2019-07-11 2022-04-22 网宿科技股份有限公司 Bandwidth scheduling method and device of cache server
US10846436B1 (en) 2019-11-19 2020-11-24 Capital One Services, Llc Swappable double layer barcode
GB2599348B (en) * 2020-08-26 2022-09-21 Samsung Electronics Co Ltd Method and system for autoscaling containers in a cloud-native core network
US11509746B2 (en) * 2021-02-17 2022-11-22 Salesforce.Com, Inc. Distributing user requests to cloud computing systems across regions using a machine learning model
KR102610503B1 (en) * 2022-01-26 2023-12-06 주식회사 휴이노 Method, system and non-transitory computer-readable recording medium for supporting wireless interworking of devices
US20230318947A1 (en) * 2022-03-09 2023-10-05 Cisco Technology, Inc. Dynamic multi-cloud network traffic flow monitoring

Family Cites Families (92)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE2841684A1 (en) * 1978-09-25 1980-04-10 Bucher Guyer Ag Masch PRESS, IN PARTICULAR STONE PRESS
US4345116A (en) * 1980-12-31 1982-08-17 Bell Telephone Laboratories, Incorporated Dynamic, non-hierarchical arrangement for routing traffic
US5793763A (en) * 1995-11-03 1998-08-11 Cisco Technology, Inc. Security system for network address translation systems
US5852717A (en) * 1996-11-20 1998-12-22 Shiva Corporation Performance optimizations for computer networks utilizing HTTP
US6415329B1 (en) 1998-03-06 2002-07-02 Massachusetts Institute Of Technology Method and apparatus for improving efficiency of TCP/IP protocol over high delay-bandwidth network
US6430618B1 (en) * 1998-03-13 2002-08-06 Massachusetts Institute Of Technology Method and apparatus for distributing requests among a plurality of resources
US6108703A (en) * 1998-07-14 2000-08-22 Massachusetts Institute Of Technology Global hosting system
US6226684B1 (en) 1998-10-26 2001-05-01 Pointcast, Inc. Method and apparatus for reestablishing network connections in a multi-router network
US6275470B1 (en) * 1999-06-18 2001-08-14 Digital Island, Inc. On-demand overlay routing for computer-based communication networks
FI107421B (en) * 1999-06-28 2001-07-31 Stonesoft Oy Procedure for selecting connections
US7346695B1 (en) 2002-10-28 2008-03-18 F5 Networks, Inc. System and method for performing application level persistence
US6597956B1 (en) * 1999-08-23 2003-07-22 Terraspring, Inc. Method and apparatus for controlling an extensible computing system
US6415323B1 (en) * 1999-09-03 2002-07-02 Fastforward Networks Proximity-based redirection system for robust and scalable service-node location in an internetwork
US6449658B1 (en) * 1999-11-18 2002-09-10 Quikcat.Com, Inc. Method and apparatus for accelerating data through communication networks
US6754699B2 (en) 2000-07-19 2004-06-22 Speedera Networks, Inc. Content delivery and global traffic management network system
US6405252B1 (en) * 1999-11-22 2002-06-11 Speedera Networks, Inc. Integrated point of presence server network
US7441045B2 (en) 1999-12-13 2008-10-21 F5 Networks, Inc. Method and system for balancing load distribution on a wide area network
US6754706B1 (en) * 1999-12-16 2004-06-22 Speedera Networks, Inc. Scalable domain name system with persistence and load balancing
US6665726B1 (en) 2000-01-06 2003-12-16 Akamai Technologies, Inc. Method and system for fault tolerant media streaming over the internet
US6820133B1 (en) 2000-02-07 2004-11-16 Netli, Inc. System and method for high-performance delivery of web content using high-performance communications protocol between the first and second specialized intermediate nodes to optimize a measure of communications performance between the source and the destination
US7340532B2 (en) * 2000-03-10 2008-03-04 Akamai Technologies, Inc. Load balancing array packet routing system
US7020719B1 (en) * 2000-03-24 2006-03-28 Netli, Inc. System and method for high-performance delivery of Internet messages by selecting first and second specialized intermediate nodes to optimize a measure of communications performance between the source and the destination
US7251688B2 (en) * 2000-05-26 2007-07-31 Akamai Technologies, Inc. Method for generating a network map
JP4690628B2 (en) * 2000-05-26 2011-06-01 アカマイ テクノロジーズ インコーポレイテッド How to determine which mirror site should receive end-user content requests
US7072979B1 (en) * 2000-06-28 2006-07-04 Cisco Technology, Inc. Wide area load balancing of web traffic
US7165116B2 (en) 2000-07-10 2007-01-16 Netli, Inc. Method for network discovery using name servers
US7346676B1 (en) 2000-07-19 2008-03-18 Akamai Technologies, Inc. Load balancing service
US7484002B2 (en) * 2000-08-18 2009-01-27 Akamai Technologies, Inc. Content delivery and global traffic management network system
US6795823B1 (en) * 2000-08-31 2004-09-21 Neoris Logistics, Inc. Centralized system and method for optimally routing and tracking articles
WO2002023337A2 (en) * 2000-09-12 2002-03-21 Falcon Asset Acquisition Group Method and apparatus for flash load balancing
US7454500B1 (en) * 2000-09-26 2008-11-18 Foundry Networks, Inc. Global server load balancing
US7653700B1 (en) * 2000-11-16 2010-01-26 Microsoft Corporation System and method for performing client-centric load balancing of multiple globally-dispersed servers
US7478148B2 (en) * 2001-01-16 2009-01-13 Akamai Technologies, Inc. Using virtual domain name service (DNS) zones for enterprise content delivery
US7155515B1 (en) * 2001-02-06 2006-12-26 Microsoft Corporation Distributed load balancing for single entry-point systems
US7003572B1 (en) 2001-02-28 2006-02-21 Packeteer, Inc. System and method for efficiently forwarding client requests from a proxy server in a TCP/IP computing environment
WO2002071242A1 (en) 2001-03-01 2002-09-12 Akamai Technologies, Inc. Optimal route selection in a content delivery network
US6982954B2 (en) * 2001-05-03 2006-01-03 International Business Machines Corporation Communications bus with redundant signal paths and method for compensating for signal path errors in a communications bus
US7102996B1 (en) 2001-05-24 2006-09-05 F5 Networks, Inc. Method and system for scaling network traffic managers
US7480705B2 (en) * 2001-07-24 2009-01-20 International Business Machines Corporation Dynamic HTTP load balancing method and apparatus
US6880002B2 (en) * 2001-09-05 2005-04-12 Surgient, Inc. Virtualized logical server cloud providing non-deterministic allocation of logical attributes of logical servers to physical resources
US7475157B1 (en) * 2001-09-14 2009-01-06 Swsoft Holding, Ltd. Server load balancing system
US7373644B2 (en) * 2001-10-02 2008-05-13 Level 3 Communications, Llc Automated server replication
CA2410172A1 (en) * 2001-10-29 2003-04-29 Jose Alejandro Rueda Content routing architecture for enhanced internet services
US6606685B2 (en) * 2001-11-15 2003-08-12 Bmc Software, Inc. System and method for intercepting file system writes
US7257584B2 (en) * 2002-03-18 2007-08-14 Surgient, Inc. Server file management
US7454458B2 (en) 2002-06-24 2008-11-18 Ntt Docomo, Inc. Method and system for application load balancing
US7086061B1 (en) * 2002-08-01 2006-08-01 Foundry Networks, Inc. Statistical tracking of global server load balancing for selecting the best network address from ordered list of network addresses based on a set of performance metrics
US7676576B1 (en) * 2002-08-01 2010-03-09 Foundry Networks, Inc. Method and system to clear counters used for statistical tracking for global server load balancing
US7185067B1 (en) 2002-08-27 2007-02-27 Cisco Technology, Inc. Load balancing network access requests
US7136922B2 (en) 2002-10-15 2006-11-14 Akamai Technologies, Inc. Method and system for providing on-demand content delivery for an origin server
GB0227786D0 (en) * 2002-11-29 2003-01-08 Ibm Improved remote copy synchronization in disaster recovery computer systems
US7126955B2 (en) * 2003-01-29 2006-10-24 F5 Networks, Inc. Architecture for efficient utilization and optimum performance of a network
AU2004216040A1 (en) * 2003-02-24 2004-09-10 Bea Systems, Inc. System and method for server load balancing and server affinity
US7430568B1 (en) 2003-02-28 2008-09-30 Sun Microsystems, Inc. Systems and methods for providing snapshot capabilities in a storage virtualization environment
CN1266895C (en) * 2003-03-11 2006-07-26 华为技术有限公司 Method for dynamically lossless regulating bandwidth of inner embedded elastic package circular network
US7308499B2 (en) 2003-04-30 2007-12-11 Avaya Technology Corp. Dynamic load balancing for enterprise IP traffic
US7398422B2 (en) 2003-06-26 2008-07-08 Hitachi, Ltd. Method and apparatus for data recovery system using storage based journaling
US7436775B2 (en) 2003-07-24 2008-10-14 Alcatel Lucent Software configurable cluster-based router using stock personal computers as cluster nodes
US7286476B2 (en) * 2003-08-01 2007-10-23 F5 Networks, Inc. Accelerating network performance by striping and parallelization of TCP connections
US7392314B2 (en) * 2003-08-15 2008-06-24 International Business Machines Corporation System and method for load—balancing in a resource infrastructure running application programs
US20050060704A1 (en) * 2003-09-17 2005-03-17 International Business Machines Corporation Managing processing within computing environments including initiation of virtual machines
US7376084B2 (en) * 2003-09-29 2008-05-20 At&T Corp. Method and apparatus of providing resource allocation and admission control support in a VPN
US7203796B1 (en) * 2003-10-24 2007-04-10 Network Appliance, Inc. Method and apparatus for synchronous data mirroring
US7325109B1 (en) * 2003-10-24 2008-01-29 Network Appliance, Inc. Method and apparatus to mirror data at two separate sites without comparing the data at the two sites
US7389510B2 (en) 2003-11-06 2008-06-17 International Business Machines Corporation Load balancing of servers in a cluster
US7380039B2 (en) 2003-12-30 2008-05-27 3Tera, Inc. Apparatus, method and system for aggregrating computing resources
US7490103B2 (en) 2004-02-04 2009-02-10 Netapp, Inc. Method and system for backing up data
US7426617B2 (en) * 2004-02-04 2008-09-16 Network Appliance, Inc. Method and system for synchronizing volumes in a continuous data protection system
US7725035B2 (en) * 2004-04-20 2010-05-25 Fujitsu Limited Method and system for managing network traffic
US7266656B2 (en) 2004-04-28 2007-09-04 International Business Machines Corporation Minimizing system downtime through intelligent data caching in an appliance-based business continuance architecture
US8521687B2 (en) * 2004-08-03 2013-08-27 International Business Machines Corporation Apparatus, system, and method for selecting optimal replica sources in a grid computing environment
US7840963B2 (en) 2004-10-15 2010-11-23 Microsoft Corporation Marking and utilizing portions of memory state information during a switch between virtual machines to minimize software service interruption
US7779410B2 (en) 2004-12-17 2010-08-17 Sap Ag Control interfaces for distributed system applications
US7710865B2 (en) 2005-02-25 2010-05-04 Cisco Technology, Inc. Disaster recovery for active-standby data center using route health and BGP
US7607129B2 (en) * 2005-04-07 2009-10-20 International Business Machines Corporation Method and apparatus for using virtual machine technology for managing parallel communicating applications
US8949364B2 (en) 2005-09-15 2015-02-03 Ca, Inc. Apparatus, method and system for rapid delivery of distributed applications
ITMI20051972A1 (en) * 2005-10-18 2007-04-19 Marconi Comm Spa AUTOMATIC ADAPTATION OF THE CONNECTIVITY FOR TRAFFIC PACKAGES IN A TRANSPORTATION NETWORK
US20070130324A1 (en) * 2005-12-05 2007-06-07 Jieming Wang Method for detecting non-responsive applications in a TCP-based network
US7487383B2 (en) 2006-06-29 2009-02-03 Dssdr, Llc Data transfer and recovery process
US7656797B2 (en) 2006-12-21 2010-02-02 Verizon Patent And Licensing Inc. Method, computer program product, and apparatus for providing a distributed router architecture
US7719997B2 (en) 2006-12-28 2010-05-18 At&T Corp System and method for global traffic optimization in a network
US20080159287A1 (en) * 2006-12-29 2008-07-03 Lucent Technologies Inc. EFFICIENT PERFORMANCE MONITORING USING IPv6 CAPABILITIES
WO2008084826A1 (en) * 2007-01-11 2008-07-17 Nec Corporation Provisioning system, method, and program
US7987467B2 (en) 2007-04-13 2011-07-26 International Business Machines Corporation Scale across in a grid computing environment
EP2153340A4 (en) 2007-05-08 2015-10-21 Riverbed Technology Inc A hybrid segment-oriented file server and wan accelerator
US20080320482A1 (en) 2007-06-20 2008-12-25 Dawson Christopher J Management of grid computing resources based on service level requirements
US8073922B2 (en) 2007-07-27 2011-12-06 Twinstrata, Inc System and method for remote asynchronous data replication
US7970903B2 (en) 2007-08-20 2011-06-28 Hitachi, Ltd. Storage and server provisioning for virtualized and geographically dispersed data centers
US8565117B2 (en) 2008-01-15 2013-10-22 Alcatel Lucent Systems and methods for network routing
US7886021B2 (en) * 2008-04-28 2011-02-08 Oracle America, Inc. System and method for programmatic management of distributed computing resources
US9870541B2 (en) * 2008-11-26 2018-01-16 Red Hat, Inc. Service level backup using re-cloud network
US7996525B2 (en) * 2008-12-31 2011-08-09 Sap Ag Systems and methods for dynamically provisioning cloud computing resources

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
F.A. SAMIMI ET AL.: 'Self-Managed Networks, Systems, and Services.' LECTURE NOTES IN COMPUTER SCIENCE vol. 3996, 31 December 2006, pages 130 - 141 *
J. VARIA: 'Cloud Architectures' AMAZON WEB SERVICES BLOG., [Online] 16 July 2008, Retrieved from the Internet: <URL:http://aws.typepad.com/aws/2008/07/white-paper-on.html> *

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8789164B2 (en) 2012-03-16 2014-07-22 International Business Machines Corporation Scalable virtual appliance cloud (SVAC) and devices usable in an SVAC
US9009831B2 (en) 2012-03-16 2015-04-14 International Business Machines Corporation Scalable virtual appliance cloud (SVAC) and methods usable in an SVAC
US9736163B2 (en) 2012-03-16 2017-08-15 International Business Machines Corporation Scalable virtual appliance cloud (SVAC) and methods usable in an SVAC
US9871745B2 (en) 2014-11-12 2018-01-16 International Business Machines Corporation Automatic scaling of at least one user application to external clouds
US9912607B2 (en) 2014-11-12 2018-03-06 International Business Machines Corporation Automatic scaling of at least one user application to external clouds
US10382565B2 (en) 2017-01-27 2019-08-13 Red Hat, Inc. Capacity scaling of network resources
US10693975B2 (en) 2017-01-27 2020-06-23 Red Hat, Inc. Capacity scaling of network resources
CN109862016A (en) * 2019-02-19 2019-06-07 电子科技大学 A kind of countercheck for the automatic dilatation Yo-Yo attack of cloud computing

Also Published As

Publication number Publication date
US20100220622A1 (en) 2010-09-02
EP2401841A2 (en) 2012-01-04
EP2401841A4 (en) 2012-08-15
US8209415B2 (en) 2012-06-26
WO2010099514A3 (en) 2011-01-06
US20100223378A1 (en) 2010-09-02
WO2010099513A2 (en) 2010-09-02
WO2010099513A3 (en) 2011-01-13

Similar Documents

Publication Publication Date Title
US8209415B2 (en) System and method for computer cloud management
US20100223364A1 (en) System and method for network traffic management and load balancing
US20100228819A1 (en) System and method for performance acceleration, data protection, disaster recovery and on-demand scaling of computer applications
US7941556B2 (en) Monitoring for replica placement and request distribution
JP6630792B2 (en) Manage computing sessions
US9906578B2 (en) System and method for providing an enterprise deployment topology
US8805975B2 (en) Using routing protocols to optimize resource utilization
US7657536B2 (en) Application of resource-dependent policies to managed resources in a distributed computing system
JP5727053B2 (en) External live migration
US20050198303A1 (en) Dynamic virtual machine service provider allocation
US20030009540A1 (en) Method and system for presentation and specification of distributed multi-customer configuration management within a network management framework
US8805973B2 (en) Using routing protocols to migrate a hosted account
US20150046591A1 (en) Dynamic edge server allocation
Kim et al. A load cluster management system using SNMP and web
US11159646B1 (en) Identifying, presenting, and launching preferred applications on virtual desktop instances
Simoens et al. Service-centric networking for distributed heterogeneous clouds
US8819198B2 (en) Using static routing to migrate a hosted account
US8402124B1 (en) Method and system for automatic load balancing of advertised services by service information propagation based on user on-demand requests
US11349718B2 (en) Capacity bursting using a remote control plane
US11431553B2 (en) Remote control planes with automated failover
US8805974B2 (en) Using static routing to optimize resource utilization
CN114500450A (en) Domain name resolution method, device and computer readable storage medium
EP3980892A1 (en) Remote control planes with automated failover
Kamisiński et al. Resilient NFV Technology and Solutions
Amir et al. N-way fail-over infrastructure for reliable servers and routers

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 10746959

Country of ref document: EP

Kind code of ref document: A2

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 10746959

Country of ref document: EP

Kind code of ref document: A2