IP Library Granted Patent US 10,298,670
Granted Patent B2
US 10,298,670 · App. 15/695,455 · Granted May 21, 2019

Real time cloud workload streaming

Inventors: Israel Ben-Shaul (Ramat Hasharon, IL); Ady Degany (Haifa, IL); Leonid Vasetsky (Zikhron Yaakov, IL); Shahar Glixman (Kiryat Tivon, IL); Yaniv Ben-Ari (Kochav Yair, IL)
Assignee: Google LLC
H04L67/1008G06F3/061G06F3/064G06F3/065G06F3/067G06F3/0619G06F3/0635G06F3/0647G06F3/0683G06F9/45558G06F9/4856G06F9/5061G06F9/5072G06F9/5083H04L41/0806H04L67/1097H04L67/2847H04L67/2852H04L67/2876G06F12/0868G06F2009/4557H04L67/1095
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,298,670
App. No.
15/695,455
Filed
Sep 5, 2017
Granted
May 21, 2019
Kind
B2
Art Unit
2115
USPC
713/300
Abstract

A method and system for real-time cloud bursting is provided. The method and system are directed to extending a data center with cloud computing resources by decoupling computing resources and storage devices in a virtualized data center, and booting the decoupled computing resources in a staged process while storage devices are divided and prioritized into components. Data and boot instructions are re-routed and cached as needed through a proxy system.

Claims (73)

1. A computer-implemented method comprising:

executing a workload on a first computer;

transferring the workload from the first computer to a second computer, the second computer being geographically distant from the first computer, the transferring comprising:

coupling a first edge appliance to the first computer;

remotely coupling a second edge appliance to the first edge appliance, wherein the second edge appliance is coupled to the second computer;

streaming run state information for the workload from the first computer to the second computer through the first edge appliance and the second edge appliance;

using the run state information, executing the workload on the second computer including streaming data from the first computer through the first edge appliance to store in a cache in the second edge appliance.

2. The method of claim 1 , further comprising:

capturing the run state information of the first computer;

loading a workload run state of the second computer for the workload based on the run state information from the first computer.

3. The method of claim 1 , further comprising:

causing the first computer that executes the workload to enter into a standby or hibernation mode in which the first computer stops executing the workload;

capturing the run state information of the first computer in the standby or hibernation mode;

configuring a workload run state of the second computer for the workload based on the run state information from the first computer;

continuing executing the same workload that had stopped on the first computer, using the second computer.

4. The method of claim 1 , wherein the run state information includes one or more of: state of CPU, in-memory CPU instructions, a memory state, and register values that are replicated from a target storage, or lower level virtual hardware components of the first computer.

5. The method of claim 1 further comprising determining a success of the transferring the workload from the first computer to the second computer by measuring a difference between a first current state of the first computer and a second current state of the second computer after the transferring.

6. The method of claim 1 , wherein the first edge appliance is a block storage device for the first computer.

7. The method of claim 1 , wherein the second edge appliance is a block storage device for the second computer.

8. A computer-implemented method comprising:

executing a workload by a first computing instance using a first software framework of a first computer;

coupling a first edge appliance to the first computer;

remotely coupling a second edge appliance to the first edge appliance, wherein the second edge appliance is coupled to a second computer;

transferring the workload from the first computer to the second computer, the second computer being geographically distant from the first computer, the transferring comprising:

deactivating the first computing instance thereby causing:

stop in an execution of the workload by the first computing instance using the first software framework of the first computer, and

storing a run state information for the workload on a storage accessible by the first edge appliance;

streaming the run state information from the first computer through the first edge appliance to store in a cache in the second edge appliance;

using the run state information, continuing the execution of the workload using a second software framework on the second computer.

9. The method of claim 8 ,

wherein the first computing instance is a first container, the first software framework is a first container framework of the first computer, and the second software framework is a second container framework;

wherein continuing the execution of the workload using the second software framework on the second computer includes continuing the execution of the workload by a second container initiated by the second container framework of the second computer.

10. The method of claim 8 ,

wherein the first computing instance is a first container and the first software framework is a first container framework of computer;

wherein storing run state information for the workload on the first edge appliance includes:

generating a first container image of the first container that includes the run state information for the workload,

streaming the first container image from the first computer through the first edge appliance to store in the cache in the second edge appliance thereby generating a second container image, corresponding to the first container image, on the second edge appliance.

11. The method of claim 8 ,

wherein the second software framework is a second container framework;

wherein continuing the execution of the workload using the second software framework on the second computer includes continuing the execution of the workload by a second container initiated by the second container framework of the second computer and includes:

receiving a second container image from the first edge appliance through the second edge appliance, the second container image containing at least the run state information of the workload,

loading the second container image into the second container framework causing running of the second container using the second container framework, the running of the second container thereby causing the continuing of the execution of the workload on the second computer.

12. The method of claim 8 , wherein the first computing instance is a first virtual computer system, and the first software framework is a first hypervisor operating system that runs on the first computer;

using a configuration of the first virtual computer system, configuring a first container image of the first container framework that runs on the first computer;

loading the first container image by the first container framework, thereby initiating an execution of a first container by the first container framework, the first container continuing an execution of the workload using the first container framework that runs on the first computer.

13. The method of claim 12 , further comprising:

stopping the first virtual computer system which is executing the workload thereby causing the run state information for the workload to be stored on the first computer;

retrieving the run state information for the workload and configuring the first container image with the run state information for the workload.

14. The method of claim 12 , further comprising:

retrieving a network configuration information of the first virtual computer system;

using the network configuration information of the first virtual computer system, to configure a network configuration for the first container.

15. The method of claim 12 , further comprising:

configuring the first container to identify the first edge appliance as a storage target.

16. The method of claim 12 , further comprising:

retrieving the configuration of the first virtual computer system by scanning one or more virtual system images for the first virtual computer system.

17. A system comprising:

one or more processors;

one or more storage media storing one or more computer programs for execution by the one or more processors, the one or more computer programs comprising program instructions for:

executing a workload on a first computer;

transferring the workload from the first computer to a second computer, the second computer being geographically distant from the first computer, the transferring comprising:

coupling a first edge appliance to the first computer;

remotely coupling a second edge appliance to the first edge appliance, wherein the second edge appliance is coupled to the second computer;

streaming run state information for the workload from the first computer to the second computer through the first edge appliance and the second edge appliance;

using the run state information, executing the workload on the second computer including streaming data from the first computer through the first edge appliance to store in a cache in the second edge appliance.

18. The system of claim 17 , the program instructions further configured for:

capturing the run state information of the first computer;

loading a workload run state of the second computer for the workload based on the run state information from the first computer.

19. The system of claim 17 , the program instructions further configured for:

causing the first computer that executes the workload to enter into a standby or hibernation mode in which the first computer stops executing the workload;

capturing the run state information of the first computer in the standby or hibernation mode;

configuring a workload run state of the second computer for the workload based on the run state information from the first computer;

continuing executing the same workload that had stopped on the first computer, using the second computer.

20. The system of claim 17 , wherein the run state information includes one or more of: state of CPU, in-memory CPU instructions, a memory state, and register values that are replicated from a target storage, or lower level virtual hardware components of the first computer.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 24, 2018
From: VELOSTRATA LTD.
To: GOOGLE LLC
Reel/Frame 047297/0401 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 7, 2017
From: BEN-SHAUL, ISRAEL; DEGANY, ADY; VASETSKY, LEONID; GLIXMAN, SHAHAR; BEN-ARI, YANIV
To: VELOSTRATA LTD.
Reel/Frame 043521/0761 →
Continuity (3)
Continuation In Part 14554837 · Nov 26, 2014
Provisional Application 61992560 · May 13, 2014
Related Publication 20170366606A1 · Dec 21, 2017
Cited By (25)
US 12,309,022 US 12,333,327 US 12,411,738 US 12,457,493 US 12,461,801 US 12,470,490 US 12,481,493 US 12,489,821 US 12,490,095 US 12,494,979 US 12,500,907 US 12,530,470 US 12,537,820 US 12,537,829 US 12,542,786 US 12,574,411 US 12,574,419 US 12,603,913 US 12,608,499 US 12,621,129 US 12,671,702 US 12,683,988 US 12,684,048 US 12,717,939 US 12,719,747