IP Library Granted Patent US 10,924,340
Granted Patent B1
US 10,924,340 · App. 14/144,496 · Granted Feb 16, 2021

Extending computing capacity via cloud replication

Inventors: Anand Iyengar (Belmont, CA); Rajeev Chawla (Union City, CA); Raman Chawla (Cupertino, CA); Panagiotis Tsirigotis (Cupertino, CA)
Assignee: VMware, Inc.
H04L41/0813
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,924,340
App. No.
14/144,496
Granted
Feb 16, 2021
Kind
B1
Abstract

A software application designed to operate within an enterprise system is modified to operate properly within a system of a third-party provider. In one embodiment, a site manager obtains pertinent information about the software application from the source systems that make up the enterprise system and provides it to a cloud manager, and the cloud manager uses the information to generate a modified version of the software application for use on a cloud provider system. Portions of the software application may then be dynamically cloned and run on the cloud provider as needed to reduce the system load on the enterprise system in response to client requests for the software application.

Claims (84)

1. A computer-implemented method performed by an enterprise system, the method comprising:

determining that a source system of the enterprise system is experiencing-a degree of system load beyond a threshold;

sending a first request to a cloud manager to create a clone instance of the source system by replicating the source system of the enterprise system on a cloud provider located remotely from the enterprise system;

receiving a second request destined for the source system;

determining that the clone instance of the source system has been created on the cloud provider;

responsive to determining that the clone instance of the source system has been created on the cloud provider, delegating the second request to the clone instance;

creating a first tunnel between the clone instance on the cloud provider and the source system of the enterprise system based on a private IP address associated with the cloud provider, wherein creating the first tunnel comprises:

initiating a secure connection to the clone instance on the cloud provider over a second tunnel that is established between the cloud provider and the enterprise system based on a public IP address associated with the cloud provider; and

establishing port forwarding from the source system of the enterprise system to the clone instance on the cloud provider after the secure connection is established;

requesting a copy of cloud configuration data from the cloud provider, wherein the cloud configuration data contains information regarding a port to access a service available in the enterprise system;

recording the port at the enterprise system;

receiving a third request from the clone instance for the service of the enterprise system sent via the first tunnel through the recorded port;

invoking the requested service; and

providing a result of the invocation of the requested service to the clone instance over the first tunnel.

2. The computer-implemented method of claim 1 , further comprising:

receiving an IP address of the clone instance from the cloud provider; and

configuring a load balancer system to associate the received IP address with the source system.

3. The computer-implemented method of claim 2 , wherein delegating the second request to the clone instance comprises sending the second request to the received IP address.

4. The computer-implemented method of claim 1 , further comprising:

identifying that the source system is no longer experiencing at least the threshold degree of system load; and

responsive to identifying that the source system is no longer experiencing the degree of system load beyond the threshold, sending a fourth request to the cloud manager to deallocate the clone instance.

5. The computer-implemented method of claim 1 , wherein the degree of system load is evaluated based on CPU usage of the source system, memory usage of the source system, and network bandwidth usage of the source system.

6. A non-transitory computer-readable storage medium storing instructions executable by a processor, the instructions comprising:

instructions for determining that a source system of the enterprise system is experiencing a degree of system load beyond a threshold;

instructions for sending a first request to a cloud manager to create a clone instance of the source system by replicating the source system of the enterprise system on a cloud provider located remotely from the enterprise system;

instructions for receiving a second request destined for the source system;

instructions for determining that the clone instance of the source system has been created on the cloud provider;

instructions for, responsive to determining that the clone instance of the source system has been created on the cloud provider, delegating the second request to the clone instance;

instructions for creating a first tunnel between the clone instance on the cloud provider and the source system of the enterprise system based on a private IP address associated with the cloud provider, wherein the instructions comprise:

instructions for initiating a secure connection to the clone instance on the cloud provider over a second tunnel that is established between the cloud provider and the enterprise system based on a public IP address associated with the cloud provider; and

instructions for establishing port forwarding from the source system of the enterprise system to the clone instance on the cloud provider after the secure connection is established;

instructions for requesting a copy of cloud configuration data from the cloud provider, wherein the cloud configuration data contains information regarding a port to access a service available in the enterprise system;

instructions for recording the port at the enterprise system;

instructions for receiving a third request from the clone instance for the service of the enterprise system sent via the first tunnel through the recorded port;

instructions for invoking the requested service; and

instructions for providing a result of the invocation of the requested service to the clone instance over the first tunnel.

7. The non-transitory computer-readable storage medium of claim 6 , the instructions further comprising:

instructions for receiving an IP address of the clone instance from the cloud provider; and

instructions for configuring a load balancer system to associate the received IP address with the source system.

8. The non-transitory computer-readable storage medium of claim 7 , wherein delegating the second request to the clone instance comprises sending the second request to the received IP address.

9. The non-transitory computer-readable storage medium of claim 6 , the instructions further comprising:

instructions for identifying that the source system is no longer experiencing at least the threshold degree of system load; and

