IP Library Granted Patent US 10,649,861
Granted Patent B1
US 10,649,861 · App. 15/666,793 · Granted May 12, 2020

Operational recovery of serverless applications in a cloud-based compute services platform

Inventors: Assaf Natanzon (Tel Aviv, IL); Amit Lieberman (Kefar Sava, IL)
Assignee: EMC IP Holding Company LLC
G06F11/1469G06F11/1464H04L12/66H04L67/10
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,649,861
App. No.
15/666,793
Granted
May 12, 2020
Kind
B1
Abstract

An apparatus in one embodiment comprises at least one processing platform including a plurality of processing devices. The processing platform is configured to receive a request to execute a serverless application, to initiate execution of the serverless application responsive to the request, to utilize one or more application function mappings to invoke one or more application functions with each such application function interacting with one or more backend services in executing the serverless application, to capture state of the serverless application for a particular point in time, and to perform operational recovery of the serverless application for the particular point in time utilizing the captured state. Capturing state of the serverless application for the particular point in time comprises capturing the state in accordance with a previously-generated serverless application manifest characterizing the application function mappings, the application functions, and the backend services.

Claims (88)

1. An apparatus comprising:

at least one processing platform comprising a plurality of processing devices;

said at least one processing platform being configured:

to receive a request to execute a serverless application;

to initiate execution of the serverless application responsive to the request;

to utilize one or more application function mappings to invoke one or more application functions with each such application function interacting with one or more backend services in executing the serverless application;

to capture state of the serverless application for a particular point in time; and

to perform operational recovery of the serverless application for the particular point in time utilizing the captured state;

wherein capturing state of the serverless application for the particular point in time comprises capturing the state in accordance with a previously-generated serverless application manifest that comprises:

the one or more application function mappings;

container image identifiers for respective ones of the application functions; and

descriptors for respective ones of the one or more backend services;

wherein the serverless application manifest is automatically generated in conjunction with execution of the serverless application.

2. The apparatus of claim 1 wherein the request initiating execution of the given serverless application is received in an application programming interface gateway of the processing platform from a user device over a network.

3. The apparatus of claim 1 wherein the application functions each execute in one or more stateless ephemeral containers of the processing platform.

4. The apparatus of claim 1 wherein the backend services comprise at least one of a database service, an object storage service and a message processing service.

5. The apparatus of claim 1 wherein the one or more application function mappings each specify one or more conditions under which particular ones of the application functions are invoked.

6. The apparatus of claim 5 wherein the conditions specified by the one or more application function mappings comprise respective events each relating to one or more of the backend services.

7. The apparatus of claim 1 wherein the serverless application manifest further comprises for each of the one or more application functions of the serverless application:

a version indicator for the corresponding container image;

instructions for obtaining corresponding application function binaries or associated code; and

one or more bindings of the application function to respective ones of the backend services with which the application function interacts.

8. The apparatus of claim 7 wherein the instructions for obtaining corresponding application function binaries or associated code comprise instructions for downloading one or more of the application function binaries or associated code from a container registry or code hub.

9. The apparatus of claim 1 wherein the processing platform comprises a serverless application backup orchestrator configured to capture state of the serverless application and to perform operational recovery of the serverless application.

10. The apparatus of claim 1 wherein the processing platform in capturing the state of the serverless application for the particular point in time is further configured:

to store metadata for the one or more application function mappings that are part of the serverless application manifest;

to store a copy of a current binary or associated code for each application function container image identified in the serverless application manifest;

to generate backups for each backend service having a descriptor in the serverless application manifest; and

to generate additional metadata combining the metadata for the one or more application function mappings, the one or more stored copies of the current binaries or associated code, and the backups of the one or more backend services, into a serverless application backup for the particular point in time.

11. The apparatus of claim 10 wherein the processing platform in performing operational recovery of the serverless application for the particular point in time utilizing the captured state is further configured:

to obtain the serverless application backup for the particular point in time;

to update the one or more application function mappings based at least in part on the stored metadata;

to redeploy the application function container images from respective stored copies of their current binaries or associated code;

to recover the backend services from their respective backups; and

to execute the serverless application utilizing the updated one or more application function mappings, the redeployed application function container images and the recovered backend services.

12. The apparatus of claim 1 wherein the processing platform is further configured:

to capture state of application functions and backend services data of the serverless application at each of a plurality of different points in time in accordance with the previously-generated serverless application manifest;

to permit user selection of at least one of a plurality of serverless application backups characterizing the captured state for respective ones of the points in time; and

to recover the serverless application using the selected at least one of the serverless application backups;

wherein the user is permitted to select a first one of the serverless application backups for recovering the application functions and a second one of the serverless application backups different than the first serverless application backup for recovering the backend services data;

the application functions and the backend services data of the serverless application thereby being separately recoverable from different ones of the serverless application backups corresponding to respective different points in time.

13. The apparatus of claim 1 wherein initiating execution of the serverless application responsive to the request comprises initiating execution of the serverless application based at least in part on the server application manifest.

14. A method comprising:

receiving a request to execute a serverless application;

initiating execution of the serverless application responsive to the request;

utilizing one or more application function mappings to invoke one or more application functions with each such application function interacting with one or more backend services in executing the serverless application;

capturing state of the serverless application for a particular point in time; and

performing operational recovery of the serverless application for the particular point in time utilizing the captured state;

wherein capturing state of the serverless application for the particular point in time comprises capturing the state in accordance with a previously-generated serverless application manifest that comprises:

the one or more application function mappings;

container image identifiers for respective one of the application functions; and

descriptors for respective ones of the one or more backend services;

wherein the serverless application manifest is automatically generated in conjunction with execution of the serverless application; and

wherein the method is performed by at least one processing platform comprising a plurality of processing devices.

15. The method of claim 14 wherein capturing the state of the serverless application for the particular point in time further comprises:

storing metadata for the one or more application function mappings that are part of the serverless application manifest;

storing a copy of a current binary or associated code for each application function container image identified in the serverless application manifest;

generating backups for each backend service having a descriptor in the serverless application manifest; and

generating additional metadata combining the metadata for the one or more application function mappings, the one or more stored copies of the current binaries or associated code, and the backups of the one or more backend services, into a serverless application backup for the particular point in time.

16. The method of claim 15 wherein performing operational recovery of the serverless application for the particular point in time utilizing the captured state further comprises:

obtaining the serverless application backup for the particular point in time;

updating the one or more application function mappings based at least in part on the stored metadata;

redeploying the application function container images from respective stored copies of their current binaries or associated code;

recovering the backend services from their respective backups; and

executing the serverless application utilizing the updated one or more application function mappings, the redeployed application function container images and the recovered backend services.

17. The method of claim 14 wherein the one or more application function mappings each specify one or more conditions under which particular ones of the application functions are invoked.

18. A computer program product comprising a non-transitory processor-readable storage medium having stored therein program code of one or more software programs, wherein the program code when executed by at least one processing platform causes said at least one processing platform:

to receive a request to execute a serverless application;

to initiate execution of the serverless application responsive to the request;

to utilize one or more application function mappings to invoke one or more application functions with each such application function interacting with one or more backend services in executing the serverless application;

to capture state of the serverless application for a particular point in time; and

to perform operational recovery of the serverless application for the particular point in time utilizing the captured state;

wherein capturing state of the serverless application for the particular point in time comprises capturing the state in accordance with a previously-generated serverless application manifest that comprises:

the one or more application function mappings;

container image identifiers for respective one of the application functions; and

descriptors for respective ones of the one or more backend services;

wherein the serverless application manifest is automatically generated in conjunction with execution of the serverless application.

19. The computer program product of claim 18 wherein the processing platform in capturing the state of the serverless application for the particular point in time is further configured:

to store metadata for the one or more application function mappings that are part of the serverless application manifest;

to store a copy of a current binary or associated code for each application function container image identified in the serverless application manifest;

to generate backups for each backend service having a descriptor in the serverless application manifest; and

to generate additional metadata combining the metadata for the one or more application function mappings, the one or more stored copies of the current binaries or associated code, and the backups of the one or more backend services, into a serverless application backup for the particular point in time.

20. The computer program product of claim 19 wherein the processing platform in performing operational recovery of the serverless application for the particular point in time utilizing the captured state is further configured:

to obtain the serverless application backup for the particular point in time;

to update the one or more application function mappings based at least in part on the stored metadata;

to redeploy the application function container images from respective stored copies of their current binaries or associated code;

to recover the backend services from their respective backups; and

to execute the serverless application utilizing the updated one or more application function mappings, the redeployed application function container images and the recovered backend services.

Assignments (8)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053546/0001) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC IP HOLDING COMPANY LLC
Reel/Frame 071642/0001 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (043775/0082) Recorded May 20, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
Reel/Frame 060958/0468 →
RELEASE OF SECURITY INTEREST AT REEL 043772 FRAME 0750 Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
Reel/Frame 058298/0606 →
SECURITY AGREEMENT Recorded Apr 22, 2020
From: CREDANT TECHNOLOGIES INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 053546/0001 →
SECURITY AGREEMENT Recorded Mar 21, 2019
From: CREDANT TECHNOLOGIES, INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 049452/0223 →
PATENT SECURITY AGREEMENT (CREDIT) Recorded Sep 6, 2017
From: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 043772/0750 →
PATENT SECURITY AGREEMENT (NOTES) Recorded Sep 6, 2017
From: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 043775/0082 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 8, 2017
From: NATANZON, ASSAF; LIEBERMAN, AMIT
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 043228/0767 →
Cited By (4)
US 12,197,293 US 12,481,538 US 12,487,770 US 12,513,045