IP Library Granted Patent US 11,042,405
Granted Patent B2
US 11,042,405 · App. 16/245,055 · Granted Jun 22, 2021

Scheduling and executing functions across different functions-as-a-service (FAAS) infrastructures

Inventors: Berndt Jung (Redwood City, CA); Mark Peek (Belmont, CA); Xueyang Hu (Sunnyvale, CA); Ivan Mikushin (San Jose, CA); Karol Stepniewski (Santa Clara, CA)
Assignee: VMware, Inc.
G06F9/4881G06F9/5005G06F9/541G06F16/907H04L67/1097
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 11,042,405
App. No.
16/245,055
Granted
Jun 22, 2021
Kind
B2
Abstract

Techniques for scheduling and executing functions across a plurality of different Functions-as-a-Service (FaaS) infrastructures are provided. In one set of embodiments, a computer system can determine that a function has been invoked, where the computer system implements a spanning FaaS service platform that is communicatively coupled with the plurality of different FaaS infrastructures. In response, the computer system can retrieve metadata associated with the function, where the metadata includes criteria or policies indicating how the function should be scheduled for execution, and can retrieve information associated with each of the plurality of different FaaS infrastructures, where the information includes capabilities or characteristics of each FaaS infrastructure. The computer system can then select a FaaS infrastructure in the plurality of different FaaS infrastructures based on the retrieved metadata and the retrieved information and can schedule the function for execution on the selected FaaS infrastructure.

Claims (44)

1. A method for scheduling and executing functions across different Functions-as-a-Service (FaaS) infrastructures, the method comprising:

receiving, by a computer system, a function artifact including program code and metadata for a function, the metadata defining criteria or policies pertaining to scheduling or execution of the function;

creating, by the computer system, the function in each FaaS infrastructure of a plurality of FaaS infrastructures registered with the computer system, wherein said each FaaS infrastructure comprises a plurality of host systems, a service layer, and an image repository, and wherein the creating of the function in said each FaaS infrastructure comprises creating a runtime image for the function in said each FaaS infrastructure's image repository;

determining, by a computer system, that the function has been invoked;

retrieving, by the computer system, the metadata for the function;

retrieving, by the computer system, information associated with each FaaS infrastructure, the information including capabilities or characteristics of said each FaaS infrastructure;

selecting, by the computer system, a FaaS infrastructure in the plurality of FaaS infrastructures that the computer system deems best suited for executing the function based on the retrieved metadata and the retrieved information; and

invoking, by the computer system, an application programming interface (API) exposed by a service layer of the selected FaaS infrastructure for executing the function on a host system of the selected FaaS infrastructure.

2. The method of claim 1 wherein the plurality of FaaS infrastructures include a private cloud-based FaaS infrastructure and a public cloud-based FaaS infrastructure.

3. The method of claim 1 wherein the plurality of FaaS infrastructures include a first public cloud-based FaaS infrastructure operated by a first FaaS service provider and a second public cloud-based FaaS infrastructure operated by a second FaaS service provider distinct from the first FaaS service provider.

4. The method of claim 1 wherein the metadata defines a criterion or policy indicating that the function should be scheduled for execution on a host system that includes a particular hardware device or feature.

5. The method of claim 1 wherein the metadata defines a criterion or policy indicating that that function should be scheduled for execution on a particular FaaS infrastructure that results in lowest monetary cost, provides fastest performance, or avoids going beyond a predefined capacity or usage threshold.

6. The method of claim 1 wherein the information associated with each FaaS infrastructure is included in a driver for said each FaaS infrastructure that is registered with the computer system.

7. The method of claim 6 wherein the API invoked by the computer system is defined in the driver for the selected FaaS infrastructure.

8. A non-transitory computer readable storage medium having stored thereon program code executable by a computer system, the program code embodying a method for scheduling and executing functions across different Functions-as-a-Service infrastructures, the method comprising:

receiving a function artifact including program code and metadata for a function, the metadata defining criteria or policies pertaining to scheduling or execution of the function;

creating the function in each FaaS infrastructure of a plurality of FaaS infrastructures registered with the computer system, wherein said each FaaS infrastructure comprises a plurality of host systems, a service layer, and an image repository, and wherein the creating of the function in said each FaaS infrastructure comprises creating a runtime image for the function in said each FaaS infrastructure's image repository;

determining that the function has been invoked;

retrieving the metadata for the function;

retrieving information associated with each FaaS infrastructure, the information including capabilities or characteristics of said each FaaS infrastructure;

selecting a FaaS infrastructure in the plurality of FaaS infrastructures that the computer system deems best suited for executing the function based on the retrieved metadata and the retrieved information; and

invoking, by the computer system, an application programming interface (API) exposed by a service layer of the selected FaaS infrastructure for executing the function on a host system of the selected FaaS infrastructure.

9. The non-transitory computer readable storage medium of claim 8 wherein the plurality of FaaS infrastructures include a private cloud-based FaaS infrastructure and a public cloud-based FaaS infrastructure.

10. The non-transitory computer readable storage medium of claim 8 wherein the plurality of FaaS infrastructures include a first public cloud-based FaaS infrastructure operated by a first FaaS service provider and a second public cloud-based FaaS infrastructure operated by a second FaaS service provider distinct from the first FaaS service provider.

11. The non-transitory computer readable storage medium of claim 8 wherein the metadata defines a criterion or policy indicating that the function should be scheduled for execution on a host system that includes a particular hardware device or feature.

12. The non-transitory computer readable storage medium of claim 8 wherein the metadata defines a criterion or policy indicating that that function should be scheduled for execution on a particular FaaS infrastructure that results in lowest monetary cost, provides fastest performance, or avoids going beyond a predefined capacity or usage threshold.

13. The non-transitory computer readable storage medium of claim 8 wherein the information associated with each FaaS infrastructure is included in a driver for said each FaaS infrastructure that is registered with the computer system.

14. The non-transitory computer readable storage medium of claim 13 wherein the API invoked by the computer system is defined in the driver for the selected FaaS infrastructure.

15. A computer system comprising:

a processor; and

a non-transitory computer readable medium having stored thereon program code that, when executed by the processor, causes the processor to:

receive a function artifact including program code and metadata for a function, the metadata defining criteria or policies pertaining to scheduling or execution of the function;

create the function in each FaaS infrastructure of a plurality of FaaS infrastructures registered with the computer system, wherein said each FaaS infrastructure comprises a plurality of host systems, a service layer, and an image repository, and wherein the creating of the function in said each FaaS infrastructure comprises creating a runtime image for the function in said each FaaS infrastructure's image repository;

determine that the function has been invoked;

retrieve the metadata for the function;

retrieve information associated with each FaaS infrastructure, the information including capabilities or characteristics of said each FaaS infrastructure;

select a FaaS infrastructure in the plurality of FaaS infrastructures that the processor deems best suited for executing the function based on the retrieved metadata and the retrieved information; and

invoke an application programming interface (API) exposed by a service layer of the selected FaaS infrastructure for executing the function on a host system of the selected FaaS infrastructure.

16. The computer system of claim 15 wherein the plurality of FaaS infrastructures include a private cloud-based FaaS infrastructure and a public cloud-based FaaS infrastructure.

17. The computer system of claim 15 wherein the plurality of FaaS infrastructures include a first public cloud-based FaaS infrastructure operated by a first FaaS service provider and a second public cloud-based FaaS infrastructure operated by a second FaaS service provider distinct from the first FaaS service provider.

18. The computer system of claim 15 wherein the metadata defines a criterion or policy indicating that the function should be scheduled for execution on a host system that includes a particular hardware device or feature.

19. The computer system of claim 15 wherein the metadata defines a criterion or policy indicating that that function should be scheduled for execution on a particular FaaS infrastructure that results in lowest monetary cost, provides fastest performance, or avoids going beyond a predefined capacity or usage threshold.

20. The computer system of claim 15 wherein the information associated with each FaaS infrastructure is included in a driver for said each FaaS infrastructure that is registered with the computer system.

21. The computer system of claim 20 wherein the API invoked by the processor is defined in the driver for the selected FaaS infrastructure.

Assignments (2)
CHANGE OF NAME Recorded Apr 15, 2024
From: VMWARE, INC.
To: VMWARE LLC
Reel/Frame 067102/0314 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 10, 2019
From: JUNG, BERNDT; PEEK, MARK; HU, XUEYANG; MIKUSHIN, IVAN; STEPNIEWSKI, KAROL
To: VMWARE, INC.
Reel/Frame 047960/0683 →