IP Library › Granted Patent US 11,704,156
Granted Patent B2
US 11,704,156 · App. 17/113,098 · Granted Jul 18, 2023

Determining optimal placements of workloads on multiple platforms as a service in response to a triggering event

Inventor: Lior Aronovich (Thornhill, CA)
Assignee: International Business Machines Corporation
G06F9/5005G06F9/4856G06F2209/503G06F2209/506G06F2209/5021
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,704,156
App. No.
17/113,098
Filed
Dec 6, 2020
Granted
Jul 18, 2023
Kind
B2
Art Unit
2195
USPC
718/104
Abstract

A computer-implemented method, a computer program product, and a computer system for placements of workloads in a system of multiple platforms as a service. A computer detects a triggering event for modifying a matrix that pairs respective workloads on respective platforms and includes attributes of running respective workloads on respective platforms. The computer recalculates the attributes in the matrix, in response to the triggering event being detected. The computer determines optimal placements of the respective workloads on the respective platforms, based on information in the matrix. The computer places the respective workloads on the respective platforms, based on the optimal placements.

Claims (140)

1. A computer-implemented method for placements of multiple workloads on multiple platform-as-a-service (PaaS) platforms, the method comprising:

detecting, by a computer, a triggering event that modifies a matrix, wherein, for each respective workload of the multiple workloads, the matrix pairs the respective workload with each PaaS platform of the multiple PaaS platforms and the matrix includes attributes of running the respective workload on each PaaS platform of the multiple PaaS platform;

in response to the triggering event being detected, recalculating, by the computer, the attributes;

finding, by the computer, a solution of an optimization problem to map each respective workload of the multiple workloads with a respective PaaS platform of the multiple PaaS platforms in order to minimize a total cost for running the multiple workloads on the multiple PaaS platforms, based on recalculated attributes;

determining, by the computer, whether the solution of the optimization problem satisfies all mandatory constraints including a constraint regarding a cost for running each respective workload of the multiple workloads, a constraint regarding the total cost, a constraint which requires that, for each respective workload of the multiple workloads, the respective PaaS platform for running the respective workload is eligible for running the respective workload, and a constraint regarding a resource consumption maximal bound of each respective PaaS platform of the multiple PaaS platforms;

in response to determining that the solution satisfies all the mandatory constraints, determining, by the computer, whether the solution satisfies best effort constraints;

determining, by the computer, optimal placements of the multiple workloads on the multiple PaaS platforms, based on the solution that satisfies at least all the mandatory constraints;

placing, by the computer, the multiple workloads on the multiple PaaS platforms, based on the optimal placements; and

in response to determining that one workload of the multiple workloads is currently running on a nonoptimal platform, migrating the one workload according to the optimal placements.

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

determining whether a workload of the multiple workloads is a currently running workload or a pending workload;

in response to determining that the workload of the multiple workloads is the currently running workload, determining, by the computer, whether a current platform on which the currently running workload is running is an optimal platform for the currently running workload;

in response to determining that the current platform is the optimal platform for the currently running workload, keeping, by the computer, the currently running workload on the current platform;

in response to determining that the current platform is not the optimal platform for the currently running workload, migrating, by the computer, the currently running workload from the current platform to the optimal platform for the currently running workload; and

in response to determining that the workload of the multiple workloads is the pending workload, placing, by the computer, the pending workload on an optimal platform for the pending workload.

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

scanning, by the computer, the multiple workloads;

detecting, by the computer, whether a new workload is added;

detecting, by the computer, whether one or more requirements of a currently running workload are changed;

detecting, by the computer, whether a workload of the multiple workloads has completed processing; and

determining, by the computer, that the triggering event for modifying the matrix has been detected, in response to at least one of: the new workload being added, the one or more requirements of the currently running workload being changed, and the workload of the multiple workloads having completed.

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

detecting, by the computer, whether a budget associated with the currently running workload is changed;

detecting, by the computer, whether a requested duration to complete the currently running workload is changed;

detecting, by the computer, whether a priority assigned to the currently running workload is changed;

determining, by the computer, whether a list of eligible PaaS platforms for the currently running workload is changed; and

determining, by the computer, that the one or more requirements of the currently running workload are changed, in response to detecting changes to at least one of the budget, the requested duration to complete, the priority, and the list of eligible PaaS platforms.

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

scanning, by the computer, the multiple PaaS platforms;

detecting, by the computer, whether a new PaaS platform is added;

detecting, by the computer, whether a cost charged by one of the multiple PaaS platforms is changed;

detecting, by the computer, whether one or more resources of one of the multiple PaaS platforms are changed;

detecting, by the computer, whether one of the multiple PaaS platforms is removed; and

determining, by the computer, that the triggering event for modifying the matrix has been detected, in response to at least one of: the new PaaS platform being added, the cost charged by one of the multiple PaaS platforms being changed, the one or more resources of one of the multiple PaaS platforms being changed, and removal of one of multiple PaaS platforms.

6. The computer-implemented method of claim 1 , wherein, for each respective workload of the multiple workloads, the attributes in the matrix comprise estimated costs of running the respective workload of the multiple workloads on each PaaS platform of the multiple PaaS platforms, estimated time durations to complete the respective workload of the multiple workloads on each PaaS platform of the multiple PaaS platforms, and estimated resource requirements of the respective workload of the multiple workloads to run on each PaaS platform of the multiple PaaS platforms.

7. The computer-implemented method of claim 1 , wherein a first of the mandatory constraints requires that, for each respective workload of the multiple workloads, the cost for running the respective workload does not exceed a remaining monetary budget assigned to the respective workload, a second of the mandatory constraints requires that the total cost does not exceed an overall monetary budget for the multiple workloads, a third of the mandatory constraints requires that, for each respective workload of the multiple workloads, the respective PaaS platform for running the respective workload is eligible for running the respective one of the workload, and a fourth of the mandatory constraints requires that the resource consumption maximal bound of each respective PaaS platform is not exceeded, wherein one of the best effort constraints requires that for each respective workload of the multiple workloads an estimated duration to complete does not exceed a required duration to complete.

8. A computer program product for placements of multiple workloads on multiple platform-as-a-service (PaaS) platforms, the computer program product comprising a computer readable storage medium having program instructions embodied therewith, the program instructions executable by one or more processors, the program instructions executable to:

detect, by a computer, a triggering event that modifies a matrix, wherein, for each respective workload of the multiple workloads, the matrix pairs the respective workload with each PaaS platform of the multiple PaaS platforms and the matrix includes attributes of running the respective workload on each PaaS platform of the multiple PaaS platform;

in response to the triggering event being detected, recalculate, by the computer, the attributes;

find, by the computer, a solution of an optimization problem to map each respective workload of the multiple workloads with a respective PaaS platform of the multiple PaaS platforms in order to minimize a total cost for running the multiple workloads on the multiple PaaS platforms, based on recalculated attributes;

determine, by the computer, whether the solution of the optimization problem satisfies all mandatory constraints including a constraint regarding a cost for running each respective workload of the multiple workloads, a constraint regarding the total cost, a constraint which requires that, for each respective workload of the multiple workloads, the respective PaaS platform for running the respective workload is eligible for running the respective workload, and a constraint regarding a resource consumption maximal bound of each respective PaaS platform of the multiple PaaS platforms;

in response to determining that the solution satisfies all the mandatory constraints, determine, by the computer, whether the solution satisfies best effort constraints;

determine, by the computer, optimal placements of the multiple workloads on the multiple PaaS platforms, based on the solution that satisfies at least all the mandatory constraints;

place, by the computer, the multiple workloads on the multiple PaaS platforms, based on the optimal placements; and

in response to determining that one workload of the multiple workloads is currently running on a nonoptimal platform, migrate the one workload according to the optimal placements.

9. The computer program product of claim 8 , further comprising the program instructions executable to:

determine whether a workload of the multiple workloads is a currently running workload or a pending workload;

in response to determining that the workload of the multiple workloads is the currently running workload, determine, by the computer, whether a current platform on which the currently running workload is running is an optimal platform for the currently running workload;

in response to determining that the current platform is the optimal platform for the currently running workload, keep, by the computer, the currently running workload on the current platform;

in response to determining that the current platform is not the optimal platform for the currently running workload, migrate, by the computer, the currently running workload from the current platform to the optimal platform for the currently running workload; and

in response to determining that the workload of the multiple workloads is the pending workload, place, by the computer, the pending workload on an optimal platform for the pending workload.

10. The computer program product of claim 8 , further comprising the program instructions executable to:

scan, by the computer, the multiple workloads;

detect, by the computer, whether a new workload is added;

detect, by the computer, whether one or more requirements of a currently running workload are changed;

detect, by the computer, whether a workload of the multiple workloads has completed processing; and

determine, by the computer, that the triggering event for modifying the matrix has been detected, in response to at least one of: the new workload being added, the one or more requirements of the currently running workload being changed, and the workload of the multiple workloads having completed.

11. The computer program product of claim 10 , further comprising the program instructions executable to:

detect, by the computer, whether a budget associated with the currently running workload is changed;

detect, by the computer, whether a requested duration to complete the currently running workload is changed;

detect, by the computer, whether a priority assigned to the currently running workload is changed;

determine, by the computer, whether a list of eligible PaaS platforms for the currently running workload is changed; and

determine, by the computer, that the one or more requirements of the currently running workload are changed, in response to detecting changes to at least one of the budget, the requested duration to complete, the priority, and the list of eligible PaaS platforms.

12. The computer program product of claim 8 , further comprising the program instructions executable to:

scan, by the computer, the multiple PaaS platforms;

detect, by the computer, whether a new PaaS platform is added;

detect, by the computer, whether a cost charged by one of the multiple PaaS platforms is changed;

detect, by the computer, whether one or more resources of one of the multiple PaaS platforms are changed;

detect, by the computer, whether one of the multiple PaaS platforms is removed; and

determine, by the computer, that the triggering event for modifying the matrix has been detected, in response to at least one of: the new PaaS platform being added, the cost charged by one of the multiple PaaS platforms being changed, the one or more resources of one of the multiple PaaS platforms being changed, and removal of one of the multiple PaaS platforms.

13. The computer program product of claim 8 , wherein, for each respective workload of the multiple workloads, the attributes in the matrix comprise estimated costs of running the respective workload of the multiple workloads on each PaaS platform of the multiple PaaS platforms, estimated time durations to complete the respective workload of the multiple workloads on each PaaS platform of the multiple PaaS platforms, and estimated resource requirements of the respective workload of the multiple workloads to run on each PaaS platform of the multiple PaaS platforms.

14. The computer program product of claim 8 , wherein a first of the mandatory constraints requires that, for each respective workload of the multiple workloads, the cost for running the respective workload does not exceed a remaining monetary budget assigned to the respective workload, a second of the mandatory constraints requires that the total cost does not exceed an overall monetary budget for the multiple workloads, a third of the mandatory constraints requires that, for each respective workload of the multiple workloads, the respective PaaS platform for running the respective workload is eligible for running the respective workload, and a fourth of the mandatory constraints requires that the resource consumption maximal bound of each respective PaaS platform is not exceeded, wherein one of the best effort constraints requires that for the each respective workload of the multiple workloads an estimated duration to complete does not exceed a required duration to complete.

15. A computer system for placements of multiple workloads on multiple platform-as-a-service (PaaS) platforms, the computer system comprising one or more processors, one or more computer readable tangible storage devices, and program instructions stored on at least one of the one or more computer readable tangible storage devices for execution by at least one of the one or more processors, the program instructions executable to:

detect, by a computer, a triggering event that modifies a matrix, wherein, for each respective workload of the multiple workloads, the matrix pairs the respective workload with each PaaS platform of the multiple PaaS platforms and the matrix includes attributes of running the respective workload on each PaaS platform of the multiple PaaS platform;

in response to the triggering event being detected, recalculate, by the computer, the attributes;

find, by the computer, a solution of an optimization problem to map each respective workload of the multiple workloads with a respective PaaS platform of the multiple PaaS platforms in order to minimize a total cost for running the multiple workloads on the multiple PaaS platforms, based on recalculated attributes;

determine, by the computer, whether the solution of the optimization problem satisfies all mandatory constraints including a constraint regarding a cost for running each respective workload of the multiple workloads, a constraint regarding the total cost, a constraint which requires that, for each respective workload of the multiple workloads, the respective PaaS platform for running the respective workload is eligible for running the respective workload, and a constraint regarding a resource consumption maximal bound of each respective PaaS platform of the multiple PaaS platforms;

in response to determining that the solution satisfies all the mandatory constraints, determine, by the computer, whether the solution satisfies best effort constraints;

determine, by the computer, optimal placements of the multiple workloads on the multiple PaaS platforms, based on the solution that satisfies at least all the mandatory constraints;

place, by the computer, the multiple workloads on the multiple PaaS platforms, based on the optimal placements; and

in response to determining that one workload of the multiple workloads is currently running on a nonoptimal platform, migrate the one workload according to the optimal placements.

16. The computer system of claim 15 , further comprising the program instructions executable to:

determine whether a workload of the multiple workloads is a currently running workload or a pending workload;

in response to determining that the workload of the multiple workloads is the currently running workload, determine, by the computer, whether a current platform on which the currently running workload is running is an optimal platform for the currently running workload;

in response to determining that the current platform is the optimal platform for the currently running workload, keep, by the computer, the currently running workload on the current platform;

in response to determining that the current platform is not the optimal platform for the currently running workload, migrate, by the computer, the currently running workload from the current platform to the optimal platform for the currently running workload; and

in response to determining that the workload of the multiple workloads is the pending workload, place, by the computer, the pending workload on an optimal platform for the pending workload.

17. The computer system of claim 15 , further comprising the program instructions executable to:

scan, by the computer, the multiple workloads;

detect, by the computer, whether a new workload is added;

detect, by the computer, whether one or more requirements of a currently running workload are changed;

detect, by the computer, whether a workload of the multiple workloads has completed processing; and

determine, by the computer, that the triggering event for modifying the matrix has been detected, in response to at least one of: the new workload being added, the one or more requirements of the currently running workload being changed, and the workload of the multiple workloads having completed.

18. The computer system of claim 17 , further comprising the program instructions executable to:

detect, by the computer, whether a budget associated with the currently running workload is changed;

detect, by the computer, whether a requested duration to complete the currently running workload is changed;

detect, by the computer, whether a priority assigned to the currently running workload is changed;

determine, by the computer, whether a list of eligible PaaS platforms for the currently running workload is changed; and

determine, by the computer, that the one or more requirements of the currently running workload are changed, in response to detecting changes to at least one of the budget, the requested duration to complete, the priority, and the list of eligible PaaS platforms.

19. The computer system of claim 15 , further comprising the program instructions executable to:

scan, by the computer, the multiple PaaS platforms;

detect, by the computer, whether a new PaaS platform is added;

detect, by the computer, whether a cost charged by one of the multiple PaaS platforms is changed;

detect, by the computer, whether one or more resources of one of the multiple PaaS platforms are changed;

detect, by the computer, whether one of the multiple PaaS platforms is removed; and

determine, by the computer, that the triggering event for modifying the matrix has been detected, in response to at least one of: the new PaaS platform being added, the cost charged by one of the multiple PaaS platforms being changed, the one or more resources of one of the multiple PaaS platforms being changed, and removal of one of the multiple PaaS platforms.

20. The computer system of claim 15 , wherein, for each respective workload of the multiple workloads, the attributes in the matrix comprise estimated costs of running the respective workload of the multiple workloads on each PaaS platform of the multiple PaaS platforms, estimated time durations to complete the respective workload of the multiple workloads on each PaaS platform of the multiple PaaS platforms, and estimated resource requirements of the respective workload of the multiple workloads to run on each PaaS platform of the multiple PaaS platforms.

21. The computer system of claim 15 , wherein a first of the mandatory constraints requires that, for each respective workload of the multiple workloads, the cost for running the respective workload does not exceed a remaining monetary budget assigned to the respective workload, a second of the mandatory constraints requires that the total cost does not exceed an overall monetary budget for the multiple workloads, a third of the mandatory constraints requires that, for each respective workload of the multiple workloads, the respective PaaS platform for running the respective workload is eligible for running the respective the workload, and a fourth of the mandatory constraints requires that the resource consumption maximal bound of each respective PaaS platform is not exceeded, wherein one of the best effort constraints requires that for the each respective workload of the multiple workloads an estimated duration to complete does not exceed a required duration to complete.

22. A system of multiple platform-as-a-service (PaaS) platforms, comprising:

multiple workloads, comprising pending workloads and running workloads;

the multiple PaaS platforms, comprising remote platforms and local platforms;

a system for mapping the multiple workloads and the multiple PaaS platforms;

the system for mapping the multiple workloads and the multiple PaaS platforms comprising one or more processors, one or more computer readable tangible storage devices, and program instructions stored on at least one of the one or more computer readable tangible storage devices for execution by at least one of the one or more processors, the program instructions executable to:

detect, by a computer, a triggering event that modifies a matrix, wherein, for each respective workload of the multiple workloads, the matrix pairs the respective workload with each PaaS platform of the multiple PaaS platforms and the matrix includes attributes of running the respective workload on each PaaS platform of the multiple PaaS platform;

in response to the triggering event being detected, recalculate, by the computer, the attributes;

find, by the computer, a solution of an optimization problem to map each respective workload of the multiple workloads with a respective PaaS platform of the multiple PaaS platforms in order to minimize a total cost for running the multiple workloads on the multiple PaaS platforms, based on recalculated attributes;

determine, by the computer, whether the solution of the optimization problem satisfies all mandatory constraints including a constraint regarding a cost for running each respective workload of the multiple workloads, a constraint regarding the total cost, a constraint which requires that, for each respective workload of the multiple workloads, the respective PaaS platform for running the respective workload is eligible for running the respective workload, and a constraint regarding a resource consumption maximal bound of each respective PaaS platform of the multiple PaaS platforms;

in response to determining that the solution satisfies all the mandatory constraints, determine, by the computer, whether the solution satisfies best effort constraints;

determine, by the computer, optimal placements of the multiple workloads on the multiple PaaS platforms, based on the solution that satisfies at least all the mandatory constraints;

place, by the computer, the multiple workloads on the multiple PaaS platforms, based on the optimal placements; and

in response to determining that one workload of the multiple workloads is currently running on a nonoptimal platform, migrate the one workload according to the optimal placements.

23. The system of multiple platforms of claim 22 , further comprising the program instructions executable to:

determine whether a workload of the multiple workloads is a running workload or a pending workload;

in response to determining that the workload of the multiple workloads is the running workload, determine, by the computer, whether a current platform on which the running workload is running is an optimal platform for the running workload;

in response to determining that the current platform is the optimal platform for the running workload, keep, by the computer, the running workload on the current platform;

in response to determining that the current platform is not the optimal platform for the running workload, migrate, by the computer, the running workload from the current platform to the optimal platform for the running workload; and

in response to determining that the workload of the multiple workloads is the pending workload, place, by the computer, the pending workload on an optimal platform for the pending workload.

24. The system of multiple platforms of claim 22 , further comprising the program instructions executable to:

scan, by the computer, the multiple workloads;

detect, by the computer, whether a new workload is added;

detect, by the computer, whether one or more requirements of a running workload are changed;

detect, by the computer, whether a workload of the multiple workloads has completed processing; and

determine, by the computer, that the triggering event for modifying the matrix has been detected, in response to at least one of: the new workload being added, the one or more requirements of the running workload being changed, and the workload of the multiple workloads having completed.

25. The system of multiple platforms of claim 22 , further comprising the program instructions executable to:

scan, by the computer, the the multiple PaaS platforms;

detect, by the computer, whether a new PaaS platform is added;

detect, by the computer, whether a cost charged by one of the multiple PaaS platforms is changed;

detect, by the computer, whether one or more resources of one of the multiple PaaS platforms are changed;

detect, by the computer, whether one of the multiple PaaS platforms is removed; and

determine, by the computer, that the triggering event for modifying the matrix has been detected, in response to at least one of: the new PaaS platform being added, the cost charged by one of the multiple PaaS platforms being changed, the one or more resources of one of the multiple PaaS platforms being changed, and removal of one of the multiple PaaS platforms.

Assignments (2)
CORRECTIVE ASSIGNMENT TO CORRECT THE CORRESPONDENT STATE FROM UNITED STATES TO NEW YORK PREVIOUSLY RECORDED ON REEL 054557 FRAME 0029. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Apr 6, 2021
From: ARONOVICH, LIOR
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 055833/0051 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 6, 2020
From: ARONOVICH, LIOR
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 054557/0029 →
Continuity (1)
Related Publication 20220179692A1 · Jun 9, 2022