Computer-implemented method and computer program product for estimating attributes of a workload executing on a platform in a system including multiple platforms as a service

The method optimally allocates workloads across multiple PaaS platforms by estimating attributes and dynamically adjusting placements, addressing the limitations of existing systems in managing service levels and budgets in hybrid cloud environments.

JP7786840B2Active Publication Date: 2025-12-16INTERNATIONAL BUSINESS MACHINE CORPORATION
View PDF 5 Cites 0 Cited by

Patent Information

Application Number
JP2021197244
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Priority Date
2020-12-06
Filing Date
2021-12-03
Publication Date
2025-12-16
Estimated Expiration
2041-12-03

AI Technical Summary

Technical Problem

Existing PaaS cloud systems lack effective methods for managing workload allocation across multiple platforms, failing to optimize service levels and budgets, and do not support hybrid cloud architectures with diverse local and remote platforms.

Method used

A computer-implemented method and program product that estimates workload attributes and optimally allocates them across multiple platforms by mapping workloads to platforms, considering cost, duration, and resource requirements, and dynamically adjusting placements in response to trigger events.

Benefits of technology

Enables efficient workload placement that minimizes time to completion and total cost, supports hybrid cloud environments, and optimizes service levels and budget usage within resource constraints.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007786840000015
    Figure 0007786840000015
  • Figure 0007786840000016
    Figure 0007786840000016
  • Figure 0007786840000017
    Figure 0007786840000017
Patent Text Reader

Abstract

To provide techniques of allowing optimal placement of workloads on platforms in a system including multiple platforms as a service.SOLUTION: The invention provides a computer-implemented method and a computer program product for estimating attributes of running workloads on platforms in a system including multiple platforms as a service. A computer receives definitions of respective workloads and definitions of respective platforms that are eligible to run a set of the respective workloads. The computer maps the respective workloads and the respective platforms to attributes of running the respective workloads on the respective platforms. The computer estimates the attributes and storing the attributes in a matrix. The computer updates the attribute in the matrix, in response to a triggering event for modifying the matrix.SELECTED DRAWING: Figure 2
Need to check novelty before this filing date? Find Prior Art

Description

[Technical Field]

[0001] The present invention relates generally to the Platform as a Service (PaaS) model, and more particularly to estimating attributes of workloads running on platforms in a system including multiple Platform as a Service (PaaS) models. [Background technology]

[0002] In the Platform as a Service (PaaS) model, workloads are placed to run on a platform rather than on virtual or physical machines. The platform can include any combination of underlying resources, which are typically not exposed to users of the platform. The platform typically exposes interfaces that allow workloads to be placed, executed, monitored, and controlled on the platform.

[0003] Working with a PaaS platform eliminates several processing elements that are typically required when working with an Infrastructure as a Service (IaaS) platform, such as selecting a Virtual Machine (VM) type, creating and managing VM images, connecting and disconnecting VMs to clusters, returning VMs, waiting for VMs to be provisioned, tracking VMs, etc. In PaaS, there are two main concepts: workloads and the platform on which the workloads run.

[0004] PaaS platforms can be local or remote. Users create accounts on PaaS platforms. They can then upload and run workloads on these platforms through their accounts. Being able to run workloads on both local and remote platforms offers several benefits. Cost reduction is a prime example. Rather than expensively building and maintaining resources to handle occasional spikes in resource usage, a hybrid cloud architecture allows offloading workloads from local to remote platforms. This reduces total cost of ownership by paying for additional resources only when needed. Another benefit is the flexibility to use multiple cloud providers and platforms with different attributes, depending on workload requirements and costs. Another benefit is improved security. Cloud providers can offer enhanced security, isolation, and communication over private networks, addressing security and compliance issues. A hybrid cloud architecture provides scalability by dynamically placing workloads on cloud platforms. Leveraging cloud provider resources also minimizes the risk of failure and downtime. Summary of the Invention [Problem to be solved by the invention]

[0005] The present disclosure aims to provide a technology that enables optimal allocation of workloads to platforms in a system that includes multiple platforms as a service. [Means for solving the problem]

[0006] According to one aspect, a computer-implemented method is provided for estimating attributes of workloads running on platforms in a system including multiple platforms as a service. The computer-implemented method includes receiving definitions of each workload and each platform eligible to run the respective set of workloads. The computer-implemented method further includes mapping each workload and each platform to attributes of running each workload on each platform. The computer-implemented method further includes estimating the attributes and storing the attributes in a matrix. The computer-implemented method further includes updating the attributes in the matrix in response to a trigger event that modifies the matrix.

[0007] According to another aspect, a computer program product for estimating attributes of workloads executing on platforms in a system including multiple platforms as a service is provided. The computer program product includes a computer-readable storage medium having program instructions executable by one or more processors. The program instructions are executable to receive definitions of respective workloads and definitions of respective platforms eligible to execute the respective workloads, map each workload and each platform to attributes of executing the respective workloads on the respective platforms, estimate the attributes, store the attributes in a matrix, and update the attributes in the matrix in response to a trigger event that modifies the matrix. [Brief explanation of the drawings]

[0008] [Figure 1] FIG. 1 is a diagram illustrating a system including multiple platforms as a service, according to one embodiment of the present invention. [Figure 2] FIG. 2 is a flowchart illustrating the operational steps for deploying workloads on multiple platforms according to one embodiment of the present invention. [Figure 3A] FIG. 3A is a flowchart illustrating the operational steps for optimizing workload placement on multiple platforms in accordance with one embodiment of the present invention. [Figure 3B] FIG. 3B is a flowchart illustrating the operational steps for optimizing workload placement on multiple platforms in accordance with one embodiment of the present invention. [Figure 4] FIG. 4 is a diagram illustrating components of a computing device according to one embodiment of the present invention. [Figure 5] FIG. 5 is a diagram illustrating a cloud computing environment, according to one embodiment of the present invention. [Figure 6] FIG. 6 is a diagram illustrating abstraction model layers in a cloud computing environment, according to one embodiment of the present invention. DETAILED DESCRIPTION OF THE INVENTION

[0009] The problem considered in this disclosure is defined as follows: Multiple workloads are available to run or are already running. Multiple platforms are available to run the multiple workloads. Some of the multiple platforms may be running workloads. Each workload may have a required time to complete its processing. Each workload may perform differently on each platform in terms of resource consumption and time to completion. Each platform incurs different costs, which may change over time. The cost per platform may vary depending on specified resource usage, time intervals, and other factors. Each platform may have different capacity limits. Some of the multiple platforms may be local and some may be remote. The objective of the technique is to find a mapping between the multiple workloads and the multiple platforms that minimizes the time to completion of the workloads and the total cost incurred by using the platforms.

[0010] Existing commercial systems for performing cloud bursting have several limitations. In a Platform as a Service (PaaS) model, the systems typically rely on system administrators to identify resource overages and shortages via monitoring tools, monitor and decide which applications to move, monitor and regulate budget usage, and manage the provisioning and release of cloud resources. PaaS clouds are a relatively new model, and current PaaS cloud systems offer limited or no support for managing service levels and budgets.

[0011] To overcome the above limitations, embodiments of the present invention focus on the PaaS cloud model. Embodiments of the present invention support any type of workload and workload environment and do not make any assumptions regarding virtualized environments. Embodiments of the present invention jointly consider service levels, budgets, costs, resources, workloads, and platforms. Embodiments of the present invention support multiple local and remote clouds with different attributes. Embodiments of the present invention automatically optimize workload service levels and cloud usage costs within budget, resource, and platform constraints. Embodiments of the present invention provide a scalable solution.

[0012] FIG. 1 illustrates a system 100 including multiple platforms as a service, according to one embodiment of the present invention. The system 100 including multiple platforms as a service comprises a workload 120, a platform 130, and a system 110 for mapping the workload 120 and the platform 130. The workload 120 includes M pending workloads (a waiting workload 1 (121-1), a waiting workload 2 (121-2), ..., a waiting workload M (121-M)). The pending workloads are waiting to be deployed on the platform. The workload 120 further includes N running workloads (a running workload 1 (122-1), a running workload 2 (122-2), ..., a running workload N (122-N)). The running workloads are workloads currently running on the platform. Platform 130 includes K local platforms (local platform 1 (131-1), local platform 2 (131-2), ..., local platform K (131-K)) and L remote platforms (remote platform 1 (132-1), remote platform 2 (132-2), ..., remote platform L (131-L)). Platform 130 can be provided by one or more cloud providers.

[0013] A user requests that a waiting workload be executed on a platform. The mapping system 110 then calculates an optimal placement of the waiting workload on the platform and places the waiting workload on the platform according to the optimal placement. In response to any change (e.g., addition of a new workload to the system 100 or changes in the requirements of a workload, as described in more detail below), the mapping system 110 recalculates the optimal placement of the running workloads on the platform. In accordance with the optimal placement of the running workloads, the mapping system 110 moves or migrates one or more of the running workloads from the current platform to the calculated optimal platform for that workload if the current platform is not the calculated optimal platform.

[0014] The mapping system 110 may reside on a computing device or a server, the details of which are described below with reference to Figure 4. The mapping system 110 between workloads 120 and platforms 130 is implemented in a cloud computing environment, the details of which are described below with reference to Figures 5 and 6.

[0015] Mapping workloads and platforms to execution attributes

[0016] Mapping system 110 receives definitions of multiple workloads and multiple platforms eligible to run the multiple workloads. Mapping system 110 models the attributes of running a particular workload on a particular platform using a mapping function that maps each pair of a workload and a platform to the attributes of running the workload on that platform, as follows: TIFF0007786840000001.tif13161 where Cost is the estimated cost of executing a particular workload on a particular platform. Estimated Duration to Complete (EDC) is the estimated completion time of the particular workload running on the particular platform, measured from the time the workload starts executing on the platform and does not include the workload's waiting time before starting execution. Resource Requirements (RR) for a platform are the estimated resource requirements of the particular workload running on the particular platform, and relate to the main resources charged by the particular platform. Each platform defines the resources from which usage charges are calculated. Cost and EDC are learned and estimated by the mapping system 110. Depending on the interface provided by the platform, RR can be estimated by the mapping system 110 or provided by user input.

[0017] <WkPl> is a matrix containing the attributes of the workload running on the platform.

[0018] The mapping between each pair of workload and platform and the attributes of running each workload on each platform can be stored in a matrix. For example, each workload is represented by a row of the matrix, each platform is represented by a column of the matrix, and the attributes of running a particular workload on a particular platform are stored in the cells of the matrix. This matrix is ​​denoted as WkPl. An example of a WkPl matrix is ​​shown in Table 1. [Table 1]

[0019] The cells of the WkPl matrix contain the platform-specific PL j On a specific workload WKi The attribute when executing is stored. This cell is WkPl[WK i ,PL j ]. Among the attributes Cost, EDC, and RR, j On a specific workload WK i The attribute associated with performing the i ,PL j ]) (for example, Cost(WkPl[WK i ,PL j ])).

[0020] <Update matrix WkPl>

[0021] The mapping system 110 updates the matrix WkPl when the following trigger events occur:

[0022] (1) A new workload is added to the system 100. In this case, a new row is added to the matrix WkPl.

[0023] (2) One or more requirements of a workload are changed, in which case each cell in the row associated with that workload is changed.

[0024] (3) A workload completes processing on a particular platform. In this case, the actual running attributes of the workload on the platform may be updated in the cell associated with the workload and the platform. The actual running attributes of the workload on the platform are also added to the estimation mechanism for the Cost, EDC, and RR metrics. The attributes of other workloads that may be running on the same platform may also be updated.

[0025] (4) When the processing of a workload on the platform is completed, the workload is deleted from the matrix WkPl periodically or immediately. In this case, the row related to the workload to be deleted is deleted from the matrix WkPl. When the deletion is performed periodically, the deletion is applied based on deletion criteria (e.g., criteria based on the time attributes of the workload).

[0026] (5) A new platform is added. In this case, a new column is added to the matrix WkPl to store the estimated values ​​of the attributes of each workload.

[0027] (6) The cost charged by a platform changes, in which case the information stored in the matrix column associated with that platform is updated.

[0028] (7) The amount and / or type of resources available on a platform changes, in which case the information stored in the columns of the matrix associated with that platform is updated.

[0029] (8) A platform is deleted. In this case, the columns associated with the deleted platform are deleted.

[0030] To discover any of the above trigger events, the mapping system 110, which maintains the matrix WkPl, periodically scans and monitors the workload to determine its current state, and periodically scans and monitors the platform to determine its current state.

[0031] The mapping system 110 begins by building a matrix WkPl that contains columns defining available platforms but no rows. As workloads are added, the mapping system 110 adds rows to the matrix. The mapping system 110 then adds to each cell of this row an estimate of the workload's attributes on the available platforms.

[0032] <Estimation of Cost, EDC, and RR>

[0033] For each pair of workload and platform, to estimate each of the Cost, EDC, and RR metrics, system 110 uses an estimated value based on previously recorded information, that is, the execution attributes of other workloads of the same type executed on a specific platform. When one workload is currently being executed and the estimation of these metrics for that workload is being performed, system 110 can also consider the current state in the processing of that workload.

[0034] When estimating each of the Cost, EDC, and RR metrics, the following elements are considered.

[0035] (1) Workload type: Each workload can be associated with one workload type. Each workload type groups workloads that are similar in terms of running characteristics and resource requirements. The association of a given workload with one type can be specified by user input to system 110 as part of the attributes of that given workload. The Cost, EDC, and RR estimation mechanisms used by system 110 are based on the availability of the type attribute for each workload, and a given workload can be associated with previous workloads of the same type. The estimated metrics are calculated for each workload type. For each workload type, aggregated or detailed or both information regarding the metrics or attributes when executing the workload on the platform is determined and stored. This facilitates the estimation for workloads associated with the workload type. Using the actual execution attributes of completed workloads, the aggregated or detailed or both information stored for the workload type associated with that workload is updated.

[0036] (2) Additivity of index values: The collected indexes of Cost, EDC, and RR must represent each workload independently and have additivity.

[0037] (3) PaaS Cloud Billing Model: PaaS cloud platforms typically have one or more resources for which usage and fees are calculated. For example, usage and fees can be calculated using memory usage or the number of workloads processed. These resources are typically defined by software (rather than hardware). Cost fees are typically proportional to the consumption of these resources and are calculated based on the amount of resource consumption per user unit of time. There may also be a maximum resource usage limit for each user. PaaS cloud platforms may offer multiple service types. The usage costs for these service types may be calculated separately or together, depending on the cost fee calculation method. A service type may also be associated with a maximum resource usage limit for each user.

[0038] (4) Calculating Resource Consumption and Cost for Running or Completed Workloads: When a platform reports resource consumption and cost information for executing a specific workload, the system 110 uses the reported resource consumption and cost information to update the resource requirements and cost information for the workload type corresponding to the workload (or to update aggregate and / or detailed information stored for the workload type). When a platform reports cost information based on resource usage per unit of time for a user, or when resource consumption and cost are not reported per workload, the resource consumption and cost for executing a specific workload can be calculated in several ways. 1 The first method is to collect resource consumption and cost information reported by the platform while independently executing the workload for a specific user on a specific platform. 2 The second method is to extract the resource consumption ratio of a specific workload relative to other workloads, for example, using operating system monitoring information, and apply this ratio to calculate the resource consumption and cost of the specific workload among the resource consumption and costs reported by the platform for multiple workloads executed by the user. 3 A third method for obtaining resource requirements and costs per workload is to receive this information via or use user input when automated estimation is not possible. The reported resource consumption and cost information obtained in these ways is used to update aggregate and / or detailed information stored for the workload type.

[0039] (5) Workload migration cost: This cost can be added to a running workload. It is an additional component to the estimated cost, estimated completion time, and estimated resource requirements, and is added on top of the estimates that do not consider migration. This additional cost component can be either positive or negative depending on the current state of the running workload and the migration cost of the workload environment. When migration cost is added, the estimates per platform may be different compared to the estimates without migration for each workload. The migration cost is the cost of migrating one running workload from its current platform to the optimal platform determined by the mapping system 110.

[0040] <Overall attribute>

[0041] Overall attributes include OverallBudget, which is the overall monetary budget allocated to each user / organizational unit for the workloads that the user / organizational unit executes.

[0042] <Workload Attributes>

[0043] Workload (WK i ) has the following attributes: (1) OriginalBudget(WK i ): This is the workload WK i (2) Remaining Budget (WK i ): This is the workload WK i (3) RDC(WK i ): This is the platform workload WK i RDC(WK i) is considered a best-effort (soft) constraint. (4) SubmissionTime(WK i ): This is the workload WK i (5) Priority(WK i ): This is the workload WK i The priority is relative to the priorities of other workloads. (6) Eligible Platforms (WK i ): This is a list of platforms specified as platform indexes in the matrix WkPl. The platforms in the list are used by the workload WK i The list of eligible platforms for a particular workload may be a subset of platforms, selected based on, for example, platform type and user access to the platform.

[0044] <platform attribute>

[0045] One Platform (PL j ) platform attribute is MaxResource(PL j ) attribute MaxResource(PL j ) is a platform PL j The maximum limit for a user on the consumption of the main resource charged by the user. The main resource may be, for example, memory size or the number of processes of the workload.

[0046] Cost- and service-level-aware workload placement across multiple platforms as a service

[0047] 2 is a flowchart illustrating operational steps for placing workloads on multiple platforms according to one embodiment of the present invention. In step 201, a workload-to-platform mapping system (e.g., system 110 shown in FIG. 1) detects a trigger event that modifies a matrix. The matrix pairs workloads with platforms and includes attributes for executing the workloads on the platforms. For example, the matrix is ​​the WkPl matrix described above. To detect a trigger event that modifies the matrix, the mapping system periodically scans and monitors the workloads and platforms to determine their current state. The trigger event is at least one of the following events: (1) a new workload is added to a system that includes multiple platforms as a service; (2) one or more requirements (budget, required completion time, priority, eligible platforms) of each workload change; (3) a workload completes processing on one of the multiple platforms; (4) a new platform is added to a system that includes multiple platforms as a service; (5) the cost of one of the multiple platforms changes; (6) the availability, amount, or type of resources available to one of the multiple platforms changes; (7) the maximum resource utilization per user changes for one of the multiple platforms; (8) one of the multiple platforms is removed from the system that includes multiple platforms as a service; or (9) the overall budget changes.

[0048] In step 202, when a trigger event is detected, the mapping system recalculates the matrix, e.g., the matrix WkPl, and updates the attributes of the workload running on the platform within the matrix.

[0049] In step 203, the mapping system calculates the optimal placement of the workloads on the platform. The mapping system uses an algorithm to solve an optimization problem, which is described in more detail below with reference to FIG. 3.

[0050] In step 204, the mapping system determines whether each workload is not yet executed on the corresponding platform. For example, if each workload is not yet executed, the workload is a waiting workload (e.g., as shown in FIG. 1, waiting workload 1 (121-1), waiting workload 2 (121-2),..., waiting workload M (121-M)), and is waiting to be mapped to a platform (by the mapping system). If each workload is currently being executed, the workload is a running workload (e.g., as shown in FIG. 1, running workload 1 (122-1), running workload 2 (122-2),..., running workload N (122-N)).

[0051] If it is determined that each workload has not yet been executed (YES in step 204), the mapping system places each workload on the optimal platform calculated for that workload in step 205. The optimal platform is calculated in step 203.

[0052] If it is determined that the respective workload is running (NO in step 204), then in step 206 the mapping system determines whether the respective workload is currently running on the optimal platform (as calculated in step 203). In other words, the mapping system determines whether the current platform on which the respective workload is running is the calculated optimal platform for that workload.

[0053] If it is determined that the respective workload is not currently running on the calculated optimal platform (NO at step 206), i.e., the current platform is not the calculated optimal platform for the respective workload, then at step 207 the mapping system moves or migrates the workload from the current platform to the calculated optimal platform.

[0054] If it is determined that the respective workload is currently running on the calculated optimal platform (YES in step 206), i.e., if the current platform is the calculated optimal platform for the respective workload, the mapping system keeps the workload on the current platform (the optimal platform for the workload) without moving or migrating the workload from the current platform to another platform.

[0055] If it is determined that each workload is currently running on the calculated optimal platform (YES in step 206), after step 205 or after step 207, the mapping system executes step 208. In step 208, the mapping system determines whether all workloads have been placed according to the optimal placement (calculated in step 203).

[0056] If it is determined that all workloads have been placed according to the optimal placement (YES in step 208), the mapping system completes the placement of workloads that takes into account the cost and service level for multiple platforms as a service or according to the optimal placement. If it is determined that all workloads have not been placed according to the optimal placement (NO in step 208), the mapping system repeats steps 204 to 208 until all workloads have been placed according to the optimal placement.

[0057] <Formulation of optimization problem>

[0058] TIFF0007786840000003.tif18166TIFF0007786840000004.tif20124where platform index P i is the workload WK i Identify the best platform for your needs and use multiple platform indexes. i} identifies the optimal platform for each workload. WKN represents the number of workloads, and PLN represents the number of platforms. The objective function has the following constraints:

[0059] The first constraint is as follows: TIFF0007786840000005.tif8138This is a best-effort (or soft) constraint that requires that for each workload, the estimated completion time (EDC) on the selected platform does not exceed the requested completion time (RDC).

[0060] The second constraint is as follows: This is a mandatory (or hard) constraint. The second constraint requires that for each workload, the cost of running on the selected platform does not exceed the remaining budget.

[0061] The third constraint is as follows: TIFF0007786840000007.tif20133This is a mandatory (or hard) constraint.The third constraint requires that the total cost of running all workloads on each selected platform does not exceed the OverallBudget.

[0062] The fourth constraint is as follows: TIFF0007786840000008.tif7129This is a mandatory (or hard) constraint.The fourth constraint requires that the platform selected for a workload is one of multiple platforms that are eligible to run that workload.

[0063] The fifth constraint is as follows: TIFF0007786840000009.tif21164This is a mandatory (or hard) constraint.The fifth constraint requires that resources consumed from a platform by a workload running on that platform do not exceed that platform's resource consumption limit for the user, or do not exceed the resource capacity or resource consumption limit of either platform.

[0064] <Algorithms for optimization problems>

[0065] The optimization problem is P1, P2, ..., P WKN The objective cost function and constraint functions are variables P1, P2, ..., P (platform index). WKN Since the formulation cannot define a mathematical method that depends on the values ​​stored in the matrix WkPl based on the estimation method described above, mathematical programming solvers cannot be applied to this optimization problem. The optimization problem defined here can be applied to the greedy algorithm paradigm, which uses locally optimal choices to progress step by step towards a global optimum.

[0066] A system for mapping workloads and platforms (e.g., system 110 shown in FIG. 1) first places each workload on the platform that incurs the lowest cost for that workload. Then, for workloads whose estimated completion time (EDC) exceeds their required completion time (RDC), the system incrementally increases the cost. At each stage, the mapping system selects the workload with the lowest upgrade cost. Note that the workload upgrade must enable the workload's estimated completion time (EDC) to be equal to or less than its required completion time (RDC). The mapping system then upgrades the selected workload. At each stage, mandatory and best-effort constraints are checked.

[0067] When solving the optimization problem, the latest matrix WkPl is used as input, and the result of solving the optimization problem is as follows: i With respect to the relevant platform index P in the matrix WkPl i The related platform index P i is the workload WK i Identify the best platform to run it on.

[0068] 3A and 3B are a flowchart illustrating the operational steps for optimizing workload placement on multiple platforms in accordance with one embodiment of the present invention.

[0069] 3A, in step 301, a system for mapping workloads to platforms (e.g., system 110 shown in FIG. 1) establishes a platform index for each workload, which identifies the platform with the lowest cost for executing the workload. i For the mapping system, the relevant platform index P is stored in the matrix WkPl. iSet the value of the platform index P i The platform identified by the value of WK i The cost incurred to execute the platform index P is the lowest. i satisfies the following: TIFF0007786840000010.tif6150

[0070] Referring to Figure 3(A), in step 302, the mapping system determines whether the mandatory constraints regarding budget, platform eligibility, and platform resource capacity are met. The mapping system checks whether the mandatory (or hard) constraints are met. The mandatory (or hard) constraints are the second to fifth constraints mentioned above.

[0071] If it is determined that the necessary constraints are not satisfied (NO in step 302), the mapping system performs step 310 shown in Figure 3(B). Referring to Figure 3(B), in step 310, the mapping system determines whether previous placements of each workload satisfy the necessary constraints. The previous placements are solutions to the optimization problem in previous iterations.

[0072] 3(B), if the mapping system determines that the previous placement of each workload satisfies the necessary constraints (YES at step 310), then the mapping system outputs the previous placement as the optimal placement of each workload at step 311. The mapping system uses the previous solution as the result of the algorithm, and the system completes the steps of the algorithm.

[0073] Continuing with FIG. 3(B), if it is determined that the previous placement of each workload does not satisfy the required constraints (NO at step 310), then at step 312 the mapping system does not output an optimal placement for each workload. This means that there is no feasible solution to the optimization problem, for the following reason: The algorithm starts with the mapping with the lowest cost. If this mapping violates the budget constraint, then there is no feasible solution under the given constraints. Such a scenario can be classified as an invalid user input to the algorithm. In this way, the system completes the steps of the algorithm.

[0074] Returning to FIG. 3A, if it is determined that the required constraints are satisfied (YES in step 302), then in step 303 the mapping system checks the best-effort constraints on the required completion times of each workload and determines the set of workloads that do not satisfy the best-effort constraints. The best-effort constraint is the first constraint mentioned above. Each workload in the set of workloads is identified using an index in the matrix WkPl. The set of workloads is denoted as WKS.

[0075] Referring to FIG. 3(A), in step 304, the mapping system determines whether the workload set (WKS) is empty. An empty workload set (WKS) indicates that the best-effort constraint on the requested completion time (RDC) is satisfied. If it is determined that the workload set (WKS) is empty (YES in step 304), the mapping system executes step 313 shown in FIG. 3(B). Referring to FIG. 3(B), in step 313, the mapping system outputs the current placement as the optimal placement of each workload. The current placement is the solution to the optimization problem in the current iteration. The system uses the current solution as the result of the algorithm. The system then completes the steps of the algorithm.

[0076] Returning to FIG. 3A, if it is determined that the workload set (WKS) is not empty (NO in step 304), in step 305 the mapping system determines a set of candidate platforms for the workload set (WKS) that will have the lowest incurred cost and can satisfy the best-effort constraint. i ), the mapping system determines the lowest cost platform that satisfies the best-effort constraint. i} is as follows: TIFF0007786840000011.tif7159

[0077] Referring to FIG. 3A, in step 306, the mapping system determines upgraded platform indexes that identify candidate platforms for the workload group (WKS) and calculates upgraded costs. i Regarding the upgraded platform index PU i is calculated as follows: TIFF0007786840000012.tif7169 Workload WK included in workload group WKS i The post-upgrade cost for can be shown as follows: TIFF0007786840000013.tif8139

[0078] If there is no platform in the candidate platform group that can satisfy the best effort constraint for a workload included in the workload group WKS and none of the platforms in the candidate platform group is available, the system determines that the workload cannot be upgraded and sets the post-upgrade cost of the workload to invalid or infinite (e.g., UpgradeCost(WK i )=∞). In this way, the system avoids adding the workload to the workload set WKS in the next iteration of the algorithm. The upgrade of the workload will not be considered in the next iteration to solve the optimization problem.

[0079] Referring to FIG. 3(A), in step 307, the mapping system determines whether the workload group (WKS) includes at least one workload with a valid post-upgrade cost. If it is determined that the workload group does not include any workload with a valid post-upgrade cost (NO in step 307), the system executes step 313 shown in FIG. 3(B). Referring to FIG. 3(B), in step 313, the system sets the current placement as the optimal placement of each workload. The current placement is the solution to the optimization problem in the current iteration. The system uses the current solution as the result of the algorithm. In this case, there is no further way to upgrade the solution to the optimization problem. The system then completes the steps of the algorithm.

[0080] Returning to FIG. 3(A), if it is determined that the workload group includes at least one workload with a valid post-upgrade cost (YES in step 307), then in step 308 the mapping system selects the workload with the lowest post-upgrade cost from the one or more workloads with valid post-upgrade costs. The workload with the lowest post-upgrade cost is selected from the workload group (WKS). The workload with the lowest post-upgrade cost is designated as WK t It is written as WKt satisfies the following formula: TIFF0007786840000014.tif6147WK t is the most cost-effective workload discovered in this iteration of solving the optimization problem.

[0081] Referring to Figure 3(A), in step 309, the mapping system upgrades the workload by setting a post-upgrade platform index for the workload with the lowest post-upgrade cost. t =PU t By setting WK t Upgrade the PU t is the post-upgrade platform index, and P t is WK t is the most recent platform index selected for

[0082] After step 309, the mapping system repeats step 302 for the next iteration of the algorithm to find another most cost-effective workload. The mapping system runs next iterations of solving the optimization problem until it finds the optimal placement of each workload on each platform.

[0083] Upgrading a workload can be done only once in the optimization problem algorithm, and the upgraded workload is not reconsidered in the next iteration of the algorithm. Therefore, the number of iterations of the algorithm is limited to the number of workloads. In each iteration, a linear scan of the workloads can be performed. The optimization problem algorithm then selects a workload to upgrade and proceeds to the next iteration. All calculations for each workload are done only once, and only the constraints that take all workloads into account need to be recalculated for each iteration.

[0084] The optimization problem algorithm can be performed in parallel by running all the independent calculations for each workload simultaneously for all related workloads. A way to further optimize the algorithm is to maintain all the basic data and counters for the various constraints for both the workload and the platform, and incrementally update this data and counters as changes occur. This allows for faster constraint calculations.

[0085] 4 is a diagram illustrating components of a computing device or server 400 in accordance with one embodiment of the present invention. Note that FIG. 4 is intended as an illustration of one embodiment only and is not intended to imply any limitation on the environments in which different embodiments may be implemented.

[0086] Referring to Figure 4, a computing device or server 400 includes one or more processors 420, memory 410, and one or more tangible storage devices 430. Communication between the above-mentioned components of the computing device or server 400 is indicated in Figure 4 by the reference numeral 490. The memory 410 includes one or more ROMs 411, one or more RAMs 413, and one or more caches 415. One or more operating systems 431 and one or more computer programs 433 reside on the computer-readable tangible storage device 430.

[0087] The computing device or server 400 further includes one or more I / O interfaces 450. The I / O interfaces 450 allow for the input and output of data to and from one or more external devices 460 connectable to the computing device or server 400. The computing device or server 400 further includes one or more network interfaces 440 for communication between the computing device or server 400 and a computer network.

[0088] The present invention may be a system, method, or computer program product, or combination thereof, integrated at any possible level of technical detail. The computer program product may include a computer-readable storage medium having stored thereon computer-readable program instructions for causing a processor to carry out aspects of the present invention.

[0089] A computer-readable storage medium may be a tangible device capable of retaining and storing instructions for use by an instruction execution device. The computer-readable storage medium may be, by way of example, an electronic storage device, a magnetic storage device, an optical storage device, an electromagnetic storage device, a semiconductor storage device, or a suitable combination thereof. More specific examples of computer-readable storage media include portable computer diskettes, hard disks, RAM, ROM, EPROM (or flash memory), SRAM, CD-ROMs, DVDs, memory sticks, floppy disks, mechanically encoded devices having instructions recorded on punch cards or ridge-in-groove structures, or the like, and suitable combinations thereof. Computer-readable storage devices, as used herein, should not be construed as ephemeral signals per se, such as radio waves or other freely propagating electromagnetic waves, electromagnetic waves propagating through a waveguide or other transmission medium (e.g., light pulses passing through a fiber optic cable), or electrical signals transmitted over wires.

[0090] The computer-readable program instructions described herein can be downloaded from a computer-readable storage medium to each computer / processing device. Alternatively, they can be downloaded to an external computer or external storage device via a network (e.g., the Internet, a LAN, a WAN, or a wireless network, or a combination thereof). The network can include copper transmission cables, optical fiber transmissions, wireless transmissions, routers, firewalls, switches, gateway computers, or edge servers, or a combination thereof. A network adapter card or network interface within each computer / processing device receives the computer-readable program instructions from the network and transfers the computer-readable program instructions to a computer-readable storage medium in the respective computer / processing device for storage.

[0091] The computer-readable program instructions for carrying out the operations of the present invention can be either assembler instructions, instruction set architecture (ISA) instructions, machine instructions, machine-dependent instructions, microcode, firmware instructions, state setting data, configuration data for integrated circuits, or source or object code written in any combination of one or more programming languages, including object-oriented programming languages ​​such as Smalltalk and C++, and procedural programming languages ​​such as the C programming language and similar programming languages. The computer-readable program instructions can execute entirely on the user's computer as a stand-alone software package, partially on the user's computer, partially on the user's computer and partially on a remote computer, or entirely on a remote computer or server. In the latter case, the remote computer may be connected to the user's computer via any type of network, including a LAN or WAN, or may be connected to an external computer (e.g., via the Internet using an Internet Service Provider). In some embodiments, electronic circuitry, including, for example, programmable logic circuits, field programmable gate arrays (FPGAs), programmable logic arrays (PLAs), can execute computer-readable program instructions by utilizing state information of the computer-readable program instructions to customize the electronic circuitry for carrying out aspects of the present invention.

[0092] Aspects of the present invention are described herein with reference to flowchart and / or block diagrams of methods, apparatus (systems), and computer program products according to embodiments of the invention. Each block of the flowchart and / or block diagram, and combinations of blocks in the flowchart and / or block diagram, can be implemented by computer-readable program instructions.

[0093] The computer-readable program instructions may be provided to a processor of a computer or other programmable data processing apparatus to produce a machine, whereby the instructions, executed by the processor of such computer or other programmable data processing apparatus, form means for performing the functions / acts identified in one or more blocks of the flowcharts and / or block diagrams. The computer-readable program instructions may also be stored on a computer-readable storage medium capable of instructing a computer, programmable data processing apparatus, or other device, or combination thereof, to function in a particular manner, whereby the computer-readable storage medium having instructions stored thereon constitutes an article of manufacture including instructions for performing aspects of the functions / acts identified in one or more blocks of the flowcharts and / or block diagrams.

[0094] Computer-readable program instructions may also be loaded into a computer, other programmable device, or other device and a series of operational steps executed on the computer, other programmable device, or other device to create a computer-implemented process, whereby the instructions executing on the computer, other programmable device, or other device perform the functions / operations identified in one or more blocks in the flowcharts and / or block diagrams.

[0095] The flowcharts and block diagrams in the figures illustrate the architecture, functionality, and operation of possible implementations of systems, methods, and computer program products according to various embodiments of the present invention. In this regard, each block in a flowchart or block diagram may represent a module, segment, or portion of instructions, including one or more executable instructions for performing a specific logical function. In some implementations, the functions depicted in the blocks may be performed in an order different from that depicted in the figures. For example, two blocks shown in succession may actually be accomplished as a single step, may be executed simultaneously or substantially simultaneously, may be executed in a partially or fully overlapping manner, or may even be executed in reverse order, depending on the functionality involved. Note that each block in the block diagrams and / or flowcharts, and combinations of blocks in the block diagrams and / or flowcharts, may be implemented by a dedicated hardware-based system that performs a specific function or operation, or by a combination of dedicated hardware and computer instructions.

[0096] Although this disclosure includes detailed descriptions of cloud computing, implementation of the teachings described herein is not limited to cloud computing environments. Rather, embodiments of the invention can be practiced in conjunction with any other type of computing environment now known or later developed.

[0097] Cloud computing is a service delivery model for enabling convenient, on-demand network access to a shared pool of configurable computing resources (e.g., networks, network bandwidth, servers, processing, memory, storage, applications, virtual machines, and services) that can be rapidly provisioned and released with minimal management effort or interaction with the service provider. This cloud model may include at least five characteristics, at least three service models, and at least four implementation models.

[0098] The characteristics are as follows:

[0099] On-Demand Self-Service: Cloud consumers can unilaterally provision computing capacity, such as server time or network storage, automatically as needed, without the need for human interaction with the service provider.

[0100] Broad network access: Computing power is available over the network and can be accessed through standard mechanisms, facilitating use by heterogeneous thin or thick client platforms (e.g., cell phones, laptops, PDAs).

[0101] Resource Pooling: Computing resources from a provider are pooled and offered to multiple consumers using a multi-tenant model. Various physical and virtual resources are dynamically allocated and reallocated based on demand. Consumers generally have no control or knowledge of the exact location of the resources they are provided with, so there is a sense of location independence. However, consumers may be able to identify their location at a higher level of abstraction (e.g., country, state, data center).

[0102] Rapid Elasticity: Computing capacity can be provisioned quickly and elastically, sometimes automatically, to instantly scale out and quickly released to instantly scale in. To the consumer, the computing power available to provision often appears unlimited, and can be purchased at any time and in any quantity.

[0103] Metered Services: Cloud systems leverage measurement capabilities at a level of abstraction appropriate to the type of service (e.g., storage, processing, bandwidth, active user accounts) to automatically control and optimize resource usage. Resource usage can be monitored, controlled, and reported to provide transparency to both providers and consumers of utilized services.

[0104] The service model is as follows:

[0105] Software as a Service (SaaS): The functionality offered to the consumer is the availability of a provider's applications running on a cloud infrastructure. The applications can be accessed from a variety of client devices through a thin client interface such as a web browser (e.g., webmail). The consumer does not manage or control the underlying cloud infrastructure, including the network, servers, operating systems, storage, or even individual application functions, except for limited user-specific application configuration settings.

[0106] Platform as a Service (PaaS): The capability offered to consumers is to deploy applications they create or acquire onto a cloud infrastructure using programming languages ​​and tools supported by the provider. The consumer does not manage or control the underlying cloud infrastructure, including networks, servers, operating systems, or storage, but does have control over the deployed applications and, in some cases, the configuration of their hosting environment.

[0107] Infrastructure as a Service (IaaS): The functionality provided to consumers is the provisioning of processors, storage, networking, and other basic computing resources on which the consumer can deploy and run any software, including operating systems and applications. The consumer does not manage or control the underlying cloud infrastructure, but has control over the operating systems, storage, and deployed applications, and in some cases partial control over some network components (e.g., host firewalls).

[0108] The deployment model is as follows:

[0109] Private Cloud: This cloud infrastructure is dedicated to a specific organization and can be managed by that organization or a third party, and can exist on-premise or off-premise.

[0110] Community Cloud: This cloud infrastructure is shared by multiple organizations to support a specific community with common concerns (e.g., mission, security requirements, policies, and compliance). This cloud infrastructure can be managed by those organizations or a third party and can exist on-premises or off-premises.

[0111] Public cloud: This cloud infrastructure is available to the general public or large industry organizations and is owned by an organization that sells cloud services.

[0112] Hybrid cloud: This cloud infrastructure combines two or more cloud models (private, community, or public), each of which retains its inherent nuances but is bound by standards or specific technologies that enable data and application portability (e.g., cloud bursting for load balancing between clouds).

[0113] A cloud computing environment is a service-oriented environment that emphasizes statelessness, low coupling, modularity, and semantic interoperability. At the core of cloud computing is an infrastructure that includes a network of interconnected nodes.

[0114] FIG. 5 illustrates an exemplary cloud computing environment 50. As shown, the cloud computing environment 50 includes one or more cloud computing nodes 10, with which local computing devices used by cloud consumers (e.g., mobile device 54A, desktop computer 54B, laptop computer 54C, or automobile computer system 54N, or combinations thereof) can communicate. The nodes 10 can communicate with each other. The nodes 10 can be physically or virtually grouped (not shown) in one or more networks, such as the private, community, public, or hybrid clouds described above, or combinations thereof. This enables the cloud computing environment 50 to provide infrastructure, platform, or software as a service, or combinations thereof, without the cloud consumer having to maintain resources on their local computing devices. It should be understood that the types of computing devices 54A-N are merely exemplary, and that the computing nodes 10 and the cloud computing environment 50 can communicate with any type of electronic device via any type of network or network-addressable connection (e.g., using a web browser), or both.

[0115] Next, a set of functional abstraction layers provided by the cloud computing environment 50 (FIG. 5) is shown in FIG. 6. It should be understood in advance that the components, layers, and functions shown in FIG. 6 are merely exemplary, and embodiments of the present invention are not limited thereto. As shown, the following layers and corresponding functions are provided:

[0116] Hardware and software layer 60 includes hardware and software components. Examples of hardware components include mainframe 61, reduced instruction set computer (RISC) architecture-based server 62, server 63, blade server 64, storage device 65, and network and network components 66. In some embodiments, software components include network application server software 67 and database software 68.

[0117] The virtualization layer 70 provides an abstraction layer from which virtual entities such as virtual servers 71, virtual storage 72, virtual networks including virtual private networks 73, virtual applications and operating systems 74, and virtual clients 75 can be provided.

[0118] By way of example, the management layer 80 may provide the following functionality: Resource provisioning 81 enables dynamic procurement of computing and other resources utilized to execute tasks within the cloud computing environment. Metering and pricing 82 enables cost tracking as resources are utilized within the cloud computing environment and billing or invoicing for the consumption of these resources. By way of example, these resources may include application software licenses. Security enables identification and verification of cloud consumers and tasks, as well as protection for data and other resources. User portal 83 provides consumers and system administrators with access to the cloud computing environment. Service level management 84 enables allocation and management of cloud computing resources so that requested service levels are met. Service level agreement (SLA) planning and fulfillment 85 enables advance arrangement and procurement of anticipated future cloud computing resources required in accordance with SLAs.

[0119] The workload layer 90 provides examples of functionality available in a cloud computing environment. Examples of workloads and functionality that can be provided from this layer include mapping and navigation 91, software development and lifecycle management 92, virtual classroom instruction delivery 93, data analytics processing 94, transaction processing 95, and functionality 96 for deploying workloads on multiple platforms as a service.

Claims

1. 1. A computer-implemented method for estimating attributes of workloads executing on Platform as a Service (PaaS) in a system including multiple Platform as a Service (PaaS), comprising: receiving a definition of each workload and a definition of each platform eligible to execute the respective set of workloads; mapping the respective workloads and the respective platforms to attributes of running the respective workloads on the respective platforms; estimating the attributes and storing the attributes in a matrix; updating the attributes in the matrix in response to a trigger event that modifies the matrix; 11. A computer-implemented method comprising:

2. and estimating, as one of the attributes, a cost of running each of the workloads on each of the platforms. The computer-implemented method of claim 1 .

3. determining as one of the attributes an estimated time to complete each of the workloads on each of the platforms. The computer-implemented method of claim 1 .

4. determining, as one of the attributes, a resource requirement of each of the workloads executing on the respective platforms. The computer-implemented method of claim 1 .

5. adding a migration cost to the attributes for the currently executing workload; the migration cost is a cost to migrate the currently running workload from a current platform to a platform that is optimal for the currently running workload; The computer-implemented method of claim 1 .

6. classifying each of the workloads into one or more workload types based on similarities in execution attributes and resource requirements; determining and storing, for each of the one or more workload types, aggregate information regarding the attributes; and using the aggregate information to estimate the attributes of a new workload associated with one of the one or more workload types. The computer-implemented method of claim 1 .

7. and, when resource consumption and cost information for executing a workload is received from a platform, updating the aggregate information for a workload type with which the workload is associated using the resource consumption and cost information. The computer-implemented method of claim 6.

8. When resource consumption and cost information for running a workload is not received from a platform, (1) collecting the resource consumption and cost information for executing the workload on the platform while executing the workload; (2) extracting a resource consumption ratio of the workload on each platform relative to other platforms, and determining resource consumption and cost information of the workload based on resource consumption and cost information of the other platforms on each platform; (3) Receiving user input determining the resource consumption and cost information in one of the following ways: and using the resource consumption and cost information to update the aggregate information for a workload type with which the workload is associated. The computer-implemented method of claim 6.

9. scanning each of the workloads; Detecting whether a new workload is being added; Detecting whether one or more requirements for a currently executing workload have changed; detecting whether one of the respective workloads has completed processing; scanning said respective platforms; Detecting whether a new platform has been added; detecting whether the costs incurred by one of said respective platforms have changed; detecting whether one or more resources in said one of said respective platforms have been modified; detecting whether said one of said respective platforms has been removed; determining that the trigger event modifying the matrix is ​​detected when at least one of the following occurs: a new workload is added; one or more requirements for the currently executing workloads are changed; one of the respective workloads completes processing; a new platform is added; the cost incurred by one of the respective platforms is changed; one or more resources are changed; or one of the respective platforms is removed. The computer-implemented method of claim 1 .

10. determining an optimal placement of each of the workloads on each of the platforms based on the information in the matrix; placing the respective workloads on the respective platforms based on the optimal placement; The computer-implemented method of claim 1 .

11. 1. A computer program for estimating attributes of workloads executing on Platform as a Service (PaaS) in a system including multiple Platform as a Service (PaaS) platforms, the computer program comprising program instructions executable by one or more processors, the program instructions comprising: receiving a definition of each workload and a definition of each platform eligible to execute the respective set of workloads; mapping the respective workloads and the respective platforms to attributes of running the respective workloads on the respective platforms; estimating the attributes and storing the attributes in a matrix; updating the attributes in the matrix in response to a trigger event that modifies the matrix; A computer program that is capable of executing the above.

12. and further comprising program instructions executable to estimate, as one of the attributes, a cost of executing the respective workload on the respective platform.

12. A computer program according to claim 11.

13. and further comprising program instructions executable to determine, as one of the attributes, an estimated time to complete each of the workloads on the respective platforms.

12. A computer program according to claim 11.

14. and further comprising program instructions executable to determine, as one of the attributes, a resource requirement of the respective workload executing on the respective platform.

12. A computer program according to claim 11.

15. further comprising executable program instructions for adding a migration cost to the attribute for a currently executing workload; the migration cost is a cost to migrate the currently running workload from a current platform to a platform that is optimal for the currently running workload; 12. A computer program according to claim 11.

16. classifying each of the workloads into one or more workload types based on similarities in execution attributes and resource requirements; determining and storing, for each of the one or more workload types, aggregate information regarding the attributes; and using the aggregate information to estimate the attribute of a new workload associated with one of the one or more workload types.

12. A computer program according to claim 11.

17. and further comprising program instructions executable to, when resource consumption and cost information for executing a workload is received from a platform, update the aggregate information for a workload type with which the workload is associated using the resource consumption and cost information.

17. A computer program according to claim 16.

18. When resource consumption and cost information for running a workload is not received from a platform, (1) collecting the resource consumption and cost information for executing the workload on the platform while executing the workload; (2) extracting a resource consumption ratio of the workload on each platform relative to other platforms, and determining resource consumption and cost information of the workload based on resource consumption and cost information of the other platforms on each platform; (3) Receiving user input determining the resource consumption and cost information in one of the following ways: and updating the aggregate information for a workload type with which the workload is associated using the resource consumption and cost information.

17. A computer program according to claim 16.

19. scanning each of the workloads; Detecting whether a new workload is being added; Detecting whether one or more requirements for a currently executing workload have changed; detecting whether one of the respective workloads has completed processing; scanning said respective platforms; Detecting whether a new platform has been added; detecting whether the costs incurred by one of said respective platforms have changed; detecting whether one or more resources in said one of said respective platforms have been modified; detecting whether said one of said respective platforms has been removed; determining that the trigger event modifying the matrix is ​​detected when at least one of the following occurs: a new workload is added; the one or more requirements for the currently executing workloads are changed; one of the respective workloads completes processing; a new platform is added; the cost incurred by the one of the respective platforms is changed; one or more resources are changed; or one of the respective platforms is removed.

12. A computer program according to claim 11.

20. determining an optimal placement of each of the workloads on each of the platforms based on the information in the matrix; placing the respective workloads on the respective platforms based on the optimal placement; 12. A computer program according to claim 11.

Citation Information

Patent Citations

  • Computer system and scheduling method applied to the system

    JP1999031134A

  • Heterogeneous hybrid computer connecting system and processing assignment method and charging method in same system

    JP2005056201A

  • Job schedule management device, job schedule management method and program therefor

    JP2006048275A

  • Information processing system and power saving control method thereof, and device

    JP2013092951A

  • Job scheduling using expected server performance information

    US20160098292A1