US20120331114A1 - Application placement among a set of consolidation servers utilizing license cost and application workload profiles as factors - Google Patents

Application placement among a set of consolidation servers utilizing license cost and application workload profiles as factors Download PDF

Info

Publication number
US20120331114A1
US20120331114A1 US13/410,941 US201213410941A US2012331114A1 US 20120331114 A1 US20120331114 A1 US 20120331114A1 US 201213410941 A US201213410941 A US 201213410941A US 2012331114 A1 US2012331114 A1 US 2012331114A1
Authority
US
United States
Prior art keywords
configuration
costs
applications
servers
cost
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Abandoned
Application number
US13/410,941
Inventor
Ankit GARG
Tapan K. Nayak
Aritra Sen
Akshat Verma
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Priority to US13/410,941 priority Critical patent/US20120331114A1/en
Assigned to INTERNATIONAL BUSINESS MACHINES CORPORATION reassignment INTERNATIONAL BUSINESS MACHINES CORPORATION ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: GARG, ANKIT, NAYAK, TAPAN KUMAR, SEN, ARITRA, VERMA, AKSHAT
Publication of US20120331114A1 publication Critical patent/US20120331114A1/en
Abandoned legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management

Definitions

  • the present invention relates to server consolidations.
  • Server consolidation is an approach to the efficient usage of computer server resources in order to reduce the total number of servers or server locations that an organization requires.
  • servers are consolidated physical servers with low utilization loads are often virtualized and consolidated as virtual machines running on a set of physical servers.
  • consolidation can substantially increase the efficient use of server resources, it may also result in complex configurations of data, applications, and servers that can be confusing.
  • Analysis tools/applications exist that help Information Technology (IT) administrators plan and efficiently implement a consolidation of an IT environment.
  • Many consolidation choices are tradeoffs, where choices that optimize a consolidation effort for one set of factors have a negative impact on a different set of factors.
  • An embodiment for efficiently consolidating servers can store information in at least one storage medium that details a set of applications running on a set of servers.
  • the one or more storage medium(s) can store licensing data for the applications that includes licensing costs.
  • the storage medium(s) can also store workload requirements for the applications running on the servers.
  • the storage medium(s) can record specifics of computing resources provided by each of the servers.
  • the workload requirements of the applications can be mapped to computing resources of the servers.
  • Dependencies can be determined for the applications running on the servers.
  • the licensing costs for the applications can consider costs consistent with the dependencies.
  • the application workload can include workload requirements for software executing on the servers that are consistent with the dependencies.
  • a first configuration and a second configuration of the applications executing on the servers can be determined.
  • the first configuration and the second configuration can assure the applications are placed within specific ones of the servers, such that the computing resources of the servers upon which the applications are placed satisfies application workload requirements of the applications given resources provide by the corresponding server that runs the applications.
  • Different applications can be placed on different ones of the servers in the first configuration and in the second configuration.
  • Licensing costs can be calculated for the first configuration and for the second configuration.
  • Operational costs for running the applications and servers can be calculated in accordance with the first configuration and in accordance with the second configuration.
  • Total costs for the first configuration and for the second configuration can be calculated.
  • the licensing costs and the operating costs can be added when calculating the total costs.
  • One of the first configuration and the second configuration can be recommended depending on which configuration has a lower total cost in accordance with the calculations. Results of the recommending can be provided to an authorized administrator as part of a programmatic action for consolidating the applications and the servers.
  • An embodiment for consolidating applications in a data center can include identifying different combinations of software executing on hardware.
  • the software can include a set of applications that execute upon a set of servers.
  • Each of the servers can be a virtual machine executing on a virtualization level of an information technology environment.
  • the different combinations can have different arrangements of applications running on different ones of the servers.
  • a licensing cost, an operating cost, and a total cost can be calculated.
  • the licensing cost of the applications can vary in value from configuration-to-configuration, as different arrangements of applications on servers necessary to satisfy an application workload can affect a quantity and cost of software licenses needed for executing the applications per that configuration.
  • the operating costs for running the applications can vary from configuration-to-configuration based on cost savings achieved through hosting applications with complementary workload patterns on a common one of the servers.
  • a total cost of operation for each of the configurations can be calculated by summing the licensing costs, the operating costs adjusted for the cost savings for complementary workload patterns, and migration costs for adjusting a current configuration of the applications and servers to arrive at the configuration for which the total cost is being calculated.
  • the total cost results per configuration can be reported to a user for at least a set of the configurations.
  • FIG. 1 shows a diagram of a consolidation tool, which optimizes costs based on complementary application workload, application licensing cost, and other optional factors in accordance with an embodiment of the inventive arrangements disclosed herein.
  • FIG. 2 is a diagram that shows identifying a set of swap candidates based on application licensing costs, application workload, and/or other factors in accordance with an embodiment of the disclosure.
  • FIG. 3 is a flow chart of a method for reducing overall costs for an IT environment by intelligent placement of applications within a set of servers in accordance with an embodiment of the disclosure.
  • the present solution considers multiple different levels during a consolidation effort, which include application level considerations, and virtualization level considerations.
  • the application level considerations include which applications are most suitable on which application servers (real or virtual).
  • a consolidation analysis tool application is provided that functions at multiple levels and that minimizes total cost considering complementary workload patterns, application licensing costs, as well as other cost-significant factors.
  • aspects of the present invention may be embodied as a system, method or computer program product. Accordingly, aspects of the present invention may take the form of an entirely hardware embodiment, an entirely software embodiment (including firmware, resident software, micro-code, etc.) or an embodiment combining software and hardware aspects that may all generally be referred to herein as a “circuit,” “module” or “system.” Furthermore, aspects of the present invention may take the form of a computer program product embodied in one or more computer readable medium(s) having computer readable program code embodied thereon.
  • the computer readable medium may be a computer readable signal medium or a computer readable storage medium.
  • a computer readable storage medium may be, for example, but not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device, or any suitable combination of the foregoing.
  • a computer readable storage medium may be any tangible medium that can contain, or store a program for use by or in connection with an instruction execution system, apparatus, or device.
  • a computer readable signal medium may include a propagated data signal with computer readable program code embodied therein, for example, in baseband or as part of a carrier wave. Such a propagated signal may take any of a variety of forms, including, but not limited to, electro-magnetic, optical, or any suitable combination thereof.
  • a computer readable signal medium may be any computer readable medium that is not a computer readable storage medium and that can communicate, propagate, or transport a program for use by or in connection with an instruction execution system, apparatus, or device.
  • Program code embodied on a computer readable medium may be transmitted using any appropriate medium, including but not limited to wireless, wireline, optical fiber cable, RF, etc., or any suitable combination of the foregoing.
  • Computer program code for carrying out operations for aspects of the present invention may be written in any combination of one or more programming languages, including an object oriented programming language such as Java, Smalltalk, C++ or the like and conventional procedural programming languages, such as the “C” programming language or similar programming languages.
  • the program code may execute entirely on the user's computer, partly on the user's computer, as a stand-alone software package, partly on the user's computer and partly on a remote computer or entirely on the remote computer or server.
  • the remote computer may 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 the connection may be made to an external computer (for example, through the Internet using an Internet Service Provider).
  • LAN local area network
  • WAN wide area network
  • Internet Service Provider an Internet Service Provider
  • These computer program instructions may also be stored in a computer readable medium that can direct a computer, other programmable data processing apparatus, or other devices to function in a particular manner, such that the instructions stored in the computer readable medium produce an article of manufacture including instructions which implement the function/act specified in the flowchart and/or block diagram block or blocks.
  • the computer program instructions may also be loaded onto a computer, other programmable data processing apparatus, or other devices to cause a series of operational steps to be performed on the computer, other programmable apparatus or other devices to produce a computer implemented process such that the instructions which execute on the computer or other programmable apparatus provide processes for implementing the functions/acts specified in the flowchart and/or block diagram block or blocks.
  • FIG. 1 shows a diagram 100 of a consolidation tool 140 , which optimizes costs based on complementary application workload, application licensing cost, and other optional factors in accordance with an embodiment of the inventive arrangements disclosed herein.
  • the consolidation tool 140 can consider application 114 dependencies (using application dependency engine 142 , for example), application workload (using application workload engine 144 , for example), application licensing costs (using license engine 146 , for example), and other factors.
  • the consolidation tool 140 can perform analysis, planning, optimization, and other such functions. Using available data and user configurable parameters, the consolidation tool 140 can generate reports 154 and/or plans 156 .
  • the tool 140 can be a data-driven one, which leverages static and dynamic conditions. In one embodiment, changes in the dynamic conditions can trigger events/thresholds of the tool 140 , which automatically generates configuration/optimization changes in response.
  • the consolidation tool 140 can utilize manually entered information as well as automatically gathered information.
  • Manually entered information can be input specific for the tool 140 and/or acquired from other systems, which are communicatively linked to the consolidation tool 140 .
  • Automatically gathered information can be acquired from one-or-more monitors 102 deployed within the IT environment 110 .
  • the monitors 102 can detect conditions, values, states, and/or other such data points relevant to the IT environment 110 .
  • the consolidation tool 140 can use application level 133 factors as well as factors from one or more other levels 134 - 136 .
  • the other levels can include operating system level 134 , virtualization level 135 , and/or hardware level 136 .
  • Application level 133 refers to applications 114 and other components 112 that execute in the IT environment 110 .
  • a component 114 can be an executable used by one of the applications 114 .
  • Components 114 can include application program interfaces (APIs), plug-ins, enhancements, and the like.
  • Each application 114 can be a computer program running on an operating system 116 . Each application 114 can be designed to help people perform an activity or a set of activities.
  • Software applications 114 can include server applications and client applications. Applications 114 can include horizontal applications as well as vertical applications. Examples of applications 114 include, but are not limited to, enterprise software, accounting software, office suites, graphics software, media playing software, text and document manipulation software, Web services, and the like.
  • the operating system 116 can include software consisting of programs and data which runs on a machine, such as a server 126 , a desktop, a mobile device, an embedded device, a virtual machine 118 , and the like.
  • the operating system can manage hardware resources and can provide common services for execution of applications 114 .
  • the operating system 116 can act as an intermediary between the applications 114 and hardware (real or virtual) resources. That is, operating systems 116 can execute directly (communications 124 ) with hardware of a hardware infrastructure 125 or can interface with a virtual hardware provided by a virtual machine 118 of a virtual infrastructures 120 .
  • a virtual machine (VM) 118 can be a software implementation of a machine (i.e. a computer) that executes programs like a physical machine. Virtual machines can provide a complete system platform which supports the execution of a complete operating system (OS) 116 . That is, a virtual machine 118 can be a tightly isolated software container that can run its own operating systems 116 and applications 114 as if it were a physical computer (e.g., server 126 ).
  • a virtual machine 118 can contains its own virtual (i.e., software-based) CPU 128 , volatile memory 129 , non-volatile memory 131 , network interface card (NIC) 130 , and the like.
  • Virtual machines 118 can depend upon a virtual infrastructure 120 , which is a software defined abstraction level that keeps virtual machines 118 independent of underlying physical hardware (e.g., hardware infrastructure 125 ). Because of this abstracting, a virtual machine 118 can be configured with virtual components different from the physical components that are present on the underlying hardware.
  • a single physical server 126 can provide resources for multiple different virtual machines 118 .
  • a single virtual machine 118 can use resource from multiple different servers 126 .
  • complex mappings of arbitrary complexity can be established between virtual resources provided by a virtual infrastructure 120 and the underlying physical resource provided by the hardware infrastructure 125 .
  • a grouping of resources within a virtual infrastructure 120 which is used by the virtual machine 118 , can be referred to as a node 121 .
  • a set of nodes 121 can be used to define a cluster 122 .
  • Some virtual infrastructures 120 have an ability to dynamically redefine hardware resources (infrastructure 125 ) while not impacting runtime execution of applications 114 and OS 116 .
  • Some virtual infrastructures 120 have fault tolerance capabilities, high availability capabilities, automatic load balancing capabilities, and the like. Thus, it can be relatively easy to re-arrange physical resources (CPU 128 , memory 129 , NIC 130 , disk 131 ) relative to various virtual machine nodes 121 and clusters 122 , which can affect resources of the virtual machines 118 , which can affect performance of applications 114 running on the virtual machines 118 . Sometimes, a performance degradation or cost results from use of virtualization technologies (e.g., using a virtual infrastructure 120 ), which can be in the neighborhood of a 20-30% overall loss of resources consumed by the virtual infrastructure 120 .
  • virtualization technologies e.g., using a virtual infrastructure 120
  • an optimal IT environment 110 can use a combination of virtualized servers and non-virtualized servers, which overall results in low cost, scalability, and reliability gains.
  • the IT environment 110 can be configured in a myriad of different manners, which can result in different applications 114 running on different sets of servers 126 (or VM 118 ).
  • the resource engine 148 can process and manage information relating to hardware level 136 and/or virtualization level 135 computing resources.
  • Applications 114 , components 112 , and operating systems 116 can each have dependencies among them. That is, applications 114 can execute on a specific operating system 116 . Some applications 114 can execute in conjunction with other applications 114 (e.g., many applications require a database back-end to operate). Components 112 can also require a particular application 114 or set of applications 114 before executing.
  • the application dependency engine 142 can be responsible for determining these dependencies.
  • Each application 114 and/or component 112 can have its own workload, which can have a characteristic pattern.
  • the application workload can consume a quantifiable set of computing resources.
  • the application workload of the various applications 114 can have interrelationships, where some applications 114 have a complementary workload, which makes it more efficient to execute those applications on a common server 126 , virtual machine 118 , node 121 , and/or cluster 122 than otherwise.
  • the application workload engine 144 can manage application workload specific data and complexities.
  • the software license engine 148 can manage software licensing data and complexities.
  • the consolidation tool can include a graphical user interface (GUI) 150 , which permits a user to model, view, change, etc. configurations for the IT environment 110 .
  • GUI graphical user interface
  • a canvas 152 can be presented within which graphical representations of servers 125 and/or server resources (e.g., CPU 128 , memory 129 , NIC 130 , disk 131 ) can be arranged and/or combined.
  • values from the reports 150 and/or plans 152 can be linked to configuration mechanisms of the virtual infrastructure 106 , so that suggested changes can be implemented immediately by an administrator using tool 140 and/or automatically based on events detected by the tool 140 .
  • the reports 150 and plans 152 can detail gross license cost, operational costs, migration costs, multiplexing costs, net licensing cost savings, and other cost-based factors. Each of these costs can be decomposed at multiple different levels. Costs can be presented within GUI 150 and linked to configurations modeled in the canvas 152 , in one embodiment.
  • FIG. 2 is a diagram that shows identifying a set of swap candidates 240 based on application licensing costs 243 , application workload 242 , and/or other factors (migration costs 244 , other cost 245 , etc.) in accordance with an embodiment of the disclosure.
  • the swap candidate 240 can represent a suggested application arrangement that reduces overall cost 241 (compared to a different planned configuration and/or compared to an existing arrangement).
  • Factors and/or weights that are used to calculate cost 241 - 245 can be adjusted (such as by adjusting values used by consolidation tool 140 ), which can change the swap candidates 240 .
  • a set of applications can execute on different servers 212 , 214 , which are labeled as Server A and Server B, as shown by key 210 .
  • the servers 212 , 214 are used in multiple clusters 202 , 204 , 206 , which are shown as Cluster A, Cluster B, and Cluster C. Multiple applications execute per cluster 202 - 206 and per server 212 - 214 .
  • Each application can run on a specific operating system (OS), such as WINDOWS 222 , LINUX 224 , and the like. Further, different ones of the applications require a specific back-end to operate, such as WEBSPHERE APPLICATION SERVER (WAS) 232 and DB2 234 .
  • OS operating system
  • the consolidation tool 140 can determine that it would be more cost effective (given the application loads running in each cluster 202 - 206 to run the Rubis DB1 application on Server B in Cluster B and to run the TCP-W DB2 application in Cluster A within Server A.
  • the workloads can complement still, after the swap 240 occurs.
  • the additional benefit of the swap 240 can be that Server A will be the only server that runs the TCP-W application.
  • FIG. 2 is a very simplistic example, which will quickly produce numerous other potential savings (via licensing and other application swap opportunities), as the possibilities for swapping increase.
  • FIG. 3 is a flow chart of a method 300 for reducing overall costs for an IT environment by intelligent placement of applications within a set of servers in accordance with an embodiment of the disclosure.
  • Method 300 can begin in step 305 , where metrics can be captured and/or recorded for an IT environment having a set of servers and a set of applications running on the servers. These metrics can be continuously updated, as noted by repeating step 307 .
  • step 310 application level workload/resource requirements can be defined for each of the applications.
  • the workload can be predicted based on historic patterns, present conditions, and/or predicted based on forecasted workload requirements.
  • the application level workload can be mapped to a set of computing resources (e.g., CPU cycles, RAM memory requirements, disk space, network bandwidth, etc.), which can be broken down by resource type in one embodiment.
  • application license costs and software licensing costs in general
  • the workload, licensing, and dependencies can be continuously updated as changes occur, as noted by repeating step 312 .
  • resource capabilities of the set of servers that run the applications can be defined. These resource capabilities can be defined at the hardware infrastructure level and/or at the virtualization infrastructure level. Additional factors subject to change that relate to the resource capabilities can be recorded and stored. These factors can include, for example, upgrade costs of hardware, retirement costs of existing systems, virtualization costs and options, and the like. Resource information can be continuously updated, as noted by repeating step 322 .
  • a specific configuration can be generated for the IT environment.
  • This configuration can detail a unique arrangement of the applications running on the servers (virtualized or not).
  • the configuration can be constructed with constraints to ensure that the application workload requirements are satisfied.
  • step 330 software licensing costs can be calculated for the configuration.
  • the software licensing costs can be evaluated in context of the required application dependencies.
  • the software licensing costs can include component licensing costs, application licensing costs, operating system licensing costs, virtualization software licensing costs, middleware licensing costs, and the like.
  • the configuration(s) generated in step 325 can be specifically arranged to minimize software licensing costs.
  • operating costs can be calculated for the configuration.
  • the operating costs can consider complementary workload patterns of applications running on the servers. That is, a required set of servers and/or time of operation of the servers) can be reduced through use of the complementary workload patterns.
  • configuration(s) generated in step 335 can represent an attempt to minimize costs by considering complementary workload patterns.
  • step 340 migration costs can be determined for placing the applications/servers/virtual machines into the configuration generated by step 325 from a current configuration.
  • a total cost of operating the IT environment can be computed in step 345 . This total cost can be a summation of software licensing cost, operating costs, migration costs, and other optional factors (future value, depreciation, maintenance cost, etc.).
  • step 350 a determination can be made as to whether additional configurations are to be generated (or analyzed). If so, the method progresses from step 350 back to step 325 . When no additional configurations are to be generated (or analyzed), the method proceeds from step 350 to step 355 .
  • step 355 configuration specifics can be reported to an IT administrator, such as via reports 154 and/or plans 156 .
  • step 360 replacements for existing applications and/or application placements can be suggested and/or implemented within the IT infrastructure, which minimizes the total costs for providing, operating, and maintaining the IT environment.
  • each block in the flowchart or block diagrams may represent a module, segment, or portion of code, which comprises one or more executable instructions for implementing the specified logical function(s).
  • the functions noted in the block may occur out of the order noted in the figures. For example, two blocks shown in succession may, in fact, be executed substantially concurrently, or the blocks may sometimes be executed in the reverse order, depending upon the functionality involved.

