Balancing mainframe and distributed workloads based on performance and cost
The workload control module collects and analyzes performance and cost data, and makes real-time decisions on allocating application workloads to mainframes and distributed computing platforms, solving the problems of improper resource utilization and excessive costs, and achieving efficient load balancing and cost optimization.
Patent Information
- Application Number
- CN202111144906.7
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Priority Date
- 2020-09-29
- Filing Date
- 2021-09-28
- Publication Date
- 2025-10-21
- Estimated Expiration
- 2041-09-28
AI Technical Summary
Existing technologies make it difficult to effectively balance workloads between mainframes and distributed computing platforms, resulting in improper resource utilization and excessive costs.
The workload control module collects and analyzes performance and cost data, and makes real-time decisions on allocating application workloads to mainframe platforms and distributed computing platforms to balance performance and cost.
It achieves efficient distribution of workloads on mainframes and distributed systems, reduces costs while meeting performance requirements and optimizing resource utilization.
Smart Images

Figure CN114327852B_ABST
Abstract
Description
Background Art
[0001] The present disclosure relates generally to the fields of mainframe and distributed computing, and more particularly to distributing application workloads to run on mainframe platforms and distributed computing platforms.
[0002] A mainframe is a large computer system designed to quickly process very large amounts of data. Mainframe systems are widely used in industries such as the financial sector, airline reservations, logistics, and other fields where large volumes of transactions need to be processed as part of regular business practices. A distributed computer system can consist of multiple software components running on multiple computers but acting as a single system. The computers in a distributed system can be physically close together and connected by a local area network, or they can be geographically distant and connected by a wide area network. A distributed system can consist of any number of possible configurations, such as mainframes, personal computers, workstations, minicomputers, and so on. The goal of distributed computing is to make such a network function as a single computer. Summary of the Invention
[0003] Aspects of the embodiments of the present disclosure disclose a method for balancing mainframe and distributed workloads. A processor receives a request to allocate an application workload to a mainframe platform and a distributed computing platform. The application workload includes multiple work units. The processor collects performance and cost data associated with the application workload, the mainframe platform, and the distributed computing platform. Based on an analysis of the performance and cost data, the processor determines a mainframe platform and a distributed computing platform for the multiple work units of the application workload. The processor allocates the multiple work units of the application workload to run on the mainframe platform and the distributed computing platform, respectively, to balance performance and cost in real time. BRIEF DESCRIPTION OF THE DRAWINGS
[0004] Figure 1 is a functional block diagram illustrating a workload control environment according to an embodiment of the present disclosure.
[0005] Figure 2 The embodiment according to the present disclosure is described Figure 1 A flowchart of the operating steps of a workload control module within a computing device.
[0006] Figure 3 is an application according to an embodiment of the present disclosure Figure 1 An example environment for the workload control module.
[0007] Figure 4 According to an embodiment of the present disclosure Figure 1 An exemplary functional diagram of a workload control module.
[0008] Figure 5The embodiment according to the present disclosure is described Figure 1 An exemplary architectural diagram of the operating steps of the workload control module.
[0009] Figure 6 The embodiment according to the present disclosure is described Figure 1 An exemplary functional diagram of the operating steps of the workload control module.
[0010] Figure 7 The embodiment according to the present disclosure is described Figure 1 An exemplary functional diagram of the operating steps of the workload control module and the resident module.
[0011] Figure 8 The embodiment according to the present disclosure is described Figure 1 An exemplary functional diagram of the operating steps of the workload control module.
[0012] Figure 9 According to an embodiment of the present disclosure Figure 1 A block diagram of the components of a computing device.
[0013] Figure 10 An embodiment of a cloud computing environment according to the present disclosure is depicted.
[0014] Figure 11 Depicted are embodiments of abstract model layers for a cloud computing environment according to the present disclosure. DETAILED DESCRIPTION
[0015] The present disclosure relates to systems and methods for balancing mainframe and distributed workloads based on performance and cost.
[0016] Embodiments of the present disclosure recognize the need to determine whether to use a mainframe or distributed (e.g., any non-mainframe) computing platform to build an application. Embodiments of the present disclosure recognize the need to decide whether the entire application will go to a mainframe or distributed platform, and / or whether part of the application can run on a mainframe platform and another part can run on a distributed platform. Embodiments of the present disclosure recognize the need to understand the pros and cons of working with mainframe and distributed solutions and focus on the use of one or the other. Embodiments of the present disclosure further recognize the need to distribute microservice solutions on a mainframe or distributed environment. The two platforms can provide different benefits based on reliability, cost, performance, and security.
[0017] Embodiments of the present disclosure disclose a solution that can support real-time decisions on whether a portion of an application can run on a mainframe or can be temporarily moved to a distributed environment based on the cost model, performance metrics and availability used. Embodiments of the present disclosure disclose collecting and processing data from various data sources to enable decisions to be made on running available applications on a mainframe or distributed system based on the processed relevant information. Some samples of relevant information may include processing cost, latency, throughput and availability. Embodiments of the present disclosure disclose reducing application processing costs while still achieving performance, throughput and user-required performance metrics. Embodiments of the present disclosure disclose evaluating application workloads from a mainframe environment, dividing the workload into logical blocks, and ranking activities based on resource consumption. Embodiments of the present disclosure disclose identifying cost saving opportunities by sending a portion of the workload to be processed by a distributed environment. Embodiments of the present disclosure disclose analyzing historical performance data to help make future decisions.
[0018] The present disclosure will now be described in detail with reference to the accompanying drawings. Figure 1 is a functional block diagram illustrating a workload control environment, generally designated 100 , according to an embodiment of the present disclosure.
[0019] In the depicted embodiment, workload control environment 100 includes computing devices 102 , application workloads 104 , mainframe platforms 110 , distributed computing platforms 112 , data repositories 106 , and networks 108 .
[0020] In one or more embodiments, application workload 104 may be an application or service deployed across different computing platforms or environments (e.g., mainframe platform 110 and / or distributed computing platform 112). The service may be a large-scale service comprising hundreds of microservices working in conjunction with each other, or a modest number of individual services. Application workload 104 may be all the individual capabilities and units of work that make up a discrete application. Application workload 104 may run across different computing platforms or environments (e.g., mainframe platform 110 and / or distributed computing platform 112). Application workload 104 may be evaluated by performance (e.g., how easily mainframe platform 110 and / or distributed computing platform 112 can handle application workload 104), which is typically categorized into response time (the time between a user request and a response to the request from the platform) and throughput (how much work is completed in a period of time). Application workload 104 may be a standalone service or collection of code that can be executed. Application workload 104 may be executed across computing assets (e.g., mainframe platform 110 and / or distributed computing platform 112). Application workload 104 may include the amount of work that needs to be completed by computer resources within a specific time period.
[0021] In one or more embodiments, the mainframe platform 110 may be a mainframe environment that includes one or more mainframe computers (or interchangeably referred to as mainframes) and aspects of the mainframe's operations, integration, and interfaces. A mainframe may be a type of computer generally known for its large size, storage capacity, processing power, and high reliability. Large organizations may use mainframes for mission-critical applications that require extensive data processing. A mainframe may have the ability to run (or host) multiple operating systems. A mainframe can add or hot-swap system capacity without interruption. A mainframe may be designed to handle very high volumes of input and output (I / O) and emphasize throughput computing. A mainframe may be a large server. A mainframe may support thousands of applications and input / output devices to serve thousands of users simultaneously. A mainframe may be the central data repository or hub in an enterprise data processing center, connected to users via less powerful devices such as workstations or terminals. A mainframe may host business databases, transaction servers, and applications that require a greater degree of security and availability than is typically found on smaller machines. A mainframe may be a computer used by large organizations for critical applications, batch data processing such as censuses, industry and consumer statistics, enterprise resource planning, and transaction processing.
[0022] The mainframe platform 110 can provide different benefits based on reliability, cost, performance, and security. In the depicted embodiment, the mainframe platform 110 includes a resident 116. The resident 116 can collect and provide resource and system data of the mainframe platform 110 for access, for example, when requested by the workload control module 114 on the computing device 102. The resource and system data can include performance and capacity data. The resident 116 can monitor and track mainframe resources to report performance and usage statistics back to the workload control module 114, as well as the workloads running on the mainframe platform 110. Optionally, the resident 116 can also communicate with other residents in other logical partitions to consolidate data sent to the workload control module 114.
[0023] In one or more embodiments, the distributed computing platform 112 can be a distributed computing environment, and its components can be located on different networked computers. For the purpose of illustration, the distributed computing platform 112 can be any platform except a mainframe platform. The distributed computing platform 112 may include multiple distributed computers, which can transmit and coordinate actions by passing messages to each other. The distributed computing platform 112 may include multiple components (e.g., directory services, file services, security services) that are integrated to work closely towards the goal of development. These goals may include building customized applications or providing support to other applications. The components in the distributed computing platform 112 can interact with each other to achieve common goals. The distributed computing platform 112 may include an architecture, a standard service set, and an application program built on top of an existing operating system that hides the differences between the various distributed computers. The distributed computing platform 112 can support the development and use of distributed applications in a single distributed system.
[0024] The distributed computing platform 112 can provide various benefits, including, for example, open source solutions, faster deployment times, and a larger knowledge base. The mainframe platform 110 and the distributed computing platform 112 may have different infrastructure support requirements. The mainframe platform 110 may use a centralized computing approach. Many of the infrastructure elements of the mainframe platform 110 may already be included and may be shared internally. The distributed computing platform 112 may rely on a shared infrastructure. Elements of the distributed application on the distributed computing platform 112 may be deployed on separate servers and connected via a network.
[0025] In one or more embodiments, the data repository 106 may include and store data from the mainframe platform 110, the distributed computing platform 112, and the application workload 104. The data repository 106 may include performance and cost data. For example, the performance and cost data may include usage, cost, latency, and throughput data. The performance and cost data may include process priority, processing index, data requirements, connectivity, system affinity, server health, management, and business data. For example, the performance and cost data may include information including usage, number of servers, response time, cost, connectivity, and throughput of the mainframe platform 110 and the distributed computing platform 112. The performance and cost data may be collected from data system management and resource management data of the mainframe platform 110. The workload control module 114 may collect and process data from various data sources to enable decisions to be made about running available applications on a mainframe or distributed system (e.g., the mainframe platform 110 and the distributed computing platform 112) based on the processed relevant information. Some examples of relevant information may include processing cost, latency, throughput, and availability. The performance and cost data may include process priority, processing index (e.g., how much CPU the application workload 104 is expected to consume), data requirements (e.g., database access, file access), connectivity, and system affinity. The performance and cost data may include server health data, such as connectivity, availability, processing speed and capacity, memory, I / O rates, cost, and networking. The workload control module 114 may collect and analyze management and business data (e.g., key performance indices, cost models, and application and system thresholds) to determine where the workload control module 114 operates in various heterogeneous environments where components required to process the application workload 104 are arranged. The workload control module 114 may update historical data associated with the application workload 104 in the data repository 106. The workload control module 114 may process and update the data repository 106 to update the decision-making information data.
[0026] In various embodiments of the present disclosure, the computing device 102 may be a laptop computer, a tablet computer, a netbook computer, a personal computer (PC), a desktop computer, a mobile phone, a smart phone, a smart watch, a wearable computing device, a personal digital assistant (PDA), or a server. In another embodiment, the computing device 102 represents a computing system that utilizes clustered computers and components to act as a single seamless resource pool. In other embodiments, the computing device 102 may represent a server computing system such as one in a cloud computing environment that utilizes multiple computers as a server system. In general, according to embodiments of the present disclosure, the computing device 102 may be any computing device or combination of devices that has access to the workload control module 114 and the network 108 and is capable of processing program instructions and executing the workload control module 114. The computing device 102 may include internal and external hardware components, such as those described with respect to FIG. Figure 9 In the depicted embodiment, computing device 102 is located externally and is accessed via a communication network, such as network 108. However, in other embodiments, computing device 102 may be located on mainframe platform 110, distributed computing platform 112, or any other suitable location accessed via a communication network, such as network 108.
[0027] Further, in the depicted embodiment, the computing device 102 includes a workload control module 114. In the depicted embodiment, the workload control module 114 is located on the computing device 102. However, in other embodiments, the workload control module 114 may be located externally and accessed through a communication network, such as the network 108. The communication network may be, for example, a local area network (LAN), a wide area network (WAN) such as the Internet, or a combination of both, and may include wired, wireless, fiber optic, or any other connection known in the art. In general, the communication network may be any combination of connections and protocols that will support communication between the computing device 102 and the workload control module 114, in accordance with desired embodiments of the present disclosure.
[0028] In one or more embodiments, workload control module 114 is configured to receive a request to allocate application workload 104 to mainframe platform 110 and distributed computing platform 112. In an example, workload control module 114 may receive a request to allocate application workload 104 from a user. In another example, workload control module 114 may automatically receive application workload 104 to be allocated to mainframe platform 110 and distributed computing platform 112. Application workload 104 may include multiple work units to be allocated to run on mainframe platform 110 and distributed computing platform 112, respectively. Each work unit may be a logical piece of application workload 104 that can run on mainframe platform 110 and distributed computing platform 112. Workload control module 114 may check data repository 106 for information related to application workload 104 to be processed. For example, the workload control module 114 may search for data and information associated with the application workload 104, including, for example, the system or network from which the application workload 104 originated, the operating system, required components (e.g., network, I / O, memory, CPU), system affinity, and priority information (e.g., obtained from the application workload 104 itself or from the data repository 106). The workload control module 114 may determine whether any historical data related to the application workload 104 exists in the data repository 106. If the workload control module 114 determines that some historical data related to the application workload 104 exists in the data repository 106, the workload control module 114 may further verify the historical data related to the application workload. If the workload control module 114 determines that no historical data related to the application workload 104 exists in the data repository 106, the workload control module 114 may compare the priority of the application workload 104 with the processing capabilities of eligible platforms (e.g., the mainframe platform 110 and the distributed computing platform 112). The workload control module 114 may perform a cost estimation of the application workload 104 running in each of the eligible platforms (eg, the mainframe platform 110 and the distributed computing platform 112 ).
[0029] In one or more embodiments, the workload control module 114 is configured to collect performance and cost data associated with the mainframe platform 110, the distributed computing platform 112, and the application workload 104. The workload control module 114 can analyze and process the collected performance and cost data. The performance and cost data can come from the data repository 106. The collected data can be further stored and updated in the data repository 106. The performance and cost data can include usage, cost, latency, and throughput data. The performance and cost data can include priority, processing index, data requirements, connectivity, system affinity, server health, management and business data. For example, the performance and cost data can include information including usage, number of servers, response time, cost, connectivity, and throughput of the mainframe platform 110 and the distributed computing platform 112. The performance and cost data can be collected from data system management and resource management data of the mainframe platform 110. The workload control module 114 can collect and process data from various data sources to enable decisions about running available applications on a mainframe or distributed system (e.g., mainframe platform 110 and distributed computing platform 112) based on the processed relevant information. Some examples of relevant information may include processing cost, latency, throughput, availability, and other information. The workload control module 114 can collect user input data and preferences to compare with performance and cost data from the mainframe platform 110 and distributed computing platform 112. The workload control module 114 can collect and analyze data from various sources to collect performance and cost data associated with the application workload 104. The performance and cost data may include process priority, processing index (e.g., how much CPU the application workload 104 is expected to consume), data requirements (e.g., database access, file access), connectivity, and system affinity. The performance and cost data may include server health data, such as connectivity, availability, processing speed and capacity, memory, I / O rate, cost, and networking. The workload control module 114 may collect and analyze management and business data (e.g., key performance indices, cost models, and application and system thresholds) to determine where the workload control module 114 operates in various heterogeneous environments where components required to process the application workload 104 are arranged.
[0030] In one or more embodiments, workload control module 114 is configured to determine mainframe platforms 110 and distributed computing platforms 112 for multiple work units of the application workload based on an analysis of performance and cost data and requirements associated with the application workload 104. Workload control module 114 may prioritize each eligible platform (e.g., mainframe platform 110 and distributed computing platform 112) for the multiple work units of the application workload 104. Workload control module 114 may evaluate the application workload 104. Workload control module 114 may decompose the application workload 104 into logical blocks (e.g., work units). Workload control module 114 may rank the activities of the work units in the application workload 104 based on resource consumption. Workload control module 114 may identify cost savings opportunities based on a cost model by sending portions of the application workload 104 to be processed by a distributed environment (e.g., distributed computing platform 112). Workload control module 114 may analyze the processed data and determine the appropriate platform to execute the work based on the size of the data, date and time, process singularity, and other factors. The workload control module 114 may determine a target environment for routing the application workload 104 based on the prioritized platforms (e.g., the mainframe platform 110 and the distributed computing platform 112). The workload control module 114 may perform a performance and cost assessment by applying the performance and cost requirements of the application workload 104 to determine the target environment. The workload control module 114 may select a mainframe and a distributed computing platform for each of the multiple work units of the application workload 104. The target environment may include the mainframe platform 110 and the distributed computing platform 112, with the multiple work units 104 of the application workload being assigned to the target environment. When the workload control module 114 determines that two or more environments offer the same cost, the workload control module 114 may select the option with the higher performance history for the type of workload associated with the application workload 104. When the workload control module 114 determines that two or more environments offer the same performance characteristics, the workload control module 114 may select the option with the lower cost. The workload control module 114 may select a computing platform based on lower cost, better performance, or any other performance or business indicator. The workload control module 114 can define performance or business indicators, such as a "cost-centric" solution for some types of workloads and a "performance-centric" solution for other workloads. The workload control module 114 can query the processing environment to obtain additional data, such as processing time, I / O counts, and memory usage. The workload control module 114 can process and update the data repository 106 to update the decision information data.
[0031] In one or more embodiments, the workload control module 114 is configured to distribute multiple work units of the application workload 104 to run on the mainframe platform 110 and the distributed computing platform 112, respectively, thereby balancing performance and cost in real time. For example, the workload control module 114 may decompose the multiple work units and, based on a cost model, send some work units to be processed on the distributed computing platform 112 to avoid exceeding the mainframe cost based on consumption. The workload control module 114 may distribute the application workload 104 to a target environment, which may include the mainframe platform 110 and the distributed computing platform 112. The workload control module 114 may distribute each work unit of the application workload 104 to a target environment, such as a corresponding mainframe platform 110 and distributed computing platform 112. The workload control module 114 may update historical data based on the target environment assigned to the application workload 104. The workload control module 114 may distribute the application workload 104 based on changes in input data (e.g., performance, cost) from a user. The workload control module 114 can distribute the application workload 104 with a dynamic hybrid platform program that can run on a different combination of servers each time depending on the time the application workload 104 is running (e.g., determined using collected and processed data). The workload control module 114 can analyze the evaluation history of how to split the application workload 104 between the mainframe platform 110 and the distributed computing platform 112 to continuously learn solutions for balancing performance, reliability, and cost.
[0032] Figure 2 is a flowchart 200 depicting operational steps of the workload control module 114 according to an embodiment of the present disclosure.
[0033] The workload control module 114 operates to receive a request to allocate the application workload 104 to the mainframe platform 110 and the distributed computing platform 112. The workload control module 114 also operates to collect performance and cost data associated with the mainframe platform 110, the distributed computing platform 112, and the application workload 104. The workload control module 114 operates to determine the mainframe platform 110 and the distributed computing platform 112 for a plurality of work units of the application workload 104 based on an analysis of the performance and cost data and requirements associated with the application workload 104. The workload control module 114 operates to allocate the plurality of work units of the application workload 104 to run on the mainframe platform 110 and the distributed computing platform 112, respectively, thereby balancing performance and cost in real time.
[0034] In step 202, workload control module 114 receives a request to allocate an application workload 104 to mainframe platform 110 and distributed computing platform 112. In an example, workload control module 114 may receive the request to allocate application workload 104 from a user. In another example, workload control module 114 may automatically receive the application workload 104 to be allocated to mainframe platform 110 and distributed computing platform 112. Application workload 104 may include multiple work units to be allocated to run on mainframe platform 110 and distributed computing platform 112, respectively. Each work unit may be a logical piece of application workload 104 that can run on mainframe platform 110 and distributed computing platform 112. Workload control module 114 may check data repository 106 for information related to application workload 104 to be processed. For example, the workload control module 114 may search for data and information associated with the application workload 104, including, for example, the system or network from which the application workload 104 originated, the operating system, required components (e.g., network, I / O, memory, CPU), system affinity, and priority information (e.g., obtained from the application workload 104 itself or from the data repository 106). The workload control module 114 may determine whether any historical data related to the application workload 104 exists in the data repository 106. If the workload control module 114 determines that some historical data related to the application workload 104 exists in the data repository 106, the workload control module 114 may further verify the historical data related to the application workload. If the workload control module 114 determines that no historical data related to the application workload 104 exists in the data repository 106, the workload control module 114 may compare the priority of the application workload 104 with the processing capabilities of eligible platforms (e.g., the mainframe platform 110 and the distributed computing platform 112). The workload control module 114 may perform a cost estimation of the application workload 104 running in each of the eligible platforms (eg, the mainframe platform 110 and the distributed computing platform 112 ).
[0035] In step 204, the workload control module 114 collects performance and cost data associated with the mainframe platform 110, the distributed computing platform 112, and the application workload 104. The workload control module 114 can analyze and process the collected performance and cost data. The performance and cost data can come from the data repository 106. The collected data can be further stored and updated in the data repository 106. The performance and cost data can include usage, cost, latency, and throughput data. The performance and cost data can include priority, processing index, data requirements, connectivity, system affinity, server health, management and business data. For example, the performance and cost data can include information including usage, number of servers, response time, cost, connectivity, and throughput of the mainframe platform 110 and the distributed computing platform 112. The performance and cost data can be collected from data system management and resource management data of the mainframe platform 110. The workload control module 114 can collect and process data from various data sources to enable decisions about running available applications on a mainframe or distributed system (e.g., mainframe platform 110 and distributed computing platform 112) based on the processed relevant information. Some examples of relevant information may include processing cost, latency, throughput, availability, and other information. The workload control module 114 can collect user input data and preferences to compare with performance and cost data from the mainframe platform 110 and distributed computing platform 112. The workload control module 114 can collect and analyze data from various sources to collect performance and cost data associated with the application workload 104. The performance and cost data may include process priority, processing index (e.g., how much CPU the application workload 104 is expected to consume), data requirements (e.g., database access, file access), connectivity, and system affinity. The performance and cost data may include server health data, such as connectivity, availability, processing speed and capacity, memory, I / O rate, cost, and networking. The workload control module 114 may collect and analyze management and business data (e.g., key performance indices, cost models, and application and system thresholds) to determine where the workload control module 114 operates in various heterogeneous environments where components required to process the application workload 104 are arranged.
[0036] In step 206, workload control module 114 determines mainframe platforms 110 and distributed computing platforms 112 for multiple work units of application workload 104 based on an analysis of performance and cost data and requirements associated with application workload 104. Workload control module 114 may prioritize each eligible platform (e.g., mainframe platform 110 and distributed computing platform 112) for the multiple work units of application workload 104. Workload control module 114 may evaluate application workload 104. Workload control module 114 may decompose application workload 104 into logical blocks (e.g., work units). Workload control module 114 may rank the activities of the work units in application workload 104 based on resource consumption. Workload control module 114 may identify cost savings opportunities based on the cost model by sending portions of application workload 104 to be processed by a distributed environment (e.g., distributed computing platform 112). The workload control module 114 may analyze the processed data and determine an appropriate platform to execute the work based on the size of the data, date and time, process singularity, and other factors. The workload control module 114 may determine a target environment to route the application workload 104 based on the prioritized platforms (e.g., the mainframe platform 110 and the distributed computing platform 112). The workload control module 114 may perform a performance and cost assessment based on the performance and cost requirements of the application workload 104 to determine the target environment. The workload control module 114 may select a mainframe and a distributed computing platform for each of the multiple work units of the application workload 104. The target environment may include the mainframe platform 110 and the distributed computing platform 112, with the multiple work units 104 of the application workload being assigned to the target environment. When the workload control module 114 determines that two or more environments offer the same cost, the workload control module 114 may select the option with the higher performance history for the type of workload associated with the application workload 104. When the workload control module 114 determines that two or more environments offer the same performance characteristics, the workload control module 114 may select the option with the lower cost. The workload control module 114 may select a computing platform based on lower cost, better performance, or any other performance or business indicator. The workload control module 114 may define performance or business indicators, such as a "cost-centric" solution for some types of workloads and a "performance-centric" solution for other workloads. The workload control module 114 may query the processing environment to obtain additional data, such as processing time, I / O counts, and memory usage. The workload control module 114 may process and update the data repository 106 to update the decision information data.
[0037] In step 208, workload control module 114 distributes multiple work units of application workload 104 to run on mainframe platform 110 and distributed computing platform 112, respectively, to balance performance and cost in real time. For example, workload control module 114 may decompose multiple work units and, based on a cost model, send some work units to be processed on distributed computing platform 112 to avoid exceeding mainframe-based consumption costs. Workload control module 114 may distribute application workload 104 to target environments, which may include mainframe platform 110 and distributed computing platform 112. Workload control module 114 may distribute each work unit of application workload 104 to a target environment, such as a corresponding mainframe platform 110 and distributed computing platform 112. Workload control module 114 may update historical data based on the target environments assigned to application workload 104. Workload control module 114 may distribute application workload 104 based on changes in input data (e.g., performance, cost) from a user. The workload control module 114 can distribute the application workload 104 with a dynamic hybrid platform program that can run on a different combination of servers each time depending on the time the application workload 104 is running (e.g., determined using collected and processed data). Distributing the application workload 104 can analyze the evaluation history of how to split the application workload 104 between the mainframe platform 110 and the distributed computing platform 112 to continuously learn solutions for balancing performance, reliability, and cost.
[0038] Figure 3 is an example environment for the application workload control module 114 according to an embodiment of the present disclosure.
[0039] exist Figure 3 In the example of FIG. 1 , a user or organization needs to determine where to run an application workload 104 between a mainframe platform 110 and a distributed computing platform 112. Factors that may be considered include reliability 302, cost 304, complexity 306, open source 308, and other suitable considerations. For example, a user may need to decide whether the entire application workload 104 will go to the mainframe platform 110 or the distributed computing platform 112. In another example, a user may need to decide whether a portion of the application workload 104 can run on the mainframe platform 110 and another portion of the application workload 104 can run on the distributed computing platform 112. The workload control module 114 is configured to support real-time decisions on whether a portion of the application workload 104 can run on the mainframe platform 110 and / or whether another portion of the application workload 104 can run on the distributed computing platform 112 based on the cost model used, performance metrics, availability, etc.
[0040] Figure 4 is an exemplary functional diagram of the workload control module 114 according to an embodiment of the present disclosure.
[0041] exist Figure 4 In the example of FIG, workload control module 114 can collect and analyze various source data when determining and distributing application workload 104 to run between mainframe platform 110 and distributed computing platform 112. The source data can be from or related to, for example, distributed resources 402, system performance 404, data analytics 406, cost data 408, cost models 410, historical usage 412, and mainframe resources 414.
[0042] Figure 5 is an exemplary architectural diagram illustrating the operating steps of the workload control module 114 according to an embodiment of the present disclosure.
[0043] exist Figure 5 In the example of FIG, a user 502 may request that an application workload 104 be distributed between a mainframe platform 110 and a distributed computing platform 112. The workload control module 114 may act as a front-line mechanism to provide decision information to the environment that will receive the application workload 104. The application workload 104 may be further controlled and balanced by a load balancer 504. The load balancer 504 may distribute a set of tasks across a set of resources (e.g., computing units) with the goal of making overall processing more efficient. The load balancer 504 may optimize the response time of each task, thereby avoiding uneven overloading of computing nodes while other computing nodes remain idle. The workload control module 114 may send the application workload 104 to the mainframe platform 110 via a distributor 506. The distributor 506 may extend the concepts of dynamic virtual IP addresses (VIPA) and automatic VIPA takeover to allow load distribution between target servers. The distributor 506 may optimally distribute incoming connection requests among a set of available servers. To determine suitability for the application workload 104, the workload control module 114 may receive information from each environment (e.g., a multi-cloud management platform) that maintains data about the various clouds under its management, including the number of servers, response time, cost, connectivity, and capacity.
[0044] When the workload control module 114 receives a new workload (e.g., application workload 104), the workload control module 114 may check the data repository 106 for information related to the work to be processed. This information may include the system or network where the application workload originates, the operating system, required components (network, I / O, memory, CPU), system affinity, and priority. After determining the resource and priority requirements of the application workload 104, the workload control module 114 may pull performance / business / cost / criticality data from the data repository 106 to determine the suitability of the work to be processed. The workload control module 114 may request a new query for eligible environments to refresh the performance and resource data in the data repository 106. When the workload control module 114 obtains the required data from the environment or data repository 106, the workload control module 114 may apply business logic to determine the environment to which the application workload 104 will be routed. The workload control module 114 may use the information provided by the user 502 to select suitability based on performance and cost assessments. If two or more environments offer the same cost, workload control module 114 may select the option with a better performance history for that type of workload. If two or more environments offer similar performance characteristics, workload control module 114 will select the option with the lower cost. For example, consider two example requesters for the same service, one from a critical branch and the other from a non-critical branch. When workload control module 114 receives a request, it examines the source and verifies whether the request is from a critical or non-critical user, the cost associated with the process, platform availability, and execution time. If the requester is from a critical profile, workload control module 114 prioritizes platform availability and execution time compared to cost history data. Based on this, workload control module 114 will determine if conditions are favorable and execute the request on mainframe platform 110. If the requester is from a non-critical profile, workload control module 114 prioritizes platform availability and cost compared to cost history data. Based on this, workload control module 114 will determine if conditions are favorable and execute the request on distributed computing platform 112. Decisions about selecting a system with lower cost, better performance, or any other performance or business indicator can be defined by the workload control module 114, which is capable of defining "cost-centric" solutions for some types of workloads and "performance-centric" solutions for other workloads.
[0045] Once the selection has been made, the workload control module 114 can direct the application workload 104 to the load balancer 504. The workload control module 114 can save the selection for future reference and learning. When the application workload 104 is processed and the results are returned to the workload control module 114, the workload control module 114 can record performance statistics (e.g., elapsed time, output size) and pass the packet back to the user 502 (e.g., requester). The workload control module 114 can query the processing environment for additional data (e.g., processing time, I / O counts, memory usage). The workload control module 114 can process the results of the query and update the data repository 106 to update the decision information data.
[0046] Figure 6 is an exemplary functional diagram depicting operational steps of the workload control module 114 according to an embodiment of the present disclosure.
[0047] exist Figure 6 In the example, the workload control module can connect to one or more systems that share resources (e.g., operating system 602, time sharing options 604, and job entry subsystem 608) and data repository 106. The workload control module 114 can extract the required performance and capacity indicators. The workload control module 114 can use a resident 116 running on the operating system 602, which is responsible for collecting system management facility and resource management facility data, processing the required information upon request, and sending the required information to the workload control module 114. The resident 116 can monitor and track mainframe resources to report performance and usage statistics, as well as the workloads running in the environment, back to the workload control module 114. The resident 116 can coordinate the workflow of each job 606 processing. The resident 116 can include a configuration file that is configured by the system administrator or support analyst to store each resident scope. When more than one resident is started on the system, one of the residents must be the focal resident, which will receive the job 606 and delegate the execution of step fragmentation and run orchestration to the other residents. Optionally, the resident 116 may also communicate with other residents in other logical partitions to consolidate data sent to the workload control module 114. Figure 7 Details on how a resident communicates with other residents are shown in FIG.
[0048] To maintain transparency across batch processing and the same architecture serving online requests, an exit 614 can be placed on each mainframe system (e.g., mainframe platform 110). The exit 614 can intercept each job 606 triggered to run on the job entry subsystem 608 and analyze whether the job 606 (e.g., a unit of work from the application workload 104) is likely to run on multiple platforms 622 (e.g., mainframe platform 110 and distributed computing platform 112) using tables hosted by the resident 116 and managed by the system administrator. If conditions are met, the exit 614 can move the process to the resident 116. The resident 116 can break the job 606 into steps and, depending on the relationship between the steps, send each job to the workload control module 114 sequentially or non-sequentially.
[0049] The workload control module 114 may include an analysis engine 618 and a deep analysis and scoring module 620. The analysis engine 618 and the deep analysis and scoring module 620 may obtain information from desired sources and may use a common algorithm to score activities based on resource consumption, contract cost information, and resource availability on both sides. The analysis engine 618 may also obtain input from historical evaluations for ranking by success or failure to improve actual evaluations.
[0050] In the example of a batch process running on multiple platforms 622, workload control module 114 can split and process application workload 104 across two types of platforms (e.g., mainframe platform 110 and distributed computing platform 112). For example, workload control module 114 can start a batch process on mainframe platform 110 and perform critical processing that must be completed by a specific target time, then run less critical steps, such as inspections and report building, on distributed computing platform 112. Job 606 can start normally and be placed on job entry subsystem 608. Once on job entry subsystem 608, after a conversion 612 phase, exit 614 can query an eligibility list (managed by resident 116) to determine whether job 606 can be sliced for this type of processing. If resident 116 verifies eligibility, workload control module 114 can use resident 116 to act 616 (e.g., slice and orchestrate) the batch process. After the entire process is complete, a response is sent to the user.
[0051] Figure 7 is an exemplary functional diagram depicting operational steps of the workload control module 114 and the resident 116 according to an embodiment of the present disclosure.
[0052] exist Figure 7In the example of FIG, a resident 116 (e.g., 116a) can delegate step sharding and run orchestration to other residents (e.g., residents 116b, 116c, 116n). For example, the resident 116a can communicate with other residents (e.g., residents 116b, 116c, 116n in other logical partitions) to consolidate data sent to the workload control module 114.
[0053] Figure 8 is an exemplary functional diagram depicting operational steps of the workload control module 114 according to an embodiment of the present disclosure.
[0054] In block 802, the workload control module 114 receives a request to process a group of application workloads 104. A group may be a unit of work of the application workload 104 that is distributed to the mainframe platform 110 and the distributed computing platform 112. The application workload 104 may include multiple units of work to be distributed to run on the mainframe platform 110 and the distributed computing platform 112, respectively. Each unit of work may be a logical piece of the application workload 104 that can run on both the mainframe platform 110 and the distributed computing platform 112.
[0055] In block 804, workload control module 114 determines whether any recent data associated with the grouping of application workload 104 exists in data repository 106. If workload control module 114 determines that some historical data associated with the grouping exists in data repository 106, then in block 810, workload control module 114 further verifies the historical data associated with the grouping. If workload control module 114 determines that no historical data associated with the grouping exists in data repository 106, then in block 806, workload control module 114 compares the priority of the grouping with the processing capabilities of eligible platforms (e.g., mainframe platform 110 and distributed computing platform 112). In block 808, workload control module 114 performs a cost estimation for the application workload 104 running on each eligible platform (e.g., mainframe platform 110 and distributed computing platform 112). In block 812, the workload control module 114 determines a priority for each eligible platform (e.g., the mainframe platform 110 and the distributed computing platform 112) for the plurality of work units of the application workload 104 based on the returned data. The workload control module 114 may rank the activities of the work units in the application workload 104 based on resource consumption.
[0056] In block 814, the workload control module 114 determines whether the selected platform (e.g., mainframe platform 110 and distributed computing platform 112) meets the performance and cost requirements of the application workload 104. If the workload control module 114 determines that the selected platform does not meet the performance and cost requirements of the application workload 104, then in block 816, the workload control module 114 selects the next platform in the preference list. If the workload control module 114 determines that the selected platform meets the performance and cost requirements of the application workload 104, then in block 818, the workload control module 114 assigns the packet to the target platform (e.g., mainframe platform 110 and distributed computing platform 112). In block 820, the workload control module 114 monitors for packet completion. In block 822, the workload control module 114 determines whether the packet has been processed. If the workload control module 114 determines that the packet has not been processed, then the workload control module 114 continues to monitor for packet completion. If the workload control module 114 determines that the packet has been processed, then the workload control module 114 may return the packet to the user in block 824. In block 826, the workload control module 114 collects runtime statistics and update history data.
[0057] Figure 9 A block diagram 900 of components of a computing device 102 is depicted according to an illustrative embodiment of the present disclosure. It should be understood that Figure 9 This merely provides an illustration of one implementation and does not imply any limitations with regard to the environments in which different embodiments may be implemented. Many modifications to the depicted environments are possible.
[0058] The computing device 102 may include a communications fabric 902 that provides communications between a cache 916, memory 906, persistent storage 908, a communications unit 910, and input / output (I / O) interface(s) 912. The communications fabric 902 may be implemented using any architecture designed to pass data and / or control information between processors (such as microprocessors, communications and network processors, etc.), system memory, peripheral devices, and any other hardware components within the system. For example, the communications fabric 902 may be implemented using one or more buses or crossbar switches.
[0059] Memory 906 and permanent storage 908 are computer-readable storage media. In this embodiment, memory 906 includes random access memory (RAM). In general, memory 906 may include any suitable volatile or non-volatile computer-readable storage media. Cache 916 is a fast memory that enhances the performance of computer processor(s) 904 by storing recently accessed data from memory 906 as well as data that is likely to be accessed soon.
[0060] The workload control module 114 may be stored in persistent storage 908 and memory 906 for execution by one or more of the corresponding computer processors 904 via cache 916. In an embodiment, the persistent storage 908 includes a magnetic hard drive. Alternatively, or in addition to a magnetic hard drive, the persistent storage 908 may include a solid-state hard drive, a semiconductor memory device, a read-only memory (ROM), an erasable programmable read-only memory (EPROM), flash memory, or any other computer-readable storage medium capable of storing program instructions or digital information.
[0061] The media used by persistent storage 908 may also be removable. For example, a removable hard drive may be used for persistent storage 908. Other examples include optical and magnetic disks, thumb drives, and smart cards, which are inserted into a drive for transfer to another computer-readable storage medium that is also part of permanent storage 908.
[0062] In these examples, communication unit 910 provides for communication with other data processing systems or devices. In these examples, communication unit 910 includes one or more network interface cards. Communication unit 910 can provide communication using one or both of physical and wireless communication links. Workload control module 114 can be downloaded to persistent storage 908 via communication unit 910.
[0063] The I / O interface(s) 912 allow for input and output of data with other devices that may be connected to the computing device 102. For example, the I / O interface(s) 912 may provide a connection to an external device 918, such as a keyboard, a keypad, a touch screen, and / or some other suitable input device. The external device 918 may also include a portable computer-readable storage medium, such as, for example, a thumb drive, a portable optical or magnetic disk, and a memory card. Software and data for implementing embodiments of the present invention (e.g., the workload control module 114) may be stored on such portable computer-readable storage medium and may be loaded onto the persistent storage device 908 via the I / O interface(s) 912. The I / O interface(s) 912 are also connected to a display 920.
[0064] Display 920 provides a mechanism for displaying data to a user and may be, for example, a computer monitor.
[0065] The programs described herein are identified based on the application in which they are implemented in a specific embodiment of the invention. However, it should be understood that any specific program nomenclature herein is used for convenience only, and thus the present invention should not be limited to use only in any specific application identified and / or implied by such nomenclature.
[0066] The present invention may be a system, method and / or computer program product at any possible level of technical detail of integration. The computer program product may include a computer-readable storage medium (or media) having computer-readable program instructions thereon, the computer-readable program instructions being used to cause a processor to perform aspects of the present invention.
[0067] A computer-readable storage medium can be a tangible device that can retain and store instructions for use by an instruction execution device. A computer-readable storage medium can be, for example, but not limited to, an electronic storage device, a magnetic storage device, an optical storage device, an electromagnetic storage device, a semiconductor storage device, or any suitable combination of the foregoing. A non-exhaustive list of more specific examples of computer-readable storage media includes the following: a portable computer disk, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or flash memory), a static random access memory (SRAM), a portable compact disc read-only memory (CD-ROM), a digital versatile disc (DVD), a memory stick, a floppy disk, a mechanical encoding device (such as a punch card) or a raised structure in a groove with instructions recorded thereon, and any suitable combination of the foregoing. As used herein, a computer-readable storage medium should not be interpreted as a transient signal itself, such as a radio wave or other freely propagating electromagnetic wave, an electromagnetic wave propagated through a waveguide or other transmission medium (e.g., a light pulse through a fiber optic cable), or an electrical signal transmitted by a wire.
[0068] The computer-readable program instructions described herein can be downloaded from a computer-readable storage medium to a corresponding computing / processing device, or downloaded to an external computer or external storage device via a network (e.g., the Internet, a local area network, a wide area network, and / or a wireless network). The network can include copper transmission cables, optical transmission fibers, wireless transmissions, routers, firewalls, switches, gateway computers, and / or edge servers. The network adapter card or network interface in each computing / processing device receives the computer-readable program instructions from the network and forwards the computer-readable program instructions to be stored in a computer-readable storage medium within the corresponding computing / processing device.
[0069] The computer-readable program instructions for performing the operation of the present invention can be assembly instructions, instruction set architecture (ISA) instructions, machine instructions, machine-related instructions, microcode, firmware instructions, state setting data, the configuration data of the integrated circuit, or source code or object code written in any combination of one or more programming languages, including object-oriented programming languages such as Python, C++, and procedural programming languages, such as "C" programming language or similar programming languages. The computer-readable program instructions can be executed entirely on the user's computer, partially on the user's computer, executed as an independent software package, partially on the user's computer and partially on a remote computer, or executed entirely on a remote computer or server. In the latter case, the remote computer can be connected to the user's computer through any type of network (including a local area network (LAN) or a wide area network (WAN)), or can be connected to an external computer (for example, by using the Internet of an Internet service provider). In some embodiments, an electronic circuit (including, for example, a programmable logic circuit, a field programmable gate array (FPGA) or a programmable logic array (PLA)) can execute the computer-readable program instructions to personalize the electronic circuit by utilizing the state information of the computer-readable program instructions, so as to perform aspects of the present invention.
[0070] Aspects of the present invention are described herein with reference to flowchart illustrations and / or block diagrams of methods, apparatus (systems), and computer program products according to embodiments of the present invention. It should be understood that 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.
[0071] These computer-readable program instructions can be provided to a processor of a computer or other programmable data processing apparatus to produce a machine, such that the instructions executed via the processor of the computer or other programmable data processing apparatus create components for implementing the functions / actions specified in one or more blocks of the flowchart and / or block diagram. These computer-readable program instructions can also be stored in a computer-readable storage medium that can instruct a computer, a programmable data processing apparatus, and / or other device to function in a specific manner, such that the computer-readable storage medium having the instructions stored therein comprises an article of manufacture that includes instructions for implementing various aspects of the functions / actions specified in one or more blocks of the flowchart and / or block diagram.
[0072] The computer-readable program instructions may also be loaded onto a computer, other programmable data processing apparatus, or other device that causes a series of operating steps to be performed on the computer, other programmable apparatus or other device to produce a computer-implemented process, so that the instructions executed on the computer, other programmable apparatus or other device implement the functions / actions specified in one or more boxes in the flowchart and / or block diagram.
[0073] The flow charts and block diagrams in the accompanying drawings illustrate the possible architecture, functions and operations of the systems, methods and computer program products according to different embodiments of the present invention. To this end, each box in the flow chart or block diagram can represent a part of a module, segment or instruction, which includes one or more executable instructions for realizing (a plurality of) specified logical functions. In some alternative embodiments, the functions marked in the box may not occur in the order marked in the figure. For example, depending on the functions involved, the two boxes shown in succession can actually be completed as a step, performed simultaneously, substantially simultaneously, in a manner overlapping in part or all of time, or these boxes can sometimes be performed in the opposite order. It will also be noted that each box in the block diagram and / or flow chart, and the combination of the boxes in the block diagram and / or flow chart can be implemented by a system based on special-purpose hardware, and the system based on special-purpose hardware performs a specified function or action or performs a combination of special-purpose hardware and computer instructions.
[0074] The description of various embodiments of the present invention has been presented for illustrative purposes and is not intended to be exhaustive or limited to the disclosed embodiments. Many modifications and variations will be apparent to those skilled in the art without departing from the scope and spirit of the invention. The terminology used herein is selected to best explain the principles of the embodiments, practical applications, or technical improvements over technologies found in the marketplace, or to enable those skilled in the art to understand the embodiments disclosed herein.
[0075] It should be understood that although the present disclosure includes detailed descriptions about cloud computing, the implementation of the teachings described herein is not limited to cloud computing environments. Instead, embodiments of the present invention can be implemented in conjunction with any other type of computing environment now known or later developed.
[0076] 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 quickly provisioned and released with minimal management effort or interaction with the service provider. The cloud model can include at least five characteristics, at least three service models, and at least four deployment models.
[0077] Features are as follows:
[0078] On-demand self-service: Cloud consumers can automatically and unilaterally provision computing capacity, such as server time and network storage, on demand without requiring human interaction with the provider of the service.
[0079] Broad Network Access: Capabilities are available over the network and accessed through standard mechanisms that facilitate use by heterogeneous thin or thick client platforms (e.g., mobile phones, laptops, and PDAs).
[0080] Resource pooling: A provider's computing resources are pooled to serve multiple consumers using a multi-tenant model, where different physical and virtual resources are dynamically assigned and reassigned as needed. Location independence is important because consumers typically have no control or knowledge of the exact location of the provided resources, but may be able to specify the location at a higher level of abstraction (e.g., country, state, or data center).
[0081] Rapid elasticity: Capacity can be quickly and elastically provisioned (in some cases, automatically) to quickly scale down and quickly released to quickly scale up. To the consumer, the capacity available for provisioning generally appears unlimited and can be purchased at any time and in any quantity.
[0082] Measured services: Cloud systems automatically control and optimize resource usage by leveraging metering capabilities at some level of abstraction appropriate to the type of service (e.g., storage, processing, bandwidth, and active user accounts). Resource usage can be monitored, controlled, and reported, providing transparency to both the provider and consumer of the utilized service.
[0083] The service model is as follows:
[0084] Software as a Service (SaaS): The ability provided to consumers is to use the provider's applications running on a cloud infrastructure. Applications are accessible from various client devices through a thin client interface such as a web browser (e.g., web-based email). Consumers do not manage or control the underlying cloud infrastructure, including networks, servers, operating systems, storage, or even individual application capabilities, with the possible exception of limited user-specific application configuration settings.
[0085] Platform as a Service (PaaS): The capability provided to consumers is to deploy consumer-created or acquired applications on cloud infrastructure, using programming languages and tools supported by the provider. Consumers do not manage or control the underlying cloud infrastructure, including networks, servers, operating systems, or storage, but do have control over the deployed applications and possibly the configuration of the application hosting environment.
[0086] Infrastructure as a Service (IaaS): The capabilities provided to consumers are processing, storage, networking, and other basic computing resources on which they can deploy and run arbitrary software, including operating systems and applications. Consumers do not manage or control the underlying cloud infrastructure, but rather have control over the operating system, storage, deployed applications, and possibly limited control over selected networking components (e.g., host firewalls).
[0087] The deployment model is as follows:
[0088] Private cloud: Cloud infrastructure used solely for organizational operations. It can be managed by the organization or a third party and can exist on-premises or off-premises.
[0089] Community Cloud: A cloud infrastructure is shared by several organizations and supports a specific community with shared concerns (e.g., mission, security requirements, policies, and compliance considerations). It can be managed by the organization or a third party and can exist on-premises or off-premises.
[0090] Public cloud: Cloud infrastructure is made available to the public or a large industry group and is owned by an organization that sells cloud services.
[0091] Hybrid cloud: A cloud infrastructure is a composition of two or more clouds (private, community, or public) that remain unique entities but are bound together by standardized or proprietary technologies that enable data and application portability (e.g., cloud bursting for load balancing between clouds).
[0092] The cloud computing environment is service-oriented and focuses on state, low coupling, modularity, and semantic interoperability. The core of cloud computing is the infrastructure consisting of a network of interconnected nodes.
[0093] Now see Figure 10 , depicts an illustrative cloud computing environment 50. As shown, the cloud computing environment 50 includes one or more cloud computing nodes 10, and local computing devices used by cloud consumers (such as personal digital assistants (PDAs) or mobile phones 54A, desktop computers 54B, laptop computers 54C and / or automobile computer systems 54N) can communicate with the cloud computing nodes 10. The nodes 10 can communicate with each other. They can be physically or virtually grouped (not shown) in one or more networks, such as the private clouds, community clouds, public clouds, or hybrid clouds described above, or a combination thereof. This allows the cloud computing environment 50 to provide infrastructure, platforms, and / or software as services without the cloud consumer needing to maintain resources on local computing devices. It should be understood that Figure 10 The types of computing devices 54A-N shown are intended to be illustrative only, and computing node 10 and cloud computing environment 50 may communicate with any type of computerized device over any type of network and / or network-addressable connection (eg, using a web browser).
[0094] Now see Figure 11 , showing the cloud computing environment 50 ( Figure 10 ) provides a set of functional abstraction layers. It should be understood in advance that Figure 11 The components, layers, and functions shown in are intended to be illustrative only, and embodiments of the present invention are not limited thereto. As depicted, the following layers and corresponding functions are provided:
[0095] The hardware and software layer 60 includes hardware and software components. Examples of hardware components include: mainframes 61; servers based on RISC (Reduced Instruction Set Computer) architecture 62; servers 63; blade servers 64; storage devices 65; and network and networking components 66. In some embodiments, software components include web application server software 67 and database software 68.
[0096] Virtualization layer 70 provides an abstraction layer from which the following examples of virtual entities can be provided: virtual servers 71 ; virtual storage 72 ; virtual networks 73 , including virtual private networks; virtual applications and operating systems 74 ; and virtual clients 75 .
[0097] In one example, the management layer 80 may provide the functionality described below. Resource provisioning 81 provides dynamic acquisition of computing resources and other resources for performing tasks within the cloud computing environment. Metering and pricing 82 provides cost tracking when resources are utilized within the cloud computing environment and bills or invoices for the consumption of these resources. In one example, these resources may include application software licenses. Security provides authentication for cloud consumers and tasks, as well as protection of data and other resources. User portal 83 provides access to the cloud computing environment for consumers and system administrators. Service level management 84 provides cloud computing resource allocation and management so that required service levels are met. Service level agreement (SLA) planning and fulfillment 85 provides pre-arrangement and procurement of cloud computing resources in anticipation of future requirements for the cloud computing resources according to the SLA.
[0098] The workload layer 90 provides examples of functionality that can utilize 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 education delivery 93; data analytics processing 94; transaction processing 95; and modules 96, including, for example, workload control module 114 as described above with respect to workload control environment 100.
[0099] Although specific embodiments of the present invention have been described, those skilled in the art will appreciate that there are other embodiments that are equivalent to the described embodiments. Therefore, it should be understood that the present invention is not limited to the specific embodiments described, but only by the scope of the appended claims.
Claims
1. A computer-implemented method executed by one or more processors, comprising: receiving a request to allocate an application workload to at least one target environment comprising at least one mainframe platform and at least one distributed computing platform, the application workload comprising a discrete application or service, the application workload comprising a plurality of work units; evaluating the application workload and dividing the application workload into the plurality of work units; ranking activities of the plurality of work units, the ranking comprising scoring the activities based on at least one of required resource consumption of the activities of the plurality of work units and cost information for use of the at least one target environment; collecting data associated with the at least one target environment, wherein the data includes performance and cost data related to at least one of server availability, server processing speed, and server capacity for each of a plurality of servers in the at least one target environment; selecting a target environment from the at least one target environment based on the ranking, the analysis of the performance and cost data, and a cost model, the selected target environment comprising at least one mainframe platform and at least one distributed computing platform, the cost model identifying a cost saving opportunity based on sending at least one of the work units to the at least one distributed computing platform instead of the at least one mainframe platform; allocating the plurality of work units of the application workload for execution on the selected target environment based in part on the cost model, wherein the allocating balances performance and cost of executing the plurality of work units of the application workload on the selected target environment while optimizing a time required for the selected target environment to respond to the received request; After allocating the plurality of work units, automatically initiating execution of the application workload on the selected target environment, wherein the selected target environment executes the application workload; receiving a result of the execution from the selected target environment; and The received results are utilized for subsequent execution of one or more application workloads on the at least one target environment.
2. The computer-implemented method of claim 1 , further comprising: determining that historical data related to the application workload exists in a repository, wherein the historical data includes data of at least one historical processing performance of executing the application workload on the at least one target environment; verifying the historical data; as well as A priority is determined for the at least one target environment for the plurality of work units of the application workload based on the historical data.
3. The computer-implemented method of claim 1 , further comprising: determining that historical data associated with the application workload does not exist in a repository; performing a cost estimation of allocating the plurality of work units of the application workload to the at least one target environment; as well as The at least one target environment is prioritized for the plurality of work units of the application workload based on the cost estimate.
4. The computer-implemented method of claim 1 , wherein: The performance and cost data includes data selected from the group consisting of: usage, cost, latency, and throughput data associated with the at least one target environment.
5. The computer-implemented method of claim 1 , wherein selecting the at least one target environment for the plurality of work units of the application workload comprises: In response to determining that two or more platforms within the selected target environment provide the same cost, selecting the platform having a higher performance history for a type of workload associated with the application workload; as well as In response to determining that two or more platforms within the selected target environment provide identical performance characteristics, the platform with the lower cost is selected. 6 . The computer-implemented method of claim 1 , further comprising dynamically updating historical data associated with the application workload to include the received execution results.
7. A computer program product comprising: One or more computer-readable storage media, and program instructions collectively stored on the one or more computer-readable storage media, the program instructions being executable by a processor to cause the processor to perform the method according to any one of claims 1 to 6.
8. A computer system comprising: One or more computer processors, one or more computer-readable storage media, and program instructions stored on the one or more computer-readable storage media for execution by at least one of the one or more computer processors, wherein the computer system is capable of performing the method according to any one of claims 1 to 6.
Citation Information
Patent Citations
High-throughput computing in a hybrid computing environment
CN103069389A
Allocating resources to virtual machines via a weighted cost ratio
US20130263117A1
Systems and methods for performance indexing
US9495222B1
Computer system, method, and program
WO2010137455A1