instructions for, responsive to identifying that the source system is no longer experiencing the degree of system load beyond the threshold, sending a fourth request to the cloud manager to deallocate the clone instance.

10. The non-transitory computer-readable storage medium of claim 6 , wherein the degree of system load is evaluated based on CPU usage of the source system, memory usage of the source system, and network bandwidth usage of the source system.

11. A computer system comprising:

a computer processor; and

a computer program executable by the computer processor and comprising:

instructions for determining that a source system of the enterprise system is experiencing degree of system load beyond a threshold;

instructions for sending a first request to a cloud manager to create a clone instance of the source system by replicating the source system of the enterprise system on a cloud provider located remotely from the enterprise system;

instructions for receiving a second request destined for the source system;

instructions for determining that the clone instance of the source system has been created on the cloud provider;

instructions for, responsive to determining that the clone instance of the source system has been created on the cloud provider, delegating the second request to the clone instance;

instructions for creating a first tunnel between the clone instance on the cloud provider and the source system of the enterprise system based on a private IP address associated with the cloud provider, wherein the instructions comprise:

instructions for initiating a secure connection to the clone instance on the cloud provider over a second tunnel that is established between the cloud provider and the enterprise system based on a public IP address associated with the cloud provider; and

instructions for establishing port forwarding from the source system of the enterprise system to the clone instance on the cloud provider after the secure connection is established;

instructions for requesting a copy of cloud configuration data from the cloud provider, wherein the cloud configuration data contains information regarding a port to access a service available in the enterprise system;

instructions for recording the port at the enterprise system;

instructions for receiving a third request from the clone instance for the service of the enterprise system sent via the first tunnel through the recorded port;

instructions for invoking the requested service; and

instructions for providing a result of the invocation of the requested service to the clone instance over the first tunnel.

12. The computer system of claim 11 , the computer program further comprising:

instructions for receiving an IP address of the clone instance from the cloud provider; and

instructions for configuring a load balancer system to associate the received IP address with the source system.

13. The computer system of claim 12 , wherein delegating the second request to the clone instance comprises sending the second request to the received IP address.

14. The computer system of claim 11 , the computer program further comprising:

instructions for identifying that the source system is no longer experiencing at least the threshold degree of system load; and

instructions for, responsive to identifying that the source system is no longer experiencing the degree of system load beyond the threshold, sending a fourth request to the cloud manager to deallocate the clone instance.

15. The computer system of claim 11 , wherein the degree of system load is evaluated based on CPU usage of the source system, memory usage of the source system, and network bandwidth usage of the source system.

16. A computer-implemented method comprising:

determining that a source system of an enterprise system is experiencing a degree of system load beyond a threshold;

determining, based on stored determinations, that the source system is eligible for cloning;

responsive to determining that the source system is eligible for cloning:

sending a first request to a cloud manager to create a clone instance of the source system by replicating the source system of the enterprise system on a cloud provider;

receiving a second request for the source system;

determining that the clone instance of the source system has been created on the cloud provider;

responsive to determining that the clone instance of the source system has been created on the cloud provider, delegating the second request to the clone instance;

creating a first tunnel between the clone instance on the cloud provider and the source system of the enterprise system based on a private IP address associated with the cloud provider, wherein creating the first tunnel comprises:

initiating a secure connection to the clone instance on the cloud provider over a second tunnel that is established between the cloud provider and the enterprise system based on a public IP address associated with the cloud provider; and

establishing port forwarding from the source system of the enterprise system to the clone instance on the cloud provider after the secure connection is established;

requesting a copy of cloud configuration data from the cloud provider, wherein the cloud configuration data contains information regarding a port to access a service available in the enterprise system;

recording the port at the enterprise system;

receiving a third request from the clone instance for the service of the enterprise system sent via the first tunnel through the recorded port;

invoking the requested service; and

providing a result of the invocation of the requested service to the clone instance over the first tunnel.

Assignments (6)
CHANGE OF NAME Recorded Apr 15, 2024
From: VMWARE, INC.
To: VMWARE LLC
Reel/Frame 067103/0030 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 1, 2018
From: CLOUDVELOX, INC.
To: VMWARE, INC.
Reel/Frame 045078/0170 →
RELEASE OF SECURITY INTEREST Recorded Feb 23, 2018
From: SILICON VALLEY BANK
To: CLOUDVELOX, INC.
Reel/Frame 045432/0358 →
SECURITY INTEREST Recorded Sep 19, 2017
From: CLOUDVELOX, INC.
To: SILICON VALLEY BANK
Reel/Frame 043632/0519 →
CHANGE OF NAME Recorded Jul 9, 2014
From: CLOUDVELOCITY, INC.
To: CLOUDVELOX, INC.
Reel/Frame 033287/0821 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 16, 2014
From: IYENGAR, ANAND; CHAWLA, RAJEEV; CHAWLA, RAMAN; TSIRIGOTIS, PANAGIOTIS
To: CLOUDVELOCITY, INC.
Reel/Frame 032918/0060 →