Abstract

Applications in a data center can be consolidated by identifying different combinations of software executing on hardware. The software can include a set of applications that execute upon a set of servers. The different combinations can have different arrangements of applications running on different ones of the servers. For each of the different combinations, a licensing cost, an operating cost, and a total cost can be calculated. The total cost of operation for each of the configurations can be calculated by summing the licensing costs, the operating costs adjusted for the cost savings for complementary workload patterns, and migration costs for adjusting a current configuration of the applications and servers to arrive at the configuration. The total cost results per configuration can be reported to a user for at least a set of the configurations.

Description

    CROSS-REFERENCE TO RELATED APPLICATIONS
  • This application is a continuation of U.S. patent application Ser. No. 13/165,989, filed Jun. 22, 2011 (pending), which is incorporated herein in its entirety.
  • BACKGROUND
  • The present invention relates to server consolidations.
  • Server consolidation is an approach to the efficient usage of computer server resources in order to reduce the total number of servers or server locations that an organization requires. The practice developed in response to the problem of server sprawl, a situation in which multiple, under-utilized servers take up more space and consume more resources than can be justified by their workload. When servers are consolidated, physical servers with low utilization loads are often virtualized and consolidated as virtual machines running on a set of physical servers.
  • Although consolidation can substantially increase the efficient use of server resources, it may also result in complex configurations of data, applications, and servers that can be confusing. Analysis tools/applications exist that help Information Technology (IT) administrators plan and efficiently implement a consolidation of an IT environment. Many consolidation choices are tradeoffs, where choices that optimize a consolidation effort for one set of factors have a negative impact on a different set of factors.
  • With a current rise in cloud computing, Web services, middleware platforms, and other network-based technologies—server consolidations become increasingly important and complex. Conventional analysis and planning tools have not adapted sufficiently to handle the increased complexities required of server farms in an information technology environment where cloud-computing is commonplace. That is, conventional analysis and planning tools are imperfect in that they fail to account for significant factors that strongly impact overall costs in a server-farm/middleware. For example, most consolidation analysis and planning tools fail to consider application level factors.
  • BRIEF SUMMARY
  • An embodiment for efficiently consolidating servers can store information in at least one storage medium that details a set of applications running on a set of servers. The one or more storage medium(s) can store licensing data for the applications that includes licensing costs. The storage medium(s) can also store workload requirements for the applications running on the servers. The storage medium(s) can record specifics of computing resources provided by each of the servers. The workload requirements of the applications can be mapped to computing resources of the servers. Dependencies can be determined for the applications running on the servers. The licensing costs for the applications can consider costs consistent with the dependencies. The application workload can include workload requirements for software executing on the servers that are consistent with the dependencies. A first configuration and a second configuration of the applications executing on the servers can be determined. The first configuration and the second configuration can assure the applications are placed within specific ones of the servers, such that the computing resources of the servers upon which the applications are placed satisfies application workload requirements of the applications given resources provide by the corresponding server that runs the applications. Different applications can be placed on different ones of the servers in the first configuration and in the second configuration. Licensing costs can be calculated for the first configuration and for the second configuration. Operational costs for running the applications and servers can be calculated in accordance with the first configuration and in accordance with the second configuration. Total costs for the first configuration and for the second configuration can be calculated. The licensing costs and the operating costs can be added when calculating the total costs. One of the first configuration and the second configuration can be recommended depending on which configuration has a lower total cost in accordance with the calculations. Results of the recommending can be provided to an authorized administrator as part of a programmatic action for consolidating the applications and the servers.
  • An embodiment for consolidating applications in a data center can include identifying different combinations of software executing on hardware. The software can include a set of applications that execute upon a set of servers. Each of the servers can be a virtual machine executing on a virtualization level of an information technology environment. The different combinations can have different arrangements of applications running on different ones of the servers. For each of the different combinations a licensing cost, an operating cost, and a total cost can be calculated. The licensing cost of the applications can vary in value from configuration-to-configuration, as different arrangements of applications on servers necessary to satisfy an application workload can affect a quantity and cost of software licenses needed for executing the applications per that configuration. The operating costs for running the applications can vary from configuration-to-configuration based on cost savings achieved through hosting applications with complementary workload patterns on a common one of the servers. A total cost of operation for each of the configurations can be calculated by summing the licensing costs, the operating costs adjusted for the cost savings for complementary workload patterns, and migration costs for adjusting a current configuration of the applications and servers to arrive at the configuration for which the total cost is being calculated. The total cost results per configuration can be reported to a user for at least a set of the configurations.
  • BRIEF DESCRIPTION OF THE SEVERAL VIEWS OF THE DRAWINGS
  • FIG. 1 shows a diagram of a consolidation tool, which optimizes costs based on complementary application workload, application licensing cost, and other optional factors in accordance with an embodiment of the inventive arrangements disclosed herein.
  • FIG. 2 is a diagram that shows identifying a set of swap candidates based on application licensing costs, application workload, and/or other factors in accordance with an embodiment of the disclosure.
  • FIG. 3 is a flow chart of a method for reducing overall costs for an IT environment by intelligent placement of applications within a set of servers in accordance with an embodiment of the disclosure.
  • DETAILED DESCRIPTION
  • Many application level considerations are significant when performing/planning server consolidation tasks. Some of these considerations are directly competing, or can only be optimized in part. The present solution considers multiple different levels during a consolidation effort, which include application level considerations, and virtualization level considerations. The application level considerations include which applications are most suitable on which application servers (real or virtual). Hence, a consolidation analysis tool (application) is provided that functions at multiple levels and that minimizes total cost considering complementary workload patterns, application licensing costs, as well as other cost-significant factors.
  • As will be appreciated by one skilled in the art, aspects of the present invention may be embodied as a system, method or computer program product. Accordingly, aspects of the present invention may take the form of an entirely hardware embodiment, an entirely software embodiment (including firmware, resident software, micro-code, etc.) or an embodiment combining software and hardware aspects that may all generally be referred to herein as a “circuit,” “module” or “system.” Furthermore, aspects of the present invention may take the form of a computer program product embodied in one or more computer readable medium(s) having computer readable program code embodied thereon.
  • Any combination of one or more computer readable medium(s) may be utilized. The computer readable medium may be a computer readable signal medium or a computer readable storage medium. A computer readable storage medium may be, for example, but not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device, or any suitable combination of the foregoing. More specific examples (a non-exhaustive list) of the computer readable storage medium would include the following: an electrical connection having one or more wires, a portable computer diskette, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or Flash memory), an optical fiber, a portable compact disc read-only memory (CD-ROM), an optical storage device, a magnetic storage device, or any suitable combination of the foregoing. In the context of this document, a computer readable storage medium may be any tangible medium that can contain, or store a program for use by or in connection with an instruction execution system, apparatus, or device.
  • A computer readable signal medium may include a propagated data signal with computer readable program code embodied therein, for example, in baseband or as part of a carrier wave. Such a propagated signal may take any of a variety of forms, including, but not limited to, electro-magnetic, optical, or any suitable combination thereof. A computer readable signal medium may be any computer readable medium that is not a computer readable storage medium and that can communicate, propagate, or transport a program for use by or in connection with an instruction execution system, apparatus, or device.
  • Program code embodied on a computer readable medium may be transmitted using any appropriate medium, including but not limited to wireless, wireline, optical fiber cable, RF, etc., or any suitable combination of the foregoing. Computer program code for carrying out operations for aspects of the present invention may be written in any combination of one or more programming languages, including an object oriented programming language such as Java, Smalltalk, C++ or the like and conventional procedural programming languages, such as the “C” programming language or similar programming languages. The program code may execute entirely on the user's computer, partly on the user's computer, as a stand-alone software package, partly on the user's computer and partly on a remote computer or entirely on the remote computer or server. In the latter scenario, the remote computer may 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 the connection may be made to an external computer (for example, through the Internet using an Internet Service Provider).
  • Aspects of the present invention are described below with reference to flowchart illustrations and/or block diagrams of methods, apparatus (systems) and computer program products according to embodiments of the invention. It will be understood that each block of the flowchart illustrations and/or block diagrams, and combinations of blocks in the flowchart illustrations and/or block diagrams, can be implemented by computer program instructions. These computer program instructions may be provided to a processor of a general purpose computer, special purpose computer, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, create means for implementing the functions/acts specified in the flowchart and/or block diagram block or blocks.
  • These computer program instructions may also be stored in a computer readable medium that can direct a computer, other programmable data processing apparatus, or other devices to function in a particular manner, such that the instructions stored in the computer readable medium produce an article of manufacture including instructions which implement the function/act specified in the flowchart and/or block diagram block or blocks.
  • The computer program instructions may also be loaded onto a computer, other programmable data processing apparatus, or other devices to cause a series of operational steps to be performed on the computer, other programmable apparatus or other devices to produce a computer implemented process such that the instructions which execute on the computer or other programmable apparatus provide processes for implementing the functions/acts specified in the flowchart and/or block diagram block or blocks.
  • Referring to the figures, FIG. 1 shows a diagram 100 of a consolidation tool 140, which optimizes costs based on complementary application workload, application licensing cost, and other optional factors in accordance with an embodiment of the inventive arrangements disclosed herein.
  • That is, the consolidation tool 140 can consider application 114 dependencies (using application dependency engine 142, for example), application workload (using application workload engine 144, for example), application licensing costs (using license engine 146, for example), and other factors. The consolidation tool 140 can perform analysis, planning, optimization, and other such functions. Using available data and user configurable parameters, the consolidation tool 140 can generate reports 154 and/or plans 156. The tool 140 can be a data-driven one, which leverages static and dynamic conditions. In one embodiment, changes in the dynamic conditions can trigger events/thresholds of the tool 140, which automatically generates configuration/optimization changes in response.
  • The consolidation tool 140 can utilize manually entered information as well as automatically gathered information. Manually entered information can be input specific for the tool 140 and/or acquired from other systems, which are communicatively linked to the consolidation tool 140. Automatically gathered information can be acquired from one-or-more monitors 102 deployed within the IT environment 110. The monitors 102 can detect conditions, values, states, and/or other such data points relevant to the IT environment 110.
  • The consolidation tool 140 can use application level 133 factors as well as factors from one or more other levels 134-136. The other levels can include operating system level 134, virtualization level 135, and/or hardware level 136.
  • Application level 133 refers to applications 114 and other components 112 that execute in the IT environment 110. Specifically, a component 114 can be an executable used by one of the applications 114. Components 114 can include application program interfaces (APIs), plug-ins, enhancements, and the like.
  • Each application 114 can be a computer program running on an operating system 116. Each application 114 can be designed to help people perform an activity or a set of activities. Software applications 114 can include server applications and client applications. Applications 114 can include horizontal applications as well as vertical applications. Examples of applications 114 include, but are not limited to, enterprise software, accounting software, office suites, graphics software, media playing software, text and document manipulation software, Web services, and the like.
  • The operating system 116 can include software consisting of programs and data which runs on a machine, such as a server 126, a desktop, a mobile device, an embedded device, a virtual machine 118, and the like. The operating system can manage hardware resources and can provide common services for execution of applications 114. The operating system 116 can act as an intermediary between the applications 114 and hardware (real or virtual) resources. That is, operating systems 116 can execute directly (communications 124) with hardware of a hardware infrastructure 125 or can interface with a virtual hardware provided by a virtual machine 118 of a virtual infrastructures 120.
  • A virtual machine (VM) 118 can be a software implementation of a machine (i.e. a computer) that executes programs like a physical machine. Virtual machines can provide a complete system platform which supports the execution of a complete operating system (OS) 116. That is, a virtual machine 118 can be a tightly isolated software container that can run its own operating systems 116 and applications 114 as if it were a physical computer (e.g., server 126). A virtual machine 118 can contains its own virtual (i.e., software-based) CPU 128, volatile memory 129, non-volatile memory 131, network interface card (NIC) 130, and the like.
  • Virtual machines 118 can depend upon a virtual infrastructure 120, which is a software defined abstraction level that keeps virtual machines 118 independent of underlying physical hardware (e.g., hardware infrastructure 125). Because of this abstracting, a virtual machine 118 can be configured with virtual components different from the physical components that are present on the underlying hardware. A single physical server 126 can provide resources for multiple different virtual machines 118. A single virtual machine 118 can use resource from multiple different servers 126.
  • Further, complex mappings of arbitrary complexity can be established between virtual resources provided by a virtual infrastructure 120 and the underlying physical resource provided by the hardware infrastructure 125. For this reason, a grouping of resources within a virtual infrastructure 120, which is used by the virtual machine 118, can be referred to as a node 121. A set of nodes 121 can be used to define a cluster 122. Some virtual infrastructures 120 have an ability to dynamically redefine hardware resources (infrastructure 125) while not impacting runtime execution of applications 114 and OS 116.
  • Some virtual infrastructures 120 have fault tolerance capabilities, high availability capabilities, automatic load balancing capabilities, and the like. Thus, it can be relatively easy to re-arrange physical resources (CPU 128, memory 129, NIC 130, disk 131) relative to various virtual machine nodes 121 and clusters 122, which can affect resources of the virtual machines 118, which can affect performance of applications 114 running on the virtual machines 118. Sometimes, a performance degradation or cost results from use of virtualization technologies (e.g., using a virtual infrastructure 120), which can be in the neighborhood of a 20-30% overall loss of resources consumed by the virtual infrastructure 120. Thus, sometimes an optimal IT environment 110 can use a combination of virtualized servers and non-virtualized servers, which overall results in low cost, scalability, and reliability gains. For the purposes of the disclosure, the IT environment 110 can be configured in a myriad of different manners, which can result in different applications 114 running on different sets of servers 126 (or VM 118). The resource engine 148 can process and manage information relating to hardware level 136 and/or virtualization level 135 computing resources.
  • Applications 114, components 112, and operating systems 116 can each have dependencies among them. That is, applications 114 can execute on a specific operating system 116. Some applications 114 can execute in conjunction with other applications 114 (e.g., many applications require a database back-end to operate). Components 112 can also require a particular application 114 or set of applications 114 before executing. The application dependency engine 142 can be responsible for determining these dependencies.
  • Each application 114 and/or component 112 can have its own workload, which can have a characteristic pattern. The application workload can consume a quantifiable set of computing resources. Further, the application workload of the various applications 114 can have interrelationships, where some applications 114 have a complementary workload, which makes it more efficient to execute those applications on a common server 126, virtual machine 118, node 121, and/or cluster 122 than otherwise. The application workload engine 144 can manage application workload specific data and complexities.
  • Additionally, use of the applications 114, components 112, operating system 116, and even the virtual infrastructure 120 can require a software license. Details of the software licenses can vary significantly. For example, some software licenses are for a one-time fee, others require an annual fee for use (e.g., a yearly fee), others are for a usage fee (cost for a quantity of usage time), others depend on a quantity of processors or cores (e.g., CPU 128 real or virtual) used in conjunction with the software, still others depending on a number of concurrent users, etc. Arrangements of the software relative to the sets of servers 126 (and resource allocations via the virtual infrastructure 120) can result in significant variances in software licensing costs. The license engine 148 can manage software licensing data and complexities.
  • In one embodiment, the consolidation tool can include a graphical user interface (GUI) 150, which permits a user to model, view, change, etc. configurations for the IT environment 110. For example, a canvas 152 can be presented within which graphical representations of servers 125 and/or server resources (e.g., CPU 128, memory 129, NIC 130, disk 131) can be arranged and/or combined.
  • In one embodiment, values from the reports 150 and/or plans 152 can be linked to configuration mechanisms of the virtual infrastructure 106, so that suggested changes can be implemented immediately by an administrator using tool 140 and/or automatically based on events detected by the tool 140. The reports 150 and plans 152 can detail gross license cost, operational costs, migration costs, multiplexing costs, net licensing cost savings, and other cost-based factors. Each of these costs can be decomposed at multiple different levels. Costs can be presented within GUI 150 and linked to configurations modeled in the canvas 152, in one embodiment.
  • FIG. 2 is a diagram that shows identifying a set of swap candidates 240 based on application licensing costs 243, application workload 242, and/or other factors (migration costs 244, other cost 245, etc.) in accordance with an embodiment of the disclosure. The swap candidate 240 can represent a suggested application arrangement that reduces overall cost 241 (compared to a different planned configuration and/or compared to an existing arrangement). Factors and/or weights that are used to calculate cost 241-245 can be adjusted (such as by adjusting values used by consolidation tool 140), which can change the swap candidates 240.
  • As shown, a set of applications can execute on different servers 212, 214, which are labeled as Server A and Server B, as shown by key 210. The servers 212, 214 are used in multiple clusters 202, 204, 206, which are shown as Cluster A, Cluster B, and Cluster C. Multiple applications execute per cluster 202-206 and per server 212-214. Each application can run on a specific operating system (OS), such as WINDOWS 222, LINUX 224, and the like. Further, different ones of the applications require a specific back-end to operate, such as WEBSPHERE APPLICATION SERVER (WAS) 232 and DB2 234.
  • As shown, the consolidation tool 140 can determine that it would be more cost effective (given the application loads running in each cluster 202-206 to run the Rubis DB1 application on Server B in Cluster B and to run the TCP-W DB2 application in Cluster A within Server A. The workloads can complement still, after the swap 240 occurs. The additional benefit of the swap 240 can be that Server A will be the only server that runs the TCP-W application.
  • It should be appreciated that FIG. 2 is a very simplistic example, which will quickly produce numerous other potential savings (via licensing and other application swap opportunities), as the possibilities for swapping increase.
  • FIG. 3 is a flow chart of a method 300 for reducing overall costs for an IT environment by intelligent placement of applications within a set of servers in accordance with an embodiment of the disclosure.
  • Method 300 can begin in step 305, where metrics can be captured and/or recorded for an IT environment having a set of servers and a set of applications running on the servers. These metrics can be continuously updated, as noted by repeating step 307.
  • In step 310, application level workload/resource requirements can be defined for each of the applications. The workload can be predicted based on historic patterns, present conditions, and/or predicted based on forecasted workload requirements. The application level workload can be mapped to a set of computing resources (e.g., CPU cycles, RAM memory requirements, disk space, network bandwidth, etc.), which can be broken down by resource type in one embodiment. Additionally, application license costs (and software licensing costs in general) can be determined for the applications as well as dependencies for the applications. The workload, licensing, and dependencies can be continuously updated as changes occur, as noted by repeating step 312.
  • In step 320, resource capabilities of the set of servers that run the applications can be defined. These resource capabilities can be defined at the hardware infrastructure level and/or at the virtualization infrastructure level. Additional factors subject to change that relate to the resource capabilities can be recorded and stored. These factors can include, for example, upgrade costs of hardware, retirement costs of existing systems, virtualization costs and options, and the like. Resource information can be continuously updated, as noted by repeating step 322.
  • In step 325, a specific configuration can be generated for the IT environment. This configuration can detail a unique arrangement of the applications running on the servers (virtualized or not). The configuration can be constructed with constraints to ensure that the application workload requirements are satisfied.
  • In step 330, software licensing costs can be calculated for the configuration. The software licensing costs can be evaluated in context of the required application dependencies. The software licensing costs can include component licensing costs, application licensing costs, operating system licensing costs, virtualization software licensing costs, middleware licensing costs, and the like. In one embodiment, the configuration(s) generated in step 325 can be specifically arranged to minimize software licensing costs.
  • In step 335, operating costs can be calculated for the configuration. The operating costs can consider complementary workload patterns of applications running on the servers. That is, a required set of servers and/or time of operation of the servers) can be reduced through use of the complementary workload patterns. In one embodiment, configuration(s) generated in step 335 can represent an attempt to minimize costs by considering complementary workload patterns.
  • In step 340, migration costs can be determined for placing the applications/servers/virtual machines into the configuration generated by step 325 from a current configuration. A total cost of operating the IT environment can be computed in step 345. This total cost can be a summation of software licensing cost, operating costs, migration costs, and other optional factors (future value, depreciation, maintenance cost, etc.).
  • In step 350, a determination can be made as to whether additional configurations are to be generated (or analyzed). If so, the method progresses from step 350 back to step 325. When no additional configurations are to be generated (or analyzed), the method proceeds from step 350 to step 355. In step 355, configuration specifics can be reported to an IT administrator, such as via reports 154 and/or plans 156. In step 360, replacements for existing applications and/or application placements can be suggested and/or implemented within the IT infrastructure, which minimizes the total costs for providing, operating, and maintaining the IT environment.
  • The flowchart 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 invention. In this regard, each block in the flowchart or block diagrams may represent a module, segment, or portion of code, which comprises one or more executable instructions for implementing the specified logical function(s). It should also be noted that, in some alternative implementations, the functions noted in the block may occur out of the order noted in the figures. For example, two blocks shown in succession may, in fact, be executed substantially concurrently, or the blocks may sometimes be executed in the reverse order, depending upon the functionality involved. It will also be noted that each block of the block diagrams and/or flowchart illustration, and combinations of blocks in the block diagrams and/or flowchart illustration, can be implemented by special purpose hardware-based systems that perform the specified functions or acts, or combinations of special purpose hardware and computer instructions.
  • While the invention has been described with reference to one or more specific embodiments, the description is intended to be illustrative of the invention as a whole and is not to be construed as limiting the invention to the embodiments shown. It is appreciated that various modifications may occur to those skilled in the art that, while not specifically shown herein, are nevertheless within the true spirit and scope of the invention.

Claims (18)

1. A method comprising:
storing information on at least one storage medium, wherein said information is for a set of applications running on a set of servers, said information comprising:
(i) licensing data for the set of applications that includes licensing costs per application,
(ii) application workload requirements for the set of applications running on the set of servers, and
(iii) records of computing resources of each of the set of servers, wherein the application workload requirements of the set of applications are mapped to computing resources of the set of servers;
determining dependencies for the set of applications running on the set of servers;
generating a plurality of configurations for the set of applications running on the set of servers, wherein said plurality of configurations comprises a first configuration and a second configuration, wherein different arrangements of the set of applications are placed within different ones of the set of servers in the first configuration and in the second configuration, wherein each of the plurality of configurations:
(i) assures that the set of applications are placed within specific ones of the set of servers, and
(ii) assures that computing resources of each of the set of servers upon which the set of applications are placed satisfies application workload requirements of a server-subset of the set of applications that are placed within that server;
calculating licensing costs for the first configuration and for the second configuration, wherein the licensing costs as calculated consider costs consistent with the dependencies;
calculating operational costs for the first configuration and for the second configuration;
calculating total costs for the first configuration and for the second configuration, where the licensing costs and the operating costs are summed when calculating the total costs;
recommending one of the first configuration and the second configuration depending on which configuration has a lower total cost in accordance with the calculations; and
providing results of the recommending to an authorized administrator as part of a programmatic action for consolidating the set of applications running on the set of servers.
2. The method of claim 1, wherein the plurality of configurations comprise at least two configurations in addition to the first configuration and the second configuration;
for each of the plurality of configurations, calculating the licensing costs, the operational costs, and the total costs for that configuration; and
recommending one of the plurality of configurations based on the calculated total costs.
3. The method of claim 2, wherein specific ones of the plurality of configurations: (i) require a purchase of different hardware for the set of servers, (ii) require purchasing of additional application licenses, and (iii) require a change in application licensing arrangements, said method further comprising:
factoring in a cost of the different hardware when calculating total costs for the plurality of configurations;
factoring in a cost of purchasing the additional application licensing when calculating total costs for the plurality of configurations; and
factoring in a cost of changing application licensing arrangements when calculating total costs for the plurality of configurations.
4. The method of claim 1, further comprising:
calculating a migration cost for migrating the set of applications from an original configuration to the first configuration and from the original configuration to the second configuration; and
calculating total costs for the first configuration and for the second configuration by adding the migration costs to the total costs.
5. The method of claim 1, when determining the licensing cost for the first configuration and the second configuration comprise application licensing costs, middleware licensing costs, operating system operating costs for operating systems needed by the set of applications per the dependencies, and database licensing costs for databases needed by the set of applications per the dependencies and the workload requirements.
6. The method of claim 1, when determining the operating costs for the first configuration and the second configuration, minimizing a quantity of the set of servers needed to handle the workload requirements of the set of applications by consolidating the set of applications with complementary workload usage patterns onto a common one of the set of servers.
7. The method of claim 1, wherein at least a portion of the set of servers are virtual machines running on a virtualization layer of an information technology environment, wherein the total costs for the first configuration and for the second configuration takes operational costs of running the virtual machines into account.
8. The method of claim 1, wherein at least a portion of the set of servers are virtual machines running on a virtualization layer of an information technology environment, wherein the total costs calculated for the first configuration and for the second configuration accounts for hardware-level costs for the set of servers and related components, accounts for virtualization layer costs, and accounts for application level costs.
9. The method of claim 1, further comprising:
interactively modeling an information technology infrastructures for the first configuration and the second configuration within a canvas of a graphical user interface of a consolidation tool, wherein the license costs, operational costs, and total costs are calculated automatically and presented within the graphical user interface responsive to specifics constructed on the canvas, wherein as changes are interactively made within the canvas, cost computations are dynamically and correspondingly changed so that the configurations represented within the canvas of the graphical user interface have updated and corresponding cost values associated with them.
10. The method of claim 1, wherein the first configuration represents a current configuration of the set of servers and the set of applications within an information technology (IT) environment, wherein the second configuration represents a proposed change to the information technology (IT) environment that was programmatically determined by a consolidation tool, wherein the second configuration has a lower total cost than the first configuration, wherein cost savings between the first configuration and the second configuration represent an operational cost savings achieved by consolidating the set of applications with complementary workload usage patterns on a common one of the set of servers and also represent a cost savings with needing fewer software license due to a placement of the set of applications within the set of servers, wherein placement of the set of applications within the set of servers in the second configuration represents a tradeoff between licensing costs and complementary application workloads.
11. A method comprising:
generating a plurality of different combinations of software executing on hardware, wherein the software comprises a set of applications that execute upon a set of servers, wherein each of the set of servers is a virtual machine executing on a virtualization level of an information technology environment, wherein the different combinations have different arrangements of the set of applications running on different ones of the set of servers;
for each of the different combinations:
calculating a licensing cost of the set of applications, which varies in value from configuration-to-configuration;
calculating an operating cost for running the set of applications which also varies in value from configuration-to-configuration based on cost savings achieved through hosting the set of applications with complementary workload patterns on a common one of the set of servers; and
calculating a total cost of operation for each of the configurations, which is calculated by summing the licensing costs, the operating costs adjusted for the cost savings for complementary workload patterns, and migration costs for adjusting a current configuration of the set of applications and the set of servers to arrive at the configuration for which the total cost is being calculated; and
reporting the total cost results per configuration to a user for at least a subset of the configurations.
12. The method of claim 11, wherein the licensing costs of the set of applications varies as different arrangements of the set of applications on the set of servers necessary to satisfy an application workload affect a quantity and cost of software licenses needed for executing the set of applications per that configuration.
13. The method of claim 11, further comprising:
suggesting a subset of the set of applications that are to be swapped from running on one of the set of servers to another of the set of servers based a lower total cost computation resulting from swapping the subset of applications from one of the set of servers to another of the set of servers, wherein the suggesting optimizes a tradeoff between the licensing costs and cost savings resulting from complementary workload patterns.
14. The method of claim 11, further comprising:
interactively modeling information technology infrastructures for each of the configurations within a canvas of a graphical user interface of a consolidation tool, wherein the license costs, operational costs, and total costs are calculated automatically and presented within the graphical user interface responsive to specifics constructed on the canvas.
15. The method of claim 14, wherein as changes are interactively made within the canvas, cost computations are dynamically and correspondingly changed so that the configurations represented within the canvas of the graphical user interface have updated and corresponding cost values associated with them.
16. The method of claim 11, wherein at least one of the configurations require a purchase of different hardware for the set of servers where the cost of the different hardware is factored into the corresponding total cost for that configuration.
17. The method of claim 11, wherein at least one of the configurations require purchasing of additional application licenses that is an additional cost that is factored into the corresponding total cost for that configuration.
18. The method of claim 11, wherein at least a portion of the configurations require a change in application licensing arrangements that is a cost change factored into the corresponding total cost for that configuration.
US13/410,941 2011-06-22 2012-03-02 Application placement among a set of consolidation servers utilizing license cost and application workload profiles as factors Abandoned US20120331114A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US13/410,941 US20120331114A1 (en) 2011-06-22 2012-03-02 Application placement among a set of consolidation servers utilizing license cost and application workload profiles as factors

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US13/165,989 US10592825B2 (en) 2011-06-22 2011-06-22 Application placement among a set of consolidation servers utilizing license cost and application workload profiles as factors
US13/410,941 US20120331114A1 (en) 2011-06-22 2012-03-02 Application placement among a set of consolidation servers utilizing license cost and application workload profiles as factors

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
US13/165,989 Continuation US10592825B2 (en) 2011-06-22 2011-06-22 Application placement among a set of consolidation servers utilizing license cost and application workload profiles as factors

Publications (1)

Publication Number Publication Date
US20120331114A1 true US20120331114A1 (en) 2012-12-27

Family

ID=47362687

Family Applications (2)

Application Number Title Priority Date Filing Date
US13/165,989 Active 2035-07-17 US10592825B2 (en) 2011-06-22 2011-06-22 Application placement among a set of consolidation servers utilizing license cost and application workload profiles as factors
US13/410,941 Abandoned US20120331114A1 (en) 2011-06-22 2012-03-02 Application placement among a set of consolidation servers utilizing license cost and application workload profiles as factors

Family Applications Before (1)

Application Number Title Priority Date Filing Date
US13/165,989 Active 2035-07-17 US10592825B2 (en) 2011-06-22 2011-06-22 Application placement among a set of consolidation servers utilizing license cost and application workload profiles as factors

Country Status (1)

Country Link
US (2) US10592825B2 (en)

Cited By (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140207944A1 (en) * 2013-01-24 2014-07-24 Hitachi, Ltd. Method and system for managing cloud computing environment
US20140282456A1 (en) * 2013-03-15 2014-09-18 Cloud Technology Partners, Inc. Methods, systems and computer-readable media for code profiling and migration effort estimation
US20150278825A1 (en) * 2014-03-31 2015-10-01 Red Hat, Inc. Behavior adjustment based on capabilities of a downstream server
US20150339146A1 (en) * 2012-06-27 2015-11-26 Qatar Foundation An arrangement configured to allocate one or more resources of one or more computing devices to a virtual machine
US9372637B1 (en) 2015-08-21 2016-06-21 International Business Machines Corporation Inferring application type based on input-output characteristics of application storage resources
US9432267B2 (en) 2014-03-12 2016-08-30 International Business Machines Corporation Software defined infrastructures that encapsulate physical server resources into logical resource pools
US20160371109A1 (en) * 2015-06-16 2016-12-22 Vmware, Inc. Methods and systems to determine application license costs in a virtualized data center
US9667515B1 (en) 2011-09-29 2017-05-30 Amazon Technologies, Inc. Service image notifications
US10248400B1 (en) * 2016-11-15 2019-04-02 VCE IP Holding Company LLC Computer implemented system and method, and a computer program product, for automatically determining a configuration of a computing system upon which a software application will be deployed
US20190268244A1 (en) * 2018-02-26 2019-08-29 Servicenow, Inc. Interactive User Interface to Visually Display the Impact of Configuration Changes on a Managed Network
US20200026565A1 (en) * 2018-07-17 2020-01-23 Vmware, Inc. Generating metrics for quantifying computing resource usage
US10592825B2 (en) 2011-06-22 2020-03-17 International Business Machines Corporation Application placement among a set of consolidation servers utilizing license cost and application workload profiles as factors
US10637735B2 (en) * 2015-08-26 2020-04-28 International Business Machines Corporation Pattern-based migration of workloads
US10664296B2 (en) * 2012-06-27 2020-05-26 Qatar Foundation Allocating network interface resources to virtual machines based on total cost
US10762456B2 (en) 2014-09-30 2020-09-01 International Business Machines Corporation Migration estimation with partial data
US10936976B2 (en) * 2013-09-30 2021-03-02 Bmc Software, Inc. Workload management for license cost optimization
US11182713B2 (en) * 2015-01-24 2021-11-23 Vmware, Inc. Methods and systems to optimize operating system license costs in a virtual data center
US20220413891A1 (en) * 2019-03-28 2022-12-29 Amazon Technologies, Inc. Compute Platform Optimization Over the Life of a Workload in a Distributed Computing Environment

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8954546B2 (en) 2013-01-25 2015-02-10 Concurix Corporation Tracing with a workload distributor
US9256969B2 (en) 2013-02-01 2016-02-09 Microsoft Technology Licensing, Llc Transformation function insertion for dynamically displayed tracer data
US9323863B2 (en) 2013-02-01 2016-04-26 Microsoft Technology Licensing, Llc Highlighting of time series data on force directed graph
US9021447B2 (en) 2013-02-12 2015-04-28 Concurix Corporation Application tracing by distributed objectives
US20130283281A1 (en) 2013-02-12 2013-10-24 Concurix Corporation Deploying Trace Objectives using Cost Analyses
US8843901B2 (en) 2013-02-12 2014-09-23 Concurix Corporation Cost analysis for selecting trace objectives
US8997063B2 (en) 2013-02-12 2015-03-31 Concurix Corporation Periodicity optimization in an automated tracing system
US8924941B2 (en) 2013-02-12 2014-12-30 Concurix Corporation Optimization analysis using similar frequencies
US9665474B2 (en) 2013-03-15 2017-05-30 Microsoft Technology Licensing, Llc Relationships derived from trace data
US9575874B2 (en) 2013-04-20 2017-02-21 Microsoft Technology Licensing, Llc Error list and bug report analysis for configuring an application tracer
US9734040B2 (en) 2013-05-21 2017-08-15 Microsoft Technology Licensing, Llc Animated highlights in a graph representing an application
US8990777B2 (en) 2013-05-21 2015-03-24 Concurix Corporation Interactive graph for navigating and monitoring execution of application code
US9280841B2 (en) 2013-07-24 2016-03-08 Microsoft Technology Licensing, Llc Event chain visualization of performance data
US10693805B2 (en) 2013-08-27 2020-06-23 Red Hat, Inc. Tracking costs for a deployable instance
US9292415B2 (en) 2013-09-04 2016-03-22 Microsoft Technology Licensing, Llc Module specific tracing in a shared module environment
US10324754B2 (en) 2013-11-07 2019-06-18 International Business Machines Corporation Managing virtual machine patterns
WO2015071778A1 (en) 2013-11-13 2015-05-21 Concurix Corporation Application execution path tracing with configurable origin definition
CN105765560B (en) 2013-11-13 2019-11-05 微软技术许可有限责任公司 The component software executed based on multiple tracking is recommended
US9104800B2 (en) 2013-12-09 2015-08-11 International Business Machines Corporation Distributed debugging of an application in a distributed computing environment
US9584372B2 (en) 2014-01-07 2017-02-28 International Business Machines Corporation Discovering resources of a distributed computing environment
US10701141B2 (en) * 2016-06-30 2020-06-30 International Business Machines Corporation Managing software licenses in a disaggregated environment
US10778785B2 (en) * 2017-11-28 2020-09-15 International Business Machines Corporation Cognitive method for detecting service availability in a cloud environment
US11593732B2 (en) * 2021-03-26 2023-02-28 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. License orchestrator to most efficiently distribute fee-based licenses

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070094375A1 (en) * 2005-10-24 2007-04-26 Snyder Marc E Dynamic Server Consolidation and Rationalization Modeling Tool
US20100005173A1 (en) * 2008-07-03 2010-01-07 International Business Machines Corporation Method, system and computer program product for server selection, application placement and consolidation
US8245140B2 (en) * 2009-12-31 2012-08-14 International Business Machines Corporation Visualization and consolidation of virtual machines in a virtualized data center

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7836452B2 (en) 2005-06-10 2010-11-16 International Business Machines Corporation System, method and program for estimating a requisite amount of server resources
US7801994B2 (en) * 2007-11-29 2010-09-21 Hitachi, Ltd. Method and apparatus for locating candidate data centers for application migration
US10592825B2 (en) 2011-06-22 2020-03-17 International Business Machines Corporation Application placement among a set of consolidation servers utilizing license cost and application workload profiles as factors

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070094375A1 (en) * 2005-10-24 2007-04-26 Snyder Marc E Dynamic Server Consolidation and Rationalization Modeling Tool
US7761548B2 (en) * 2005-10-24 2010-07-20 Accenture Global Services Gmbh Dynamic server consolidation and rationalization modeling tool
US20100005173A1 (en) * 2008-07-03 2010-01-07 International Business Machines Corporation Method, system and computer program product for server selection, application placement and consolidation
US8245140B2 (en) * 2009-12-31 2012-08-14 International Business Machines Corporation Visualization and consolidation of virtual machines in a virtualized data center

Cited By (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10592825B2 (en) 2011-06-22 2020-03-17 International Business Machines Corporation Application placement among a set of consolidation servers utilizing license cost and application workload profiles as factors
US9667515B1 (en) 2011-09-29 2017-05-30 Amazon Technologies, Inc. Service image notifications
US20150339146A1 (en) * 2012-06-27 2015-11-26 Qatar Foundation An arrangement configured to allocate one or more resources of one or more computing devices to a virtual machine
US10664296B2 (en) * 2012-06-27 2020-05-26 Qatar Foundation Allocating network interface resources to virtual machines based on total cost
US9798564B2 (en) * 2012-06-27 2017-10-24 Qatar Foundation Minimizing virtual machine provisioning cost based on received software licensing and user fee information
US9608933B2 (en) * 2013-01-24 2017-03-28 Hitachi, Ltd. Method and system for managing cloud computing environment
US20140207944A1 (en) * 2013-01-24 2014-07-24 Hitachi, Ltd. Method and system for managing cloud computing environment
US20140282456A1 (en) * 2013-03-15 2014-09-18 Cloud Technology Partners, Inc. Methods, systems and computer-readable media for code profiling and migration effort estimation
US10936976B2 (en) * 2013-09-30 2021-03-02 Bmc Software, Inc. Workload management for license cost optimization
US10171374B2 (en) 2014-03-12 2019-01-01 International Business Machines Corporation Software defined infrastructures that encapsulate physical server resources into logical resource pools
US9432267B2 (en) 2014-03-12 2016-08-30 International Business Machines Corporation Software defined infrastructures that encapsulate physical server resources into logical resource pools
US9473362B2 (en) 2014-03-12 2016-10-18 International Business Machines Corporation Software defined infrastructures that encapsulate physical server resources into logical resource pools
US10164899B2 (en) 2014-03-12 2018-12-25 International Business Machines Corporation Software defined infrastructures that encapsulate physical server resources into logical resource pools
US9882827B2 (en) 2014-03-12 2018-01-30 International Business Machines Corporation Software defined infrastructures that encapsulate physical server resources into logical resource pools
US9882826B2 (en) 2014-03-12 2018-01-30 International Business Machines Corporation Software defined infrastructures that encapsulate physical server resources into logical resource pools
US10044631B2 (en) 2014-03-12 2018-08-07 International Business Machines Corporation Software defined infrastructures that encapsulate physical server resources into logical resource pools
US11068905B2 (en) * 2014-03-31 2021-07-20 Red Hat, Inc. Behavior adjustment based on capabilities of a downstream server
US20150278825A1 (en) * 2014-03-31 2015-10-01 Red Hat, Inc. Behavior adjustment based on capabilities of a downstream server
US10762456B2 (en) 2014-09-30 2020-09-01 International Business Machines Corporation Migration estimation with partial data
US11182713B2 (en) * 2015-01-24 2021-11-23 Vmware, Inc. Methods and systems to optimize operating system license costs in a virtual data center
US11200526B2 (en) * 2015-01-24 2021-12-14 Vmware, Inc. Methods and systems to optimize server utilization for a virtual data center
US11182717B2 (en) * 2015-01-24 2021-11-23 VMware. Inc. Methods and systems to optimize server utilization for a virtual data center
US11182718B2 (en) * 2015-01-24 2021-11-23 Vmware, Inc. Methods and systems to optimize server utilization for a virtual data center
US10908938B2 (en) * 2015-06-16 2021-02-02 Vmware, Inc. Methods and systems to determine application license costs in a virtualized data center for use in virtual machine consolidation
US20160371109A1 (en) * 2015-06-16 2016-12-22 Vmware, Inc. Methods and systems to determine application license costs in a virtualized data center
US9372637B1 (en) 2015-08-21 2016-06-21 International Business Machines Corporation Inferring application type based on input-output characteristics of application storage resources
US9495640B1 (en) 2015-08-21 2016-11-15 International Business Machines Corporation Inferring application type based on input-output characteristics of application storage resources
US9858327B2 (en) 2015-08-21 2018-01-02 International Business Machines Corporation Inferring application type based on input-output characteristics of application storage resources
US9984141B2 (en) 2015-08-21 2018-05-29 International Business Machines Corporation Inferring application type based on input-output characteristics of application storage resources
US10637735B2 (en) * 2015-08-26 2020-04-28 International Business Machines Corporation Pattern-based migration of workloads
US10248400B1 (en) * 2016-11-15 2019-04-02 VCE IP Holding Company LLC Computer implemented system and method, and a computer program product, for automatically determining a configuration of a computing system upon which a software application will be deployed
US10732950B1 (en) 2016-11-15 2020-08-04 EMC IP Holding Company LLC Computer implemented system and method, and a computer program product, for automatically determining a configuration of a computing system upon which a software application will be deployed
US11128542B2 (en) * 2018-02-26 2021-09-21 Servicenow, Inc. Interactive user interface to visually display the impact of configuration changes on a managed network
US20190268244A1 (en) * 2018-02-26 2019-08-29 Servicenow, Inc. Interactive User Interface to Visually Display the Impact of Configuration Changes on a Managed Network
US20200026565A1 (en) * 2018-07-17 2020-01-23 Vmware, Inc. Generating metrics for quantifying computing resource usage
US11294719B2 (en) * 2018-07-17 2022-04-05 Vmware, Inc. Generating metrics for quantifying computing resource usage based on cost and utilization of virtualized services and optimizing performance through virtualized service migration
US20220413891A1 (en) * 2019-03-28 2022-12-29 Amazon Technologies, Inc. Compute Platform Optimization Over the Life of a Workload in a Distributed Computing Environment

Also Published As

Publication number Publication date
US20120330700A1 (en) 2012-12-27
US10592825B2 (en) 2020-03-17

Similar Documents

Publication Publication Date Title
US10592825B2 (en) Application placement among a set of consolidation servers utilizing license cost and application workload profiles as factors
US10261819B2 (en) Determining an optimal computing environment for running an image based on performance of similar images
US20190286471A1 (en) Optimizing the deployment of virtual resources and automating post-deployment actions in a cloud environment
US10756979B2 (en) Performing cross-layer orchestration of resources in data center having multi-layer architecture
CN102681899B (en) Virtual computing resource dynamic management system of cloud computing service platform
US9495222B1 (en) Systems and methods for performance indexing
US9176762B2 (en) Hierarchical thresholds-based virtual machine configuration
US8843889B2 (en) Managing application template artifacts in a networked computing environment
US8516495B2 (en) Domain management and integration in a virtualized computing environment
US9003014B2 (en) Modular cloud dynamic application assignment
US9996888B2 (en) Obtaining software asset insight by analyzing collected metrics using analytic services
US10158725B2 (en) Differentiated service identification in a networked computing environment
US20060031813A1 (en) On demand data center service end-to-end service provisioning and management
US20150040125A1 (en) Allowing management of a virtual machine by multiple cloud providers
US9800484B2 (en) Optimizing resource utilization in a networked computing environment
US20170222888A1 (en) Assessing a service offering in a networked computing environment
US9760441B2 (en) Restoration of consistent regions within a streaming environment
US20170141961A1 (en) Optimization of cloud compliance services based on compliance actions
US20160217168A1 (en) Management of memory usage using usage analytics
US10360129B2 (en) Setting software error severity ranking
US10938655B2 (en) Enterprise cloud garbage collector
WO2022058158A1 (en) Application migration
US10248554B2 (en) Embedding profile tests into profile driven feedback generated binaries
US11307902B1 (en) Preventing deployment failures of information technology workloads
US11662993B2 (en) Autonomous management of temporal updates and rollbacks

Legal Events

Date Code Title Description
AS Assignment

Owner name: INTERNATIONAL BUSINESS MACHINES CORPORATION, NEW Y

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:GARG, ANKIT;NAYAK, TAPAN KUMAR;SEN, ARITRA;AND OTHERS;REEL/FRAME:027804/0250

Effective date: 20110614

STPP Information on status: patent application and granting procedure in general

Free format text: DOCKETED NEW CASE - READY FOR EXAMINATION

STPP Information on status: patent application and granting procedure in general

Free format text: NON FINAL ACTION MAILED

STPP Information on status: patent application and granting procedure in general

Free format text: RESPONSE TO NON-FINAL OFFICE ACTION ENTERED AND FORWARDED TO EXAMINER

STPP Information on status: patent application and granting procedure in general

Free format text: RESPONSE AFTER FINAL ACTION FORWARDED TO EXAMINER

STPP Information on status: patent application and granting procedure in general

Free format text: ADVISORY ACTION MAILED

STCB Information on status: application discontinuation

Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION