US20130138798A1 - Predictive and dynamic resource provisioning with tenancy matching of health metrics in cloud systems - Google Patents
Predictive and dynamic resource provisioning with tenancy matching of health metrics in cloud systems Download PDFInfo
- Publication number
- US20130138798A1 US20130138798A1 US13/306,283 US201113306283A US2013138798A1 US 20130138798 A1 US20130138798 A1 US 20130138798A1 US 201113306283 A US201113306283 A US 201113306283A US 2013138798 A1 US2013138798 A1 US 2013138798A1
- Authority
- US
- United States
- Prior art keywords
- provisioning
- computer readable
- instructions
- tenancy
- program code
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5072—Grid computing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
Definitions
- the present invention relates to a cloud computing environment, and, in particular, to provisioning of infrastructure resources.
- a recent model known as cloud computing, enables convenient, on-demand network access to a shared pool of configurable computing resources (e.g., networks, servers, storage, applications, and services) that can be rapidly provisioned and released with minimal management effort or service provider interaction.
- “Rapid elasticity,” an essential characteristic of the cloud model refers to rapidly and elastically provisioning computing capabilities to quickly scale out, and quickly scale in by rapidly releasing the computing capabilities.
- the provisioning of computing resources for different application services and models under transient conditions, on the cloud infrastructure inclusive of hardware, software and services is a challenging problem to tackle. This is because clouds exhibit varying demands, supply patterns, system sizes, and resources (hardware, software, network). Users have heterogeneous, dynamic, and competing Quality of Service (QoS) requirements, and applications have varying performance, workload, and dynamic application scaling requirements.
- QoS Quality of Service
- a method dynamically provisions computing resources to meet service level objectives in a cloud computing environment.
- a processor determines and monitors quality of resources available for provisioning to the cloud computing environment.
- the processor determines current resource needs for a cloud job tenancy, and dynamically provisions selected resources from resources available for provisioning based on the current resource needs and the quality of the resources available in order to meet the cloud job tenancy and the service level objectives.
- a system dynamically provisions computing resources to meet service level objectives in a cloud computing environment.
- the system comprises a processor and memory connected to the processor.
- the memory is encoded with instructions and wherein the instructions when executed comprise instructions for determining and monitoring quality of resources available for provisioning to the cloud computing environment. Instructions determine current resource needs for a cloud job tenancy, and dynamically provision selected resources from resources available for provisioning based on the current resource needs and the quality of the resources available in order to meet the cloud job tenancy and the service level objectives.
- a computer program product dynamically provisions computing resources to meet service level objectives in a cloud computing environment.
- the computer program product comprises a computer readable storage medium having computer readable program code embodied therewith.
- the computer readable program code is configured to determine and monitor quality of resources available for provisioning to the cloud computing environment.
- the computer readable program code is configured to determine current resource needs for a cloud job tenancy, and dynamically provision selected resources from resources available for provisioning based on the current resource needs and the quality of the resources available in order to meet the cloud job tenancy and the service level objectives.
- FIG. 1A is an illustration of computer hardware upon which an embodiment of the present invention may operate
- FIG. 1B is an illustration of a typical cloud computing hardware environment
- FIG. 2 is a high level flowchart of one embodiment of the present invention.
- FIG. 3 is an illustration of the components of a health and tenancy requirement based dynamic predictive provisioning system in accordance with one embodiment of the present invention
- FIG. 4 illustrates an XML representation of Health Grading Model component
- FIG. 5 illustrates an XML representation of a Cataloged Tenancy Mode, a Provisioning Health Model, and a Candidate Provisioning Model
- FIG. 6 illustrates an XML representation of a Requirement Tenancy Model
- FIG. 7 illustrates XML representations of Provisioned Resource Pools.
- 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 for example, AT&T, MCI, Sprint, EarthLink, MSN, GTE, etc.
- 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.
- 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.
- FIG. 1A is one example of a computer system 10 suitable for executing computer software for predictive and dynamic resource provisioning with tenancy matching of health metrics in cloud systems.
- Other processing devices which are suitable for executing the software can be a wireless telephone, personal assistant device (PDA), portable computer, smart remote control device, or any other processing devices that can execute such software.
- PDA personal assistant device
- portable computer portable computer
- smart remote control device or any other processing devices that can execute such software.
- the computer system 10 is of a type that executes under a suitable operating system installed on the computer system 10 .
- the components of the computer system 10 include a computer 12 , a keyboard 22 , mouse 24 , and a video display 20 .
- the computer 12 includes a processor 26 , a memory 28 , input/output (I/O) interfaces 30 and 32 , a video interface 34 , and a storage device 36 .
- I/O input/output
- the processor 26 is a central processing unit (CPU) that executes the operating system and the computer software executing under the operating system.
- the memory 28 includes random access memory (RAM) and read-only memory (ROM), and is used under direction of the processor 26 .
- the video interface 34 is connected to a video display 20 and provides video signals for display thereon. User input to operate the computer 12 is provided from the keyboard 22 and mouse 24 .
- the storage device 36 can include a disk drive or any other suitable storage medium, as discussed above.
- Each of the components of the computer 12 is connected to an internal bus 40 that includes data, address, and control buses, to allow components of the computer 12 to communicate with each other via the bus 40 .
- the computer system 10 can be connected to one or more other similar computers via an input/output (I/O) interface 32 using a communication channel 38 to a network, represented as the Internet 18 .
- One or more servers 19 may be connected to the computer 12 via a network, such as, the Internet 18 .
- the servers 19 may comprise the same physical arrangement as the computer 12 and may be co-located with or a part of the computer 12 .
- the computer software may be recorded on a computer readable storage medium, in which case, the computer software program is accessed by the computer system 10 from the storage device 36 .
- the computer software can be accessed directly from the Internet 18 by the computer 12 .
- a user can interact with the computer system 10 using the keyboard 22 and mouse 24 to operate the programmed computer software executing on the computer 12 .
- Cloud computing involves multi-tenancy which is the ability to run multiple customers on a single software instance installed on multiple servers to increase resource utilization by allowing load balancing among tenants, and to reduce operational complexity and cost in managing the software to deliver the service.
- Multi-tenancy is not a multi-instance architecture where separate software instances (or hardware systems) are set up for different client organizations.
- Virtual separation relies on giving each tenant his own dedicated hardware resources. Virtualization uses software to create application hosting environments that provide logical boundaries between each tenant. The application must be designed to be multi-tenant aware, and, therefore, the third strategy is to design different aspects of the application to automatically adjust its behavior differently for different tenants at runtime.
- a cloud provider's computing resources are pooled to serve multiple consumers using the multi-tenant model, with different physical and virtual resources dynamically assigned and reassigned according to consumer demand. There is a sense of location independence in that the customer generally has no control or knowledge over the exact location of the provided resources but may be able to specify location at a higher level of abstraction (e.g., country, state, or datacenter). Examples of resources include storage, processing, memory, network bandwidth, and virtual machines.
- Multi-tenancy creates a number of concerns for users, such as:
- Dynamic resource provisioning approaches help determine the number/type of resources required to meet service level objectives (SLOs). These approaches typically involve:
- the quality of chosen resource(s) is assumed to remain constant throughout the time period of provisioning.
- the status of an entire system reflects the status of the component on the system that has the most severe status. For example, if a component within a system has a status of critical, the entire system will have a status of critical, even if the critically impacted component is not critical to the current tenancy requirements within the provisioned system.
- the assumption that the quality of chosen resources remains constant throughout the time period of provisioning involves limitations:
- a high level flowchart 200 illustrates one embodiment of the present invention.
- the process begins by determining and monitoring the quality of resources provisioned for the cloud.
- the current resource needs are determined for a cloud job tenancy, and resources suitable for the job tenancy are then dynamically provided to the cloud at block 206 .
- the first step (block 202 of FIG. 2 ) is to determine and monitor the quality of provisioned resources.
- the components for this step include:
- FIG. 4 illustrates an XML representation of a Health Grading Model 308 .
- Each column represents the same model at different levels of detail.
- the first column generally identified by reference numeral 400 , provides the highest level of elements comprising the Health Grading model. These elements are resource type 402 , resource id 404 , and resource health grading 406 .
- the resource health grading 406 is further comprised of elements AbsoluteWeightedScore 408 and RelativeWeightedScore 410 .
- the second column depicts the details of the AbsoluteWeightedScore 408 element from the first column 400 .
- the third column further details the RelativeWeightedScore 410 from the first column 400 .
- the RelativeWeightedScore 410 is an XML representation, wherein the health of the resource is graded based on relative comparison of similar type of available resources.
- Each of the segmented scores within RelativeWeightedScore can have an absolute value of 0-100, 100 being the maximum available within the set of available resources, 0 being the minimum available within the set of available resources.
- the ⁇ SegmentedParameterList> element within the RelativeWeightedScore 410 could have a representation like: CPU
- the interpretation and representation of each of these segmented parameter list(s), their values and the value range would be resource specific and extended further based on the actual embodiment. It is to be understood that the list of elements shown in FIG. 4 is for the purpose of illustration only, and can be easily extended to accommodate various other element types that might be required based on the specific application of the present invention.
- the second step (block 204 of FIG. 2 ) is to determine current resource needs of the job tenancy.
- the components for this step include:
- an XML representation of a CTM ( 306 in FIG. 3 ) is generally indicated by reference numeral 500
- a PHM ( 310 in FIG. 3 ) is generally indicated by reference numeral 502
- a CPM ( 322 in FIG. 3 ) is generally indicated by reference numeral 504 .
- the CatalogedTenancyModel (CTM 306 in FIG. 3 ), generally identified by reference numeral 500 , is comprised of the elements of: CatalogedTenancyModelId 506 , a reference to the Multi-Dimensional Modeling of Tenancy Requirements (RTM 318 ) by way of the value of RequirementTenancyModel_id 508 , and details on one or more Provisioned Resources 510 .
- Each of the provisioned resources (such as ResourceId_ 1 512 ) is, in turn, comprised of the elements of ResourceType 514 and AbsoluteWeightedScore 516 .
- the ProvisioningHealthModel (PHM 310 in FIG. 3 ), generally identified by reference numeral 502 , comprises the elements of: a reference to the CTM ( 306 in FIG. 3 ), by way of element CatalogedTenancyModel_Id 518 , the TenancySatisfyingIndex 520 value and one or more resources that constitute a specific instance of CTM ( 306 in FIG. 3 ).
- the CandidateProvisioningModel (CPM 322 in FIG. 3 ), generally identified by reference numeral 504 , is comprised of the elements of: a reference to the RTM ( 318 in FIG. 3 ) by way of element RequirementTenancyModel_Id 524 , and the identified CandidateResources 526 by way of one or more resources, such as ResourceID_ 1 528 , that can satisfy a specific instance of RTM ( 318 in FIG. 3 ). It is to be understood that the list of elements shown in FIG. 4 is for the purpose of illustration only, and can be easily extended to accommodate various other element types that might be required based on the specific application of the present invention.
- Typical Functional requirements may comprise data parameters of HostingConstraints 608 , TenancyDomain 610 , TenancyLayers 612 , TenancyPriority 614 , Workflow 618 , and the TenancyServiceModels 620 , which in turn may comprise ConfigurationSettings 622 and SecuityLevels 624 .
- Typical Non-Functional requirements may comprise data parameters of ProcessorUtilization 626 , size of PersistentStorageRequired 628 , ResponseTime 630 , AvailabilityFactor 632 , number of ScalabilityNodes 634 , and number of RedundancyNodes 636 .
- Typical Constraints could comprise DomainConstraints 638 and OperationalConstraints 640 .
- the DomainConstraints 638 can capture data values for CacheRequests 642 , TransactionRetentionPeriod 644 , AccessControl 646 .
- the OperationalConstraints 640 can capture data values for PeakLoad 648 , OptimalLoad 650 , PeakDurationOfDay 652 , and IsolationLevels 654 . It is to be understood that the list of elements shown in FIG. 6 is for the purpose of illustration only, and can be easily extended to accommodate various other element types that might be required based on the specific application of the present invention.
- the third step (block 206 of FIG. 2 ) is to dynamically provision suitable resources.
- the components used for this step include:
- FIG. 7 examples of Provisioned Resource Pools, generally identified by reference numerals 700 and 702 , are shown as XML representations. Each column 700 and 702 represents the same model, however, at different levels of detail. This model depicts the final set of provisioned resources that satisfy the needs of a given Requirement Tenancy Model (RTM 318 in FIG. 3 ).
- RTM 318 Requirement Tenancy Model
- Each ProvisionedResourcePool model 700 and 702 typically has the elements of ProvisionId 704 , a reference to the RTM, by way of the value of RequirementTenancyModel_id 706 , and details on one or more resources, such as ResorceId_ 1 707 , ResorceId_ 2 708 , and ResorceId_N 709 comprising the provisionings.
- These resources can be of various types and each resource in turn is comprised of the elements AbsoluteWeightedScore 710 and RelativeWeightedScore 712 . It is to be understood that the list of elements shown in FIG. 7 is for the purpose of illustration only, and can be easily extended to accommodate various other element types that might be required based on the specific application of the present invention.
- Step One Determine and Monitor the Quality of Provisioned Resources:
- Step 2 Determine Current Resource Needs of Job Tenancy:
- Step 3 Determine the Current Resource Needs of Job Tenancy:
- the predictive provisioning rules in accordance with one embodiment of the present invention comprise pre-defined rules defining the threshold levels of resource parameters based on past experience. Threshold levels are either Lower Limit or Upper Limit.
- Provisioning health analysis employs a prediction algorithm in terms of estimating the health parameter values on a given time frame based on past data. For example, one embodiment uses an Auto-Regressive (AR) Model for Prediction. Each of the individual resource health parameters are tracked over a period of defined time, so as to predict the possible next value. Let ⁇ x(k) ⁇ be the time series of a health attribute x, where x(k) represents the measured value of x during time interval k. At the beginning of every interval k, a standard auto-regressive model predicts an attribute's value for the current interval using a linear combination of its measured value in the past several intervals, using the following algorithm:
- x ⁇ (k) is the predicted value for x(k)
- a i 's are the predictor coefficients
- m is the order of the model that indicates the number of past samples used for the prediction.
- the parameter is marked as critical.
- the Identify Provisioning Reallocation Plans 332 the parameters of a resource are examined for critical flags and alternate provisioning plans are suggested.
- the Dynamic Provisioning Plan Customizer and Validator 334 examines the alternate provisioning plans and validates in relevance to the tenancy requirement and selects the appropriate plan for re-provisioning the tenancy.
- FIG. 3 One embodiment of the present invention is illustrated, as follows with reference to FIG. 3 :
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Mathematical Physics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Environmental & Geological Engineering (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Debugging And Monitoring (AREA)
Abstract
According to one embodiment of the present invention, a method computing resources are dynamically provisioned to meet service level objectives in a cloud computing environment. Resources available for provisioning to the cloud computing environment are determined and the quality thereof monitored. Current resource needs for a cloud job tenancy are determined, and selected resources are dynamically provisioned from resources available for provisioning based on the current resource needs and the quality of the resources available in order to meet the cloud job tenancy and the service level objectives.
Description
- The present invention relates to a cloud computing environment, and, in particular, to provisioning of infrastructure resources.
- A recent model, known as cloud computing, enables convenient, on-demand network access to a shared pool of configurable computing resources (e.g., networks, servers, storage, applications, and services) that can be rapidly provisioned and released with minimal management effort or service provider interaction. “Rapid elasticity,” an essential characteristic of the cloud model, refers to rapidly and elastically provisioning computing capabilities to quickly scale out, and quickly scale in by rapidly releasing the computing capabilities. The provisioning of computing resources for different application services and models under transient conditions, on the cloud infrastructure inclusive of hardware, software and services is a challenging problem to tackle. This is because clouds exhibit varying demands, supply patterns, system sizes, and resources (hardware, software, network). Users have heterogeneous, dynamic, and competing Quality of Service (QoS) requirements, and applications have varying performance, workload, and dynamic application scaling requirements.
- According to one embodiment of the present invention, a method dynamically provisions computing resources to meet service level objectives in a cloud computing environment. A processor determines and monitors quality of resources available for provisioning to the cloud computing environment. The processor determines current resource needs for a cloud job tenancy, and dynamically provisions selected resources from resources available for provisioning based on the current resource needs and the quality of the resources available in order to meet the cloud job tenancy and the service level objectives.
- According to one embodiment of the present invention, a system dynamically provisions computing resources to meet service level objectives in a cloud computing environment. The system comprises a processor and memory connected to the processor. The memory is encoded with instructions and wherein the instructions when executed comprise instructions for determining and monitoring quality of resources available for provisioning to the cloud computing environment. Instructions determine current resource needs for a cloud job tenancy, and dynamically provision selected resources from resources available for provisioning based on the current resource needs and the quality of the resources available in order to meet the cloud job tenancy and the service level objectives.
- According to one embodiment of the present invention, a computer program product dynamically provisions computing resources to meet service level objectives in a cloud computing environment. The computer program product comprises a computer readable storage medium having computer readable program code embodied therewith. The computer readable program code is configured to determine and monitor quality of resources available for provisioning to the cloud computing environment. The computer readable program code is configured to determine current resource needs for a cloud job tenancy, and dynamically provision selected resources from resources available for provisioning based on the current resource needs and the quality of the resources available in order to meet the cloud job tenancy and the service level objectives.
-
FIG. 1A is an illustration of computer hardware upon which an embodiment of the present invention may operate; -
FIG. 1B is an illustration of a typical cloud computing hardware environment; -
FIG. 2 is a high level flowchart of one embodiment of the present invention; -
FIG. 3 is an illustration of the components of a health and tenancy requirement based dynamic predictive provisioning system in accordance with one embodiment of the present invention; -
FIG. 4 illustrates an XML representation of Health Grading Model component; -
FIG. 5 illustrates an XML representation of a Cataloged Tenancy Mode, a Provisioning Health Model, and a Candidate Provisioning Model; -
FIG. 6 illustrates an XML representation of a Requirement Tenancy Model; and -
FIG. 7 illustrates XML representations of Provisioned Resource Pools. - The descriptions of the various embodiments of the present invention have been presented for purposes of illustration, but are not intended to be exhaustive or limited to the embodiments disclosed. Many modifications and variations will be apparent to those of ordinary skill in the art without departing from the scope and spirit of the described embodiments. The terminology used herein was chosen to best explain the principles of the embodiments, the practical application or technical improvement over technologies found in the marketplace, or to enable others of ordinary skill in the art to understand the embodiments disclosed herein.
- 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 media (memory or device) 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 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.
- 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 present 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.
- The terminology used herein is for the purpose of describing particular embodiments only and is not intended to be limiting of the invention. As used herein, the singular forms “a”, “an” and “the” are intended to include the plural forms as well, unless the context clearly indicates otherwise. It will be further understood that the terms “comprises” and/or “comprising,” when used in this specification, specify the presence of stated features, integers, steps, operations, elements, and/or components, but do not preclude the presence or addition of one or more other features, integers, steps, operations, elements, components, and/or groups thereof.
-
FIG. 1A is one example of acomputer system 10 suitable for executing computer software for predictive and dynamic resource provisioning with tenancy matching of health metrics in cloud systems. Other processing devices which are suitable for executing the software can be a wireless telephone, personal assistant device (PDA), portable computer, smart remote control device, or any other processing devices that can execute such software. - The
computer system 10 is of a type that executes under a suitable operating system installed on thecomputer system 10. The components of thecomputer system 10 include acomputer 12, akeyboard 22,mouse 24, and avideo display 20. Thecomputer 12 includes aprocessor 26, amemory 28, input/output (I/O) interfaces 30 and 32, avideo interface 34, and astorage device 36. - The
processor 26 is a central processing unit (CPU) that executes the operating system and the computer software executing under the operating system. Thememory 28 includes random access memory (RAM) and read-only memory (ROM), and is used under direction of theprocessor 26. - The
video interface 34 is connected to avideo display 20 and provides video signals for display thereon. User input to operate thecomputer 12 is provided from thekeyboard 22 andmouse 24. Thestorage device 36 can include a disk drive or any other suitable storage medium, as discussed above. Each of the components of thecomputer 12 is connected to aninternal bus 40 that includes data, address, and control buses, to allow components of thecomputer 12 to communicate with each other via thebus 40. Thecomputer system 10 can be connected to one or more other similar computers via an input/output (I/O)interface 32 using acommunication channel 38 to a network, represented as theInternet 18. One or more servers 19 may be connected to thecomputer 12 via a network, such as, theInternet 18. The servers 19 may comprise the same physical arrangement as thecomputer 12 and may be co-located with or a part of thecomputer 12. - The computer software may be recorded on a computer readable storage medium, in which case, the computer software program is accessed by the
computer system 10 from thestorage device 36. Alternatively, the computer software can be accessed directly from theInternet 18 by thecomputer 12. In either case, a user can interact with thecomputer system 10 using thekeyboard 22 andmouse 24 to operate the programmed computer software executing on thecomputer 12. - Referring to
FIG. 1B , a Cloud environment is shown comprising multiple computer systems 100 a-100 n, which are interconnected. Cloud computing involves multi-tenancy which is the ability to run multiple customers on a single software instance installed on multiple servers to increase resource utilization by allowing load balancing among tenants, and to reduce operational complexity and cost in managing the software to deliver the service. Multi-tenancy is not a multi-instance architecture where separate software instances (or hardware systems) are set up for different client organizations. - There are three aspects of multi-tenancy strategies:
-
- 1) Physical Separation;
- 2) Virtualization; and
- 3) Automatic adjustment of behavior for different tenants at runtime.
- Physical separation relies on giving each tenant his own dedicated hardware resources. Virtualization uses software to create application hosting environments that provide logical boundaries between each tenant. The application must be designed to be multi-tenant aware, and, therefore, the third strategy is to design different aspects of the application to automatically adjust its behavior differently for different tenants at runtime.
- A cloud provider's computing resources are pooled to serve multiple consumers using the multi-tenant model, with different physical and virtual resources dynamically assigned and reassigned according to consumer demand. There is a sense of location independence in that the customer generally has no control or knowledge over the exact location of the provided resources but may be able to specify location at a higher level of abstraction (e.g., country, state, or datacenter). Examples of resources include storage, processing, memory, network bandwidth, and virtual machines.
- Multi-tenancy, however, creates a number of concerns for users, such as:
-
- 1) Security and inappropriate data access;
- 2) Impact of other clients on their system performance;
- 3) Being forced into an upgrade;
- 4) Inability to support the level of client specific configurations and even customizations as necessary;
- 5) Inability to obtain client level user acceptance testing;
- 6) Inability to determine the precise production/go live dates for the system; and
- 7) If the number of users in a tenant are large, e.g. >1000 users, then the multi-tenant advantages start losing value, as they may need separate hosting with separate maintenance.
- Dynamic resource provisioning approaches help determine the number/type of resources required to meet service level objectives (SLOs). These approaches typically involve:
-
- 1) Constructing an application performance model that predicts the number/type of application instances required to handle demand at each particular level, in order to satisfy Quality of Service (QoS) requirements;
- 2) Periodically predicting future demand and determining resource requirements using the performance model; and
- 3) Automatically allocating resources using the predicted resource requirements.
- However, the quality of chosen resource(s) is assumed to remain constant throughout the time period of provisioning. Also the status of an entire system reflects the status of the component on the system that has the most severe status. For example, if a component within a system has a status of critical, the entire system will have a status of critical, even if the critically impacted component is not critical to the current tenancy requirements within the provisioned system. Thus, the assumption that the quality of chosen resources remains constant throughout the time period of provisioning involves limitations:
-
- 1) Does not take into account, the effect of the health of the provisioned resources, which would diminish due to continuous execution of processes:
- A. The system eventually slows down due to operating system related issues such as:
- 1. Fragmentation, bigger registries, additional process loads, and
- 2. Effect of thrashing (i.e., when two or more processes access a shared resource repeatedly such that serious system performance degradation occurs because the system is spending a disproportionate amount of time just accessing the shared resource);
- B. Effect of varying available memory (RAM, Virtual, Persistent Storage) for processing either due to increase in the number of tenants or burst of load, or due to the application performance and memory consumption over time; and
- C. Dynamically changing virtual memory requirements based on addition of another Tenant.
- A. The system eventually slows down due to operating system related issues such as:
- 2) Does not take into account the effects of multi-tenancy dynamics, as that can affect the agreed upon SLO's for already provisioned tenants:
- A. Adding another tenant (similar to increasing number of requests for a service);
- B. Non-availability of any service on the provisioned resource due to maintenance and/or upgrades;
- C. Increased burst of load on a specific multi-tenant application; and
- D. Dynamically changing tenancy requirements such as time bound ramp-up or ramp-down in throughput requirements, e.g. increase during peak hours (typically seasonal as in case of a retail web-site) and decrease during off peak/night hours.
- 1) Does not take into account, the effect of the health of the provisioned resources, which would diminish due to continuous execution of processes:
- Referring now to
FIG. 2 , ahigh level flowchart 200 illustrates one embodiment of the present invention. Atblock 202, the process begins by determining and monitoring the quality of resources provisioned for the cloud. Atblock 204, the current resource needs are determined for a cloud job tenancy, and resources suitable for the job tenancy are then dynamically provided to the cloud atblock 206. - Referring now to
FIG. 3 , the components of a health and tenancy requirement based dynamicpredictive provisioning system 300 in accordance with one embodiment of the invention is illustrated. The first step (block 202 ofFIG. 2 ) is to determine and monitor the quality of provisioned resources. The components for this step include: -
- 1) An
Initial Resource pool 302—the entire set of resources available for usage; - 2) A Measured
Health Summary 304—resource type based parameterized health summary for each individual resource. For example, in a typical computer system, the parameterized health summary would comprise the number of available CPU cores, available RAM for application and infrastructure runtime components (physical and virtual), Network bandwidth, available disk storage, and etc. The measured health for all of the above parameters varies dynamically. - 3) Cataloged Tenancy Models (CTM) 306—repository of past experiences specifying resources provisioned corresponding to requirement tenancy models;
- 4) Health Grading Models (HGM) 308—a set of resources of the same resource type classified based on their absolute and relative graded health;
- 5) Provisioning Health Model (PHM) 310—a set of resources involving different resource types, classified based on their possible usage in satisfying a requirement tenancy;
- 6)
Candidate Resource pool 312—a set of identified eligible healthy resources involving different resource types that qualify for provisioning in specific tenancy. This pool also comprises identified replacement resources; and - 7) Continuous Health grade monitor 314—has multiple responsibilities of:
- a) releasing/acquiring resources in a
Candidate Resource Pool 312; - b) examining the
Provisioned Resource Pool 336 to monitor and update their current health grade model; and - c) providing inputs for Performing
Provisioning Health Analysis 330.
- a) releasing/acquiring resources in a
- 1) An
- Referring to
FIG. 4 , the HGM component 308 (FIG. 3 ) is further illustrated. Each available resource is graded based on its current state. Continuous grade monitoring allows for re-hashing the grade parameters.FIG. 4 illustrates an XML representation of aHealth Grading Model 308. Each column represents the same model at different levels of detail. The first column, generally identified byreference numeral 400, provides the highest level of elements comprising the Health Grading model. These elements areresource type 402,resource id 404, andresource health grading 406. Theresource health grading 406 is further comprised of elements AbsoluteWeightedScore 408 andRelativeWeightedScore 410. - The second column, generally identified by
reference numeral 412, depicts the details of the AbsoluteWeightedScore 408 element from thefirst column 400. For each resource, there can be one or many health parameters which are depicted by HealthParameter_1 413-HealthParameter_N 414. Each of these parameters has values corresponding to the keys ofCurrentValue 416,IsCritical 418,LowerThreshold 420 andUpperThreshold 422 values. - Similarly, the third column, generally identified by
reference numeral 424, further details theRelativeWeightedScore 410 from thefirst column 400. TheRelativeWeightedScore 410 is an XML representation, wherein the health of the resource is graded based on relative comparison of similar type of available resources. Each of the segmented scores within RelativeWeightedScore can have an absolute value of 0-100, 100 being the maximum available within the set of available resources, 0 being the minimum available within the set of available resources. For example, the <SegmentedParameterList> element within theRelativeWeightedScore 410 could have a representation like: CPU|Memory|Storage|N/W|Downtime and the corresponding <SegmentedParameterValue> element representation can be 80|94|100|72|95. The interpretation and representation of each of these segmented parameter list(s), their values and the value range would be resource specific and extended further based on the actual embodiment. It is to be understood that the list of elements shown inFIG. 4 is for the purpose of illustration only, and can be easily extended to accommodate various other element types that might be required based on the specific application of the present invention. - Returning to
FIG. 3 , the second step (block 204 ofFIG. 2 ) is to determine current resource needs of the job tenancy. The components for this step include: -
- 1) Tenancy Requirements and
Constraints 316—Specified requirements and constraints for tenancy; - 2) Multi-dimensional Modeling of Tenancy Requirements (RTM) 318—Classified requirements based on functional, non-functional and constraints;
- 3) Candidate Provisioning Models (CPM) 322—Repository of currently available resources for provisioning identified based on health and predictive analysis;
- 4) Identifying Provisioning Plans based on
CTM Matching 324—Has multiple responsibilities of:- a) Match 1: Identify closest (active/inactive) existing provisioning from
CTM 306 that matchescurrent RTM 318; - b) Match 2: Identify the
closest CPM 322, satisfying theCTM 306 of Match 1; and - c) Match 3: If no match is found from
CTM 306, identify closest requiredCPM 322 satisfying theRTM 318.
- a) Match 1: Identify closest (active/inactive) existing provisioning from
- 1) Tenancy Requirements and
- Referring to
FIG. 5 , an XML representation of a CTM (306 inFIG. 3 ) is generally indicated byreference numeral 500, a PHM (310 inFIG. 3 ) is generally indicated byreference numeral 502, and a CPM (322 inFIG. 3 ) is generally indicated byreference numeral 504. - The CatalogedTenancyModel (
CTM 306 inFIG. 3 ), generally identified byreference numeral 500, is comprised of the elements of:CatalogedTenancyModelId 506, a reference to the Multi-Dimensional Modeling of Tenancy Requirements (RTM 318) by way of the value ofRequirementTenancyModel_id 508, and details on one or more Provisioned Resources 510. Each of the provisioned resources (such as ResourceId_1 512) is, in turn, comprised of the elements of ResourceType 514 and AbsoluteWeightedScore 516. - The ProvisioningHealthModel (
PHM 310 inFIG. 3 ), generally identified byreference numeral 502, comprises the elements of: a reference to the CTM (306 inFIG. 3 ), by way ofelement CatalogedTenancyModel_Id 518, theTenancySatisfyingIndex 520 value and one or more resources that constitute a specific instance of CTM (306 inFIG. 3 ). - The CandidateProvisioningModel (
CPM 322 inFIG. 3 ), generally identified byreference numeral 504, is comprised of the elements of: a reference to the RTM (318 inFIG. 3 ) by way ofelement RequirementTenancyModel_Id 524, and the identifiedCandidateResources 526 by way of one or more resources, such asResourceID_1 528, that can satisfy a specific instance of RTM (318 inFIG. 3 ). It is to be understood that the list of elements shown inFIG. 4 is for the purpose of illustration only, and can be easily extended to accommodate various other element types that might be required based on the specific application of the present invention. - Referring to
FIG. 6 , an XML representation of a Requirement Tenancy Model, generally identified by reference numeral 600 (RTM 318 inFIG. 3 ), is illustrated. Each column depicted inFIG. 6 represents the sameRequirement Tenancy Model 600 but at different levels of detail. Typical Functional requirements, generally identified byreference numeral 602, for a Requirement Tenancy Model, may comprise data parameters ofHostingConstraints 608,TenancyDomain 610, TenancyLayers 612,TenancyPriority 614,Workflow 618, and the TenancyServiceModels 620, which in turn may comprise ConfigurationSettings 622 and SecuityLevels 624. - Typical Non-Functional requirements, generally identified by
reference numeral 604, for a Requirement Tenancy Model, may comprise data parameters ofProcessorUtilization 626, size of PersistentStorageRequired 628, ResponseTime 630,AvailabilityFactor 632, number ofScalabilityNodes 634, and number ofRedundancyNodes 636. - Typical Constraints, generally identified by
reference numeral 606, for a Requirement Tenancy Model, could comprise DomainConstraints 638 and OperationalConstraints 640. The DomainConstraints 638, in turn, can capture data values for CacheRequests 642, TransactionRetentionPeriod 644, AccessControl 646. The OperationalConstraints 640 can capture data values for PeakLoad 648, OptimalLoad 650, PeakDurationOfDay 652, and IsolationLevels 654. It is to be understood that the list of elements shown inFIG. 6 is for the purpose of illustration only, and can be easily extended to accommodate various other element types that might be required based on the specific application of the present invention. - Returning to
FIG. 3 , the third step (block 206 ofFIG. 2 ) is to dynamically provision suitable resources. The components used for this step include: -
- 1)
Predictive Provisioning Rules 326—Set of rules used for predictive analysis, based on past experience; - 2) Initial Health State at
Provisioning Start 328—Represents initial health state of the Provisioned Resource Pool forRTM 336; - 3) Perform
Provisioning Health Analysis 330—Has multiple responsibilities of:- a. Classifying currently provisioned resources based on updated health grades; and
- b. Applying
Predictive Provisioning Rules 326, to identify potentially/already unhealthy resources;
- 4) Identify
Provisioning Reallocation Plans 332—Has responsibility to identify plans on reallocation of current unhealthy resources based on health analysis; - 5) Dynamic Provisioning Plan Customizer and
Validator 334—Has multiple responsibilities of:- a. Identifying provisioned resources from candidate pool, based on required provisioning for RTM and reallocation plans; and
- b. Validating the provisioned resources plan, at end of cycle, based on fulfillment of tenancy requirements; and
- 6) Provisioned Resource Pool for
RTM 336—Set of healthy resources provisioned to satisfy tenancy requirements and constraints.
- 1)
- Referring to
FIG. 7 , examples of Provisioned Resource Pools, generally identified byreference numerals column RTM 318 inFIG. 3 ). EachProvisionedResourcePool model FIG. 7 is for the purpose of illustration only, and can be easily extended to accommodate various other element types that might be required based on the specific application of the present invention. - One embodiment of the present invention will now be discussed with reference to
FIG. 3 and the three steps, previously described above, i.e.: -
- Step 1: Determine and monitor the quality of provisioned resources;
- Step 2: Determine current resource needs of job tenancy; and
- Step 3: Determine current resource needs of job tenancy.
- Step One: Determine and Monitor the Quality of Provisioned Resources:
-
- 1. Initially, the resources in the Candidate Resource Pool 312 (
FIG. 3 ) are similar to those of the resources in theInitial Resource Pool 302. The initial resource pool is the set of all available resources for provisioning. It is assumed that a set of resources are already available for provisioning, as this is the starting state of a cloud system with given resources. The Candidate Resource Pool is a set of resources that qualify for current tenancy requirement (wherein the past tenancy experience is already accounted for). - 2. Determine the measured health summary of resources available in the initial resource pool using resource type based parameterized health summary for each individual resource. For example, as previously stated above, in a typical computer system, the parameterized health summary would comprise the number of available CPU cores, available RAM for application and infrastructure runtime components (physical and virtual), Network bandwidth, available disk storage, and etc. The measured health for all of the parameters varies dynamically.
- 3. Determine the provisioning health model (PHM 310) based on resource types used for the specific tenancy requirements as captured in the Cataloged Tenancy Model (CTM 306).
- 4. Determine the health grading model (HGM 308) to have either a relative or absolute grading of the resources to determine the resource equivalence.
- 5. Update the
HGM 308 andPHM 310 using thehealth grade monitor 314 to reclassify the Candidate Resource Pool (CRP 312) by filtering out any mismatched resources.
- 1. Initially, the resources in the Candidate Resource Pool 312 (
- Step 2: Determine Current Resource Needs of Job Tenancy:
-
- 1. Identify the closest existing tenant provisioned (either active or inactive) from the Cataloged Tenancy Model (CTM 306) pool, based on the
RTM 318 match (Match 1). - 2. Identify the corresponding provision model from the result of Match 1 and identify the closest Candidate Provision Model (CPM 322), i.e., Match 2. The identified Candidate Provision Model is fed into the Dynamic Provisioning Plan Customizer and
Validator 334. - 3. If Match 1 fails or if Match 2 fails, identify the closest required provision model from
CPM 322.
- 1. Identify the closest existing tenant provisioned (either active or inactive) from the Cataloged Tenancy Model (CTM 306) pool, based on the
- Step 3: Determine the Current Resource Needs of Job Tenancy:
-
- 1. Initially, the Provisioned Resource Pool for
RTM 336 would be similar to that of theCandidate Resource Pool 312. - 2. Feed the Initial Health State at
Provisioning Start 328 into the PerformProvisioning Health Analysis 330. This determines if the currently allocated resources need any re-allocation. Also, the data set is used to updateCandidate Provisioning Models 322 based on the analysis and input from the Health Grade Monitor 314 (as in case of a newly added resource that might be more healthy/suitable). - 3. During the reallocation, if any, a new provisioning plan as derived from the
Candidate Provisioning Models 322, and is validated by the Dynamic Provisioning Plan Customizer andValidator 334. The new resources are allocated from theCandidate Resource Pool 312 based on the newly adjusted provisioning plan.
- 1. Initially, the Provisioned Resource Pool for
- The predictive provisioning rules in accordance with one embodiment of the present invention comprise pre-defined rules defining the threshold levels of resource parameters based on past experience. Threshold levels are either Lower Limit or Upper Limit. Provisioning health analysis employs a prediction algorithm in terms of estimating the health parameter values on a given time frame based on past data. For example, one embodiment uses an Auto-Regressive (AR) Model for Prediction. Each of the individual resource health parameters are tracked over a period of defined time, so as to predict the possible next value. Let {x(k)} be the time series of a health attribute x, where x(k) represents the measured value of x during time interval k. At the beginning of every interval k, a standard auto-regressive model predicts an attribute's value for the current interval using a linear combination of its measured value in the past several intervals, using the following algorithm:
-
- where x̂(k) is the predicted value for x(k), ai's are the predictor coefficients, and m is the order of the model that indicates the number of past samples used for the prediction.
- When the predicted value for x(k), falls out of the defined threshold levels by the predictive provisioning rules, the parameter is marked as critical. During the Identify Provisioning Reallocation Plans 332, the parameters of a resource are examined for critical flags and alternate provisioning plans are suggested. The Dynamic Provisioning Plan Customizer and
Validator 334 examines the alternate provisioning plans and validates in relevance to the tenancy requirement and selects the appropriate plan for re-provisioning the tenancy. - One embodiment of the present invention is illustrated, as follows with reference to
FIG. 3 : -
- 1. The algorithm is used to predict the value of a particular parameter (x), with inputs for the range of historical data.
- 2. Varying groups of parameters are determined based upon specific health aspects of a given tenancy domain. For this group of parameters, the criticality of the resource is decided based upon the predicted values defined in the component
Predictive Provisioning Rules 326. - 3. For each of the resources participating in the current tenancy requirement provisioning, the resource is classified as a healthy/unhealthy resource, based on criticality of specific resource parameter(s). This is performed as part of the component
Provisioning Health Analysis 330. - 4. The dynamic provisioning plan, as well as any re-provisioning plan with a replacement resource, would be arrived at based on this output of the resource classification as healthy/unhealthy from step 3 above. This is done by the component Identify
Provisioning Reallocation Plans 332. - 5. The actual provisioning/reallocation would be carried out based on the plan determined in step 4 and performed by the component Dynamic Provisioning Plan Customizer and
Validator 334.
- The present invention provides at least the following advantages over the prior art:
-
- 1. enables the capture and representation of tenancy requirements in a formalized model, both for future reuse considerations and for continuous conformance of provisioning;
- 2. acts as an intermediary to certify and guarantee accurate provisioning of cloud resources based upon tenancy requirement models and resource health models;
- 3. flexibly switches between health monitoring for provisioned resources and health monitoring for candidate resource pools in order to support published catalogue based tenancy provisioning as well as made-to-order tenancy provisioning.
- 4. continuously monitors and replaces provisioned systems based upon changing health grades. A best-fit resource is provided for the current tenancy requirement and, thus, resource utilization is maximized and the cost of hosting is reduced.
- The corresponding structures, materials, acts, and equivalents of all elements in the claims below are intended to include any structure, material, or act for performing the function in combination with other claimed elements as specifically claimed. The description of the present invention has been presented for purposes of illustration and description, but is not intended to be exhaustive or limited to the invention in the form disclosed. Many modifications and variations will be apparent to those of ordinary skill in the art without departing from the scope and spirit of the invention. The embodiment was chosen and described in order to best explain the principles of the invention and the practical application, and to enable others of ordinary skill in the art to understand the invention for various embodiments with various modifications as are suited to the particular use contemplated.
- Having thus described the invention of the present application in detail and by reference to embodiments thereof, it will be apparent that modifications and variations are possible without departing from the scope of the invention defined in the appended claims.
Claims (14)
1-7. (canceled)
8. A system for dynamically provisioning computing resources to meet service level objectives in a cloud computing environment, comprising:
a processor; and
memory connected to the processor, wherein the memory is encoded with instructions and wherein the instructions when executed comprise:
instructions for determining and monitoring quality of resources available for provisioning to the cloud computing environment;
instructions for determining current resource needs for a cloud job tenancy; and
instructions for dynamically provisioning selected resources from said resources available for provisioning based on said current resource needs and said quality of said resources available in order to meet said cloud job tenancy and the service level objectives.
9. The system of claim 8 , wherein said instructions for determining and monitoring comprises instructions for determining a parameterized health summary for each of said resources available for provisioning.
10. The system of claim 9 , wherein said instructions for determining and monitoring comprises:
instructions for determining a provisioning health model based on resource types used for requirements of said cloud job tenancy as captured in a cataloged tenancy model;
instructions for determining a health grading model to have a relative or absolute grading of said resources available to determine a resource equivalence; and
instructions for updating said health grading model and said provisioning health model to reclassify a candidate resource pool by filtering out any mismatched ones of said resources available.
11. The system of claim 10 , wherein said instructions for determining current resource needs for a cloud job tenancy comprises:
instructions for identifying a closest existing tenant provisioned from a pool of tenants in said cataloged tenancy model, based on a modeling of tenancy requirements, as a first match;
instructions for identifying a corresponding provision model based on said first match;
instructions for identifying a closest candidate provision model as a second match; and
instructions for entering said second match into a dynamic provisioning plan customizer and validator.
12. The system of claim 11 , wherein when said first or said second match fail, instructions for identifying a closest required provision model from said candidate provision model.
13. The system of claim 8 , wherein said instructions for dynamically provisioning selected resources from said resources available for provisioning comprises:
instructions for entering an initial health state at provisioning start into a perform provisioning health analysis to determine whether currently allocated resources need reallocation; and
instructions for updating candidate provisioning models based on any reallocation needs.
14. The system of claim 13 , further comprising:
instructions for deriving a new provisioning plan from said updated candidate provisioning models during any reallocation;
instructions for validating said new provisioning plan with a dynamic provisioning plan customizer and validator; and
instructions for allocating new resources from a candidate resource pool based on said new provisioning plan.
15. A computer program product for dynamically provisioning computing resources to meet service level objectives in a cloud computing environment, the computer program product comprising a computer readable storage medium having computer readable program code embodied therewith, the computer readable program code comprising:
computer readable program code configured to determine and monitor quality of resources available for provisioning to the cloud computing environment;
computer readable program code configured to determine current resource needs for a cloud job tenancy; and
computer readable program code configured to dynamically provision selected resources from said resources available for provisioning based on said current resource needs and said quality of said resources available in order to meet said cloud job tenancy and the service level objectives.
16. The computer program product of claim 15 , wherein said computer readable program code configured to determine and monitor comprises computer readable program code configured to determine a parameterized health summary for each of said resources available for provisioning.
17. The computer program product of claim 16 , wherein said computer readable program code configured to determine and monitor comprises:
computer readable program code configured to determine a provisioning health model based on resource types used for requirements of said cloud job tenancy as captured in a cataloged tenancy model;
computer readable program code configured to determine a health grading model to have a relative or absolute grading of said resources available to determine a resource equivalence; and
computer readable program code configured to update said health grading model and said provisioning health model to reclassify a candidate resource pool by filtering out any mismatched ones of said resources available.
18. The computer program product of claim 17 , wherein said computer readable program code configured to determine current resource needs for a cloud job tenancy comprises:
computer readable program code configured to identify a closest existing tenant provisioned from a pool of tenants in said cataloged tenancy model, based on a modeling of tenancy requirements, as a first match;
computer readable program code configured to identify a corresponding provision model based on said first match;
computer readable program code configured to identify a closest candidate provision model as a second match; and
computer readable program code configured to enter said second match into a dynamic provisioning plan customizer and validator.
19. The computer program product of claim 18 , wherein when said first or said second match fail, computer readable program code configured to identify a closest required provision model from said candidate provision model.
20. The computer program product of claim 19 , wherein said computer readable program code configured to dynamically provision selected resources from said resources available for provisioning comprises:
computer readable program code configured to enter an initial health state at Provisioning start into a perform provisioning health analysis to determine whether currently allocated resources need reallocation;
computer readable program code configured to update candidate provisioning models based on any reallocation needs;
computer readable program code configured to derive a new provisioning plan from said updated candidate provisioning models during any reallocation;
computer readable program code configured to validate said new provisioning plan with a dynamic provisioning plan customizer and validator; and
computer readable program code configured to allocate new resources from a candidate resource pool based on said new provisioning plan.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/306,283 US20130138798A1 (en) | 2011-11-29 | 2011-11-29 | Predictive and dynamic resource provisioning with tenancy matching of health metrics in cloud systems |
US13/417,052 US9274850B2 (en) | 2011-11-29 | 2012-03-09 | Predictive and dynamic resource provisioning with tenancy matching of health metrics in cloud systems |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/306,283 US20130138798A1 (en) | 2011-11-29 | 2011-11-29 | Predictive and dynamic resource provisioning with tenancy matching of health metrics in cloud systems |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US13/417,052 Continuation US9274850B2 (en) | 2011-11-29 | 2012-03-09 | Predictive and dynamic resource provisioning with tenancy matching of health metrics in cloud systems |
Publications (1)
Publication Number | Publication Date |
---|---|
US20130138798A1 true US20130138798A1 (en) | 2013-05-30 |
Family
ID=48467826
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US13/306,283 Abandoned US20130138798A1 (en) | 2011-11-29 | 2011-11-29 | Predictive and dynamic resource provisioning with tenancy matching of health metrics in cloud systems |
US13/417,052 Expired - Fee Related US9274850B2 (en) | 2011-11-29 | 2012-03-09 | Predictive and dynamic resource provisioning with tenancy matching of health metrics in cloud systems |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US13/417,052 Expired - Fee Related US9274850B2 (en) | 2011-11-29 | 2012-03-09 | Predictive and dynamic resource provisioning with tenancy matching of health metrics in cloud systems |
Country Status (1)
Country | Link |
---|---|
US (2) | US20130138798A1 (en) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130275598A1 (en) * | 2012-04-16 | 2013-10-17 | Siemens Aktiengesellschaft | Method For Providing Resources In A Cloud, And Associated Apparatus |
US20130297964A1 (en) * | 2012-05-03 | 2013-11-07 | Vmware, Inc. | Virtual Machine Placement With Automatic Deployment Error Recovery |
US20140013321A1 (en) * | 2012-07-05 | 2014-01-09 | Telefonica, S.A. | Method for providing cloud computing resources |
US20150039768A1 (en) * | 2013-08-05 | 2015-02-05 | Verizon Patent And Licensing Inc. | Virtualization of management services in a cloud computing environmemt |
EP2919438A1 (en) * | 2014-03-10 | 2015-09-16 | Deutsche Telekom AG | Method and system to estimate user desired delay for resource allocation for mobile-cloud applications |
US9430750B2 (en) | 2014-10-27 | 2016-08-30 | International Business Machines Corporation | Predictive approach to environment provisioning |
US10503548B2 (en) | 2016-10-11 | 2019-12-10 | Microsoft Technology Licensing, Llc | Resource and latency estimation-based scheduling in a distributed computing environment |
CN111382935A (en) * | 2020-03-05 | 2020-07-07 | 海南电网有限责任公司 | Method, device and system for adjusting peak shaving auxiliary service |
Families Citing this family (28)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9794138B2 (en) * | 2010-05-14 | 2017-10-17 | International Business Machines Corporation | Computer system, method, and program |
JP5804192B2 (en) * | 2012-03-28 | 2015-11-04 | 富士通株式会社 | Information processing apparatus, information processing method, and information processing system |
US10127084B2 (en) * | 2012-11-15 | 2018-11-13 | Red Hat Israel, Ltd. | Pre-provisioning resources for composite applications |
GB2512616A (en) * | 2013-04-03 | 2014-10-08 | Cloudzync Ltd | Resource control system |
CN103269282A (en) | 2013-04-25 | 2013-08-28 | 杭州华三通信技术有限公司 | Method and device for automatically deploying network configuration |
US20140372605A1 (en) * | 2013-05-24 | 2014-12-18 | Connectloud, Inc. | Method and apparatus for creating tenant specific catalogs by use of catalog category mapping |
US9736041B2 (en) * | 2013-08-13 | 2017-08-15 | Nec Corporation | Transparent software-defined network management |
US9396009B2 (en) | 2014-01-30 | 2016-07-19 | International Business Machines Corporation | Optimized global capacity management in a virtualized computing environment |
US10963304B1 (en) * | 2014-02-10 | 2021-03-30 | Google Llc | Omega resource model: returned-resources |
US9851933B2 (en) | 2015-03-25 | 2017-12-26 | International Business Machines Corporation | Capability-based abstraction of software-defined infrastructure |
US9733972B1 (en) * | 2015-09-02 | 2017-08-15 | Vce Company, Llc | Computer implemented system and method and computer program product for determining an optimal configuration for a computing system using root mean square normalization |
US10387209B2 (en) | 2015-09-28 | 2019-08-20 | International Business Machines Corporation | Dynamic transparent provisioning of resources for application specific resources |
EP3338410A4 (en) * | 2016-01-18 | 2018-08-01 | Huawei Technologies Co., Ltd. | System and method for cloud workload provisioning |
CN108780403A (en) | 2016-03-10 | 2018-11-09 | 沃拉斯堤技术解决方案公司 | To the system and method being managed for the cloud computing resources of information system |
WO2017188969A1 (en) * | 2016-04-29 | 2017-11-02 | Hewlett Packard Enterprise Development Lp | Work placement in a multi-tenant system for compliance with service-level objectives |
US10432638B2 (en) | 2016-08-29 | 2019-10-01 | Cisco Technology, Inc. | Infrastructure aware adaptive resource allocation |
US9806956B1 (en) * | 2016-09-15 | 2017-10-31 | Sas Institute Inc. | Managing computing resources by predicting resource usage |
US10491499B2 (en) * | 2017-05-11 | 2019-11-26 | Accenture Global Solutions Limited | Analyzing resource utilization of a cloud computing resource in a cloud computing environment |
US10810004B2 (en) * | 2017-06-30 | 2020-10-20 | Oracle International Corporation | System and method for managing a public software component ecosystem using a distributed ledger |
US11140049B2 (en) * | 2018-09-07 | 2021-10-05 | Juniper Networks, Inc. | Dynamic intent assurance and programmability in computer networks |
CN109450654B (en) * | 2018-11-02 | 2021-07-13 | 中山大学 | Cloud service charging method based on demand change |
US20200183748A1 (en) * | 2018-12-10 | 2020-06-11 | Vivek Bhatnagar | Methods and systems that generate optimal or near-optimal matching of resources to resource users by employing resource-exchange optimization tools |
US20200389352A1 (en) * | 2019-06-04 | 2020-12-10 | Microsoft Technology Licensing, Llc | Automated upgrade of multiple hosts |
US11520634B2 (en) | 2019-06-21 | 2022-12-06 | Kyndryl, Inc. | Requirement-based resource sharing in computing environment |
US11695559B2 (en) * | 2019-09-30 | 2023-07-04 | Salesforce, Inc. | Nested tenancy that permits a hierarchy having a plurality of levels |
CN111491006B (en) * | 2020-03-03 | 2021-11-02 | 天津大学 | Load-aware cloud computing resource elastic distribution system and method |
CN111445101A (en) * | 2020-05-15 | 2020-07-24 | 广联达科技股份有限公司 | Method, system and medium for scheduling cloud computing resources |
US11711282B2 (en) * | 2020-12-16 | 2023-07-25 | Capital One Services, Llc | TCP/IP socket resiliency and health management |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060268321A1 (en) * | 2005-05-27 | 2006-11-30 | Computer Associates Think, Inc. | Method and system for scheduling jobs in a computer system |
US20100058352A1 (en) * | 2008-09-02 | 2010-03-04 | Computer Associates Think, Inc. | System and Method for Dynamic Resource Provisioning for Job Placement |
US20100153482A1 (en) * | 2008-12-10 | 2010-06-17 | Full Armor Corporation | Cloud-Based Automation of Resources |
US20110225299A1 (en) * | 2010-03-12 | 2011-09-15 | Ripal Babubhai Nathuji | Managing performance interference effects on cloud computing servers |
US20120066670A1 (en) * | 2010-07-09 | 2012-03-15 | Mccarthy Christopher | Systems and Methods for Private Cloud Computing |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB0821095D0 (en) | 2008-11-18 | 2008-12-24 | Dynamic Systems Ltd | Method and system for content delivery |
US7996525B2 (en) | 2008-12-31 | 2011-08-09 | Sap Ag | Systems and methods for dynamically provisioning cloud computing resources |
US8001247B2 (en) | 2009-02-27 | 2011-08-16 | Red Hat, Inc. | System for trigger-based “gated” dynamic virtual and physical system provisioning |
US20100319004A1 (en) * | 2009-06-16 | 2010-12-16 | Microsoft Corporation | Policy Management for the Cloud |
US9086928B2 (en) | 2009-08-31 | 2015-07-21 | Accenture Global Services Limited | Provisioner within cloud console—defining images of an enterprise to be operable on different cloud computing providers |
US9009294B2 (en) | 2009-12-11 | 2015-04-14 | International Business Machines Corporation | Dynamic provisioning of resources within a cloud computing environment |
US9021046B2 (en) | 2010-01-15 | 2015-04-28 | Joyent, Inc | Provisioning server resources in a cloud resource |
US8515726B2 (en) | 2010-01-20 | 2013-08-20 | Xyratex Technology Limited | Method, apparatus and computer program product for modeling data storage resources in a cloud computing environment |
US8627426B2 (en) * | 2010-04-26 | 2014-01-07 | Vmware, Inc. | Cloud platform architecture |
US8799453B2 (en) * | 2010-10-20 | 2014-08-05 | Microsoft Corporation | Managing networks and machines for an online service |
US8612599B2 (en) * | 2011-09-07 | 2013-12-17 | Accenture Global Services Limited | Cloud service monitoring system |
US20130073667A1 (en) * | 2011-09-20 | 2013-03-21 | Cloudbyte, Inc. | Techniques for administering and monitoring multi-tenant storage |
-
2011
- 2011-11-29 US US13/306,283 patent/US20130138798A1/en not_active Abandoned
-
2012
- 2012-03-09 US US13/417,052 patent/US9274850B2/en not_active Expired - Fee Related
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060268321A1 (en) * | 2005-05-27 | 2006-11-30 | Computer Associates Think, Inc. | Method and system for scheduling jobs in a computer system |
US20100058352A1 (en) * | 2008-09-02 | 2010-03-04 | Computer Associates Think, Inc. | System and Method for Dynamic Resource Provisioning for Job Placement |
US20100153482A1 (en) * | 2008-12-10 | 2010-06-17 | Full Armor Corporation | Cloud-Based Automation of Resources |
US20110225299A1 (en) * | 2010-03-12 | 2011-09-15 | Ripal Babubhai Nathuji | Managing performance interference effects on cloud computing servers |
US20120066670A1 (en) * | 2010-07-09 | 2012-03-15 | Mccarthy Christopher | Systems and Methods for Private Cloud Computing |
Cited By (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130275598A1 (en) * | 2012-04-16 | 2013-10-17 | Siemens Aktiengesellschaft | Method For Providing Resources In A Cloud, And Associated Apparatus |
US10007542B2 (en) | 2012-05-03 | 2018-06-26 | Vmware, Inc. | Virtual machine placement with automatic deployment error recovery based on a status log maintained during deployment |
US20130297964A1 (en) * | 2012-05-03 | 2013-11-07 | Vmware, Inc. | Virtual Machine Placement With Automatic Deployment Error Recovery |
US8843935B2 (en) * | 2012-05-03 | 2014-09-23 | Vmware, Inc. | Automatically changing a pre-selected datastore associated with a requested host for a virtual machine deployment based on resource availability during deployment of the virtual machine |
US9870243B2 (en) | 2012-05-03 | 2018-01-16 | Vmware, Inc. | Virtual machine placement with automatic deployment error recovery |
US20140013321A1 (en) * | 2012-07-05 | 2014-01-09 | Telefonica, S.A. | Method for providing cloud computing resources |
US20150039768A1 (en) * | 2013-08-05 | 2015-02-05 | Verizon Patent And Licensing Inc. | Virtualization of management services in a cloud computing environmemt |
US10291475B2 (en) * | 2013-08-05 | 2019-05-14 | Verizon Patent And Licensing Inc. | Virtualization of management services in a cloud computing environment |
EP2919438A1 (en) * | 2014-03-10 | 2015-09-16 | Deutsche Telekom AG | Method and system to estimate user desired delay for resource allocation for mobile-cloud applications |
WO2015135834A1 (en) | 2014-03-10 | 2015-09-17 | Deutsche Telekom Ag | Method and system to estimate user desired delay for resource allocation for mobile-cloud applications |
US10200446B2 (en) | 2014-03-10 | 2019-02-05 | Deutsche Telekom Ag | Method and system to estimate user desired delay for resource allocation for mobile cloud applications |
US9524228B2 (en) | 2014-10-27 | 2016-12-20 | International Business Machines Corporation | Predictive approach to environment provisioning |
US10031838B2 (en) | 2014-10-27 | 2018-07-24 | International Business Machines Corporation | Predictive approach to environment provisioning |
US9952964B2 (en) | 2014-10-27 | 2018-04-24 | International Business Machines Corporation | Predictive approach to environment provisioning |
US9430750B2 (en) | 2014-10-27 | 2016-08-30 | International Business Machines Corporation | Predictive approach to environment provisioning |
US10503548B2 (en) | 2016-10-11 | 2019-12-10 | Microsoft Technology Licensing, Llc | Resource and latency estimation-based scheduling in a distributed computing environment |
CN111382935A (en) * | 2020-03-05 | 2020-07-07 | 海南电网有限责任公司 | Method, device and system for adjusting peak shaving auxiliary service |
Also Published As
Publication number | Publication date |
---|---|
US9274850B2 (en) | 2016-03-01 |
US20130138806A1 (en) | 2013-05-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9274850B2 (en) | Predictive and dynamic resource provisioning with tenancy matching of health metrics in cloud systems | |
US10958515B2 (en) | Assessment and dynamic provisioning of computing resources for multi-tiered application | |
US11403125B2 (en) | Optimizing the deployment of virtual resources and automating post-deployment actions in a cloud environment | |
US9396008B2 (en) | System and method for continuous optimization of computing systems with automated assignment of virtual machines and physical machines to hosts | |
US10169095B2 (en) | Automated capacity provisioning method using historical performance data | |
US9152443B2 (en) | System and method for automated assignment of virtual machines and physical machines to hosts with right-sizing | |
EP3550426B1 (en) | Improving an efficiency of computing resource consumption via improved application portfolio deployment | |
US9043787B2 (en) | System and method for automated assignment of virtual machines and physical machines to hosts | |
US8738333B1 (en) | Capacity and load analysis in a datacenter | |
US10929792B2 (en) | Hybrid cloud operation planning and optimization | |
US20200034745A1 (en) | Time series analysis and forecasting using a distributed tournament selection process | |
US10120724B2 (en) | Optimized resource metering in a multi tenanted distributed file system | |
US10142179B2 (en) | Selecting resources for automatic modeling using forecast thresholds | |
US9875169B2 (en) | Modeling real capacity consumption changes using process-level data | |
CN103995728A (en) | System and method for determining when cloud virtual machines need to be updated | |
US9423957B2 (en) | Adaptive system provisioning | |
US20210004000A1 (en) | Automated maintenance window predictions for datacenters | |
US10255165B2 (en) | Run time automatic workload tuning using customer profiling workload comparison | |
US20220382603A1 (en) | Generating predictions for host machine deployments | |
US20200401947A1 (en) | Workload tenure prediction for capacity planning | |
US20170308482A1 (en) | Cost Effective Service Level Agreement Data Management | |
US9553827B2 (en) | Automatic modeling of virtual resources with sizing recommendations | |
US11086749B2 (en) | Dynamically updating device health scores and weighting factors | |
US20170351593A1 (en) | Performance change predictions | |
US20240086203A1 (en) | Sizing service for cloud migration to physical machine |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: INTERNATIONAL BUSINESS MACHINES CORPORATION, NEW Y Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:GOHAD, ATUL A.;PONNALAGU, KARTHIKEYAN;REEL/FRAME:027292/0076 Effective date: 20111124 |
|
STCB | Information on status: application discontinuation |
Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION |