IP Library › Granted Patent US 12,591,465
Granted Patent B2
US 12,591,465 · App. 18/352,757 · Granted Mar 31, 2026

Function as a service fusion deployment

Inventors: Yair Yotam (Beer Sheva, IL); Boris Shpilyuck (Ashdod, IL); Igor Dubrovsky (Beer Sheva, IL)
Assignee: Dell Products L.P.
G06F9/5083G06F9/45558G06F9/5077G06F2009/45595G06F2209/5022G06F2209/503
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 12,591,465
App. No.
18/352,757
Granted
Mar 31, 2026
Kind
B2
Abstract

A system can determine that a first containerized function invokes a second containerized function. The system can identify a first number of instances of the first containerized function, and a second number of instances of the second containerized function. The system can determine a first cost of executing the first number of instances of the first containerized function, and the second number of instances of the second containerized function, wherein the first cost comprises a first computer memory cost, a first computer storage cost, and a first service level agreement violation cost. The system can determine a second cost associated with executing a third number of instances of a third container that comprises the first function and the second function. The system can, in response to determining that the second cost is less than the first cost, execute the third number of instances of the third container.

Claims (60)

1 . A system, comprising:

a processor; and

a memory coupled to the processor, comprising instructions that, in response to execution by the processor, cause the system to perform operations, comprising:

determining that a first containerized function of a group of containerized functions invokes a second containerized function of the group of containerized functions, wherein the first containerized function comprises a first container hosting a first function, and wherein the second containerized function comprises a second container hosting a second function;

identifying a first number of instances of the first containerized function, wherein the instances of the first number are configured to be executed;

identifying a second number of instances of the second containerized function, wherein the instances of the second number are configured to be executed, and wherein the first number of instances differs from the second number of instances;

determining a first cost of executing the first number of instances of the first containerized function, and the second number of instances of the second containerized function, wherein the first cost comprises a first computer memory cost, a first computer storage cost, and a first service level agreement violation cost;

determining a second cost associated with executing a third number of instances of a third container that comprises the first function and the second function, wherein the third number of instances corresponds to whichever of the first number of instances and the second number of instances is greater, and wherein the second cost comprises a second computer memory cost, a second computer storage cost, and a second service level agreement violation cost;

in response to determining that the second cost is less than the first cost,

executing the third number of instances of the third container,

directing a first call to invoke the first function to the third number of instances of the third container, and

directing a second call to invoke the second function to the third number of instances of the third container.

2 . The system of claim 1 , wherein the operations further comprise:

in response to determining that the first cost is less than the second cost,

refraining from executing the third number of instances of the third container,

directing the first call to invoke the first function to the first number of instances of the first containerized function, and

directing the second call to invoke the second function to the second number of instances of the second containerized function.

3 . The system of claim 1 , wherein the first number of instances of the first containerized function corresponds to processing a number of invocations of a computer service, and wherein the second number of instances of the second containerized function corresponds to processing the number of invocations of the computer service.

4 . The system of claim 3 , wherein the first number of instances of the first containerized function is greater than the second number of instances of the second containerized function, and wherein the third number of instances of the third container comprises a surplus of instances of the second function relative to processing the number of invocations of the computer service.

5 . The system of claim 4 , wherein executing the surplus of instances of the second function consumes computing resources.

6 . The system of claim 1 , wherein a first amount of time is associated with executing the first function in a first instance of the first number of instances of the first containerized function sequentially with executing the second function in a second instance of the second number of instances of the second containerized function,

wherein a second amount of time is associated with executing the first function in a third instance of the third number of instances of the third container sequentially with executing the second function in the third instance of the third number of instances of the third container,

wherein the first amount of time is greater than the second amount of time, and

wherein the first service level agreement violation cost is greater than the second service level agreement violation cost.

7 . The system of claim 6 , wherein the first amount of time comprises a third amount of time associated with a cold start of executing the second function in the second instance of the second number of instances of the second containerized function.

8 . The system of claim 7 , wherein the operations further comprise:

determining the third amount of time associated with the cold start of executing the second function in the second instance of the second number of instances of the second containerized function based on historical data generated from having executed the second function in the past.

9 . A method, comprising:

identifying, by a system comprising a processor, a first number of instances of a first container that is configured to be executed, and a second number of instances of a second container that is configured to be executed, wherein the first container comprises a first function, wherein the second container comprises a second function, and wherein the first function invokes the second function;

determining, by the system, a first cost associated with first computing resources consumed and first service level agreement violations that correspond to executing the first number of instances of the first container and the second number of instances of the second container;

determining, by the system, a second cost associated with second computing resources consumed and second service level agreement violations that correspond to executing a third container that comprises the first function and the second function; and

in response to determining that the second cost is less than the first cost, executing, by the system, a third number of instances of the third container.

10 . The method of claim 9 , wherein executing the third number of instances of the third container comprises:

directing a first call to invoke the first function to the third number of instances of the third container; and

directing a second call to invoke the second function to the third number of instances of the third container.

11 . The method of claim 9 , wherein determining the second cost comprises:

determining, by the system, the second cost based on a third cost associated with computer memory resource consumption of the third number of instances of the third container.

12 . The method of claim 9 , wherein determining the second cost comprises:

determining, by the system, the second cost based on a third cost associated with storage resource consumption of the third number of instances of the third container.

13 . The method of claim 9 , wherein determining the second cost comprises:

determining, by the system, the second cost based on first historical data of first past computing resource consumption of the first number of instances of the first container, and based on second historical data of second past computing resource consumption of the second number of instances of the second container.

14 . The method of claim 9 , wherein executing the third number of instances of the third container comprises:

accessing first source code of the first function from a repository;

accessing second source code of the second function from the repository;

packaging the first source code and the second source code into an image that comprises the third container in which the first source code and the second source code are configured to execute; and

deploying the image to produce the third number of instances of the third container.

15 . The method of claim 9 , wherein executing the third number of instances of the third container comprises:

terminating the first number of instances of the first container; and

terminating the second number of instances of the second container.

16 . The method of claim 9 , wherein executing the third number of instances of the third container comprises:

deploying the third container by a continuous integration and continuous deployment component.

17 . A non-transitory computer-readable medium comprising instructions that, in response to execution, cause a system comprising a processor to perform operations, comprising:

identifying a first container that is configured to be executed, and a second container that is configured to be executed, wherein the first container comprises a first function, wherein the second container comprises a second function, and wherein the first function invokes the second function;

determining a first expenditure associated with executing the first container and the second container;

determining a second expenditure associated with executing a third container that comprises the first function and the second function; and

in response to determining that the second expenditure is less than the first expenditure, executing at least one instance of the third container.

18 . The non-transitory computer-readable medium of claim 17 , wherein the operations further comprise:

in response to determining that the first expenditure is less than the second expenditure, refraining from executing the at least one instance of the third container.

19 . The non-transitory computer-readable medium of claim 17 , wherein the second expenditure is determined based on an amount of memory and storage associated with executing each of the first function and the second function, and a number of instances of the at least one instance of the third container.

20 . The non-transitory computer-readable medium of claim 17 , wherein the first expenditure is determined based on an amount of time associated with a cold start of an instance of the first container or the second container, and a rate of occurrence of the cold start.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 14, 2023
From: YOTAM, YAIR; SHPILYUCK, BORIS; DUBROVSKY, IGOR
To: DELL PRODUCTS L.P.
Reel/Frame 064262/0853 →
Continuity (1)
Related Publication 20250021403A1 · Jan 16, 2025
References Cited (28)
US 5905901A · Klein · 1999 [cited by applicant]
US 10469617B1 · Mahapatra · 2019 [cited by applicant]
US 11368521B1 · Xiong et al. · 2022 [cited by applicant]
US 11531526B1 · Dunham et al. · 2022 [cited by applicant]
US 11614982B1 · Chandrasekhar et al. · 2023 [cited by applicant]
US 12353866B2 · Ramraz · 2025 [cited by applicant]
US 20160147529A1 · Coleman et al. · 2016 [cited by applicant]
US 20160275402A1 · Babay Adi et al. · 2016 [cited by applicant]
US 20200225917A1 · Jung et al. · 2020 [cited by applicant]
US 20210124577A1 · Gupta · 2021 [cited by applicant]
US 20210342145A1 · Miller et al. · 2021 [cited by applicant]
US 20210373862A1 · Thoemmes · 2021 [cited by applicant]
US 20230315888A1 · Ishida et al. · 2023 [cited by applicant]
US 20240086160A1 · Kanso et al. · 2024 [cited by applicant]
US 20240160427A1 · Gupta et al. · 2024 [cited by applicant]
US 20240231898A1 · Stojkovic · 2024 [cited by examiner]
US 20240248739A1 · Ibrahim et al. · 2024 [cited by applicant]
US 20250021232A1 · Ryu · 2025 [cited by applicant]
US 20250021329A1 · Yotam et al. · 2025 [cited by applicant]
US 20250021382A1 · Yotam et al. · 2025 [cited by applicant]
US 20250021406A1 · Yotam et al. · 2025 [cited by applicant]
US 20250138801A1 · Tang et al. · 2025 [cited by applicant]
US 20250370763A1 · Fu et al. · 2025 [cited by applicant]
Notice of Allowance mailed Aug. 27, 2025 for U.S. Appl. No. 18/352,736, 39 pages. [cited by applicant]
Wickramanayaka, “Communication-Affinity Aware Colocation and Merging of Containers”, 2022, International Journal on Advances in ICT for Emerging Regions (Year: 2022). [cited by applicant]
Keller, “Virtualizing the Data Plane Through Source Code Merging”, 2008, ACM (Year: 2008). [cited by applicant]
Office Action mailed Jan. 14, 2026 for U.S. Appl. No. 18/352,780, 88 pages. [cited by applicant]
Office Action mailed Jan. 28, 2026 for U.S. Appl. No. 18/352,805, 74 pages. [cited by applicant]