Abstract:
A technique for evaluating service level agreement (SLA) violations occurring in a computing system with agreed-upon model for exemptions is provided. The technique includes storing in a memory a model of the SLA and identifying occurrence of an SLA violation in a computing system that is providing services under the SLA. Based on the stored model, the technique further determines if the SLA violation is exempted from a penalty.

Description:
BACKGROUND 
       [0001]    Many businesses outsource portions of their information technology (IT) needs to IT outsourcing providers. These providers usually make their business more efficient by constructing large data centers. The data centers offer a variety of different computing resources and services to multiple customers, each of whom may have different IT requirements. The relationship between the providers and their customers is typically governed by a Service Level Agreement (SLA) that sets forth the provider&#39;s various objectives regarding the level of service that will be available to a particular customer and the penalties that will be incurred if the service level objectives are not met. For instance, depending on a level of service selected by a customer, the SLA may specify time windows (i.e., the days of the week and hours) of availability and certain performance metrics or quality of service (QoS) guarantees, such as the percentage availability of the services during the time windows, average response time of the service, etc. The terms of SLAs also typically include limitations that may exempt the service provider from meeting its objectives, such as brown-out conditions, force majeure events, etc. 
         [0002]    However, in many instances, the service provider and the service recipient have not formally or completely defined the underlying details of the limitations and exemptions in the SLA. Thus, when an SLA violation has occurred, the parties often are faced with resolving the issue through an arbitration process in which the parties deliberate whether or not a specific failure to meet an objective is the fault of the service provider and whether or not a penalty should be assessed as a result of the violation. This process is time-consuming and costly and potentially results in friction between the service provider and customer. 
     
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         [0003]    Some embodiments of the invention are described with respect to the following figures: 
           [0004]      FIG. 1  is a block diagram of an exemplary computing system that provides information technology services to customers in accordance with an embodiment of the invention. 
           [0005]      FIG. 2  is a block diagram illustrating exemplary inputs to and an output from an exemplary SLA modeling tool, in accordance with an embodiment of the invention. 
           [0006]      FIG. 3  is a flow diagram of an exemplary technique using the output of the SLA modeling tool to evaluating whether an SLA violation is exempt from a penalty assessment, in accordance with an embodiment of the invention. 
       
    
    
     DETAILED DESCRIPTION 
       [0007]      FIG. 1  illustrates an exemplary arrangement of a computing system  100 , such as a complex IT system or shared hosting environment, in which the control techniques and systems of the present invention may be implemented. In this example, computing system  100  includes multiple data centers  102 ,  104  to provide a shared hosting platform. In the embodiment shown, the data center  102  includes a plurality of servers  106 ,  108 ,  110  and storage devices  112 ,  114 ,  116  that are configured to store data associated with the servers  106 - 110 . The servers  106 - 110  and storage devices  112 - 116  are interconnected by an interconnect  118 , that may include, for instance, system buses, fast interconnects, a local area network, a wide area network, a storage area network, or any other type of communication link. Although three servers  106 - 110  and three storage devices  112 - 116  are depicted in  FIG. 1 , it is understood that the data center  102  may include more than three servers and three storage devices, depending on the particular application in which the data center  102  is employed. The servers may be, for example, application servers, storage servers, web servers, etc. Further, although each of the servers is depicted in  FIG. 1  as being contained within a box, a particular server may be a distributed machine, which has multiple nodes that provide a distributed and parallel computing system. Moreover, each box is not necessarily representative of a physical machine but may, in fact, represent a virtual instance of a server. 
         [0008]    The storage devices  112 - 116  are adapted to store data associated with the servers  106 - 110 . Each of the servers  106 - 110  could be coupled to one or more of the storage devices  112 - 116 , and each of the servers  106 - 110  could access the storage devices  112 - 116  for storing and/or retrieving data from those devices. Each of the storage devices  112 - 116  could be an independent memory bank. Alternatively, the devices  112 - 116  could be interconnected, thus forming a large memory bank or a subcomplex of a large memory bank. The devices  112 - 116  may be, for example, magnetic memory devices, optical memory devices, flash memory devices, etc., depending on the particular implementation of system  100  in which the devices are deployed. 
         [0009]    The data center  102  also includes a control system  120  for controlling various aspects of the data center  102 . For instance, the control system  120  may include a user interface  140  for relaying information regarding the performance of the system to the system operator and/or for inputting various parameters for controlling the data system  102 . The control system  120  also may include various software tools, such as a performance monitoring tool  122 , a hardware or operations monitoring tool  124 , an SLA modeling tool  126 , and other tools (e.g., a failure analysis tool) to facilitate the control and monitoring of the data center  102 , as will be explained in further detail below. To implement these various features, the control system  120  includes a memory  128  for storing the software tools and other applications and instructions of software that are executed by a processor  130 . 
         [0010]    Although the tools  122 ,  124  and  126  are shown as separate modules in  FIG. 1 , it should be understood that the tools  122 - 126  may be part of an integrated management application that is implemented by the control system  120 . Such a management application may include additional or different tools and features than those illustrated in  FIG. 1 . Also, although control system  120  is illustrated as located at the data center  102 , the control system  120  may be located at another data center, distributed across multiple data centers, or may be located at a standalone location remote from any data center. Yet further, each data center may include its own control system  120  that cooperates with other control systems  120  as may be appropriate to accomplish various tasks, such as the tasks described herein. 
         [0011]    The data center  102  further includes various hardware resources  132  used for the operation of the data center  102 . These hardware resources  132  may include, for example, power supplies, air conditioning systems, network routers, etc., and may be coupled to the servers  106 - 110  and storage devices  112 - 116  via an appropriate interconnect  142 . The hardware resources  132  also may be coupled to the control system  120  via an interconnect  144  that is configured to conduct various signals, such as electrical power and control and monitoring signals. In some embodiments, the hardware resources may be configured in a redundant manner, such that certain of the resources are available for use as backup resources. As shown in  FIG. 1 , the hardware resources  132  may receive electrical power from a power grid (e.g. a public power utility) through one or more power connections  146 . 
         [0012]    The data center  104  may include similar features, but is located remote from the data center  102 . To provide for redundancy measures, the data center  104  also may be independent of the data center  102 . The data centers  102  and  104  are connected to each other and to a plurality of customers  134 ,  136 ,  138  through a network  140 . The network  140  may include, for instance, the Internet, a proprietary wide area network, a storage area network, or any other type of appropriate communication link. Further the network  140  may include a plurality of communication links that are arranged in a redundant manner. 
         [0013]    When customers outsource their IT services to a service provider, the terms of the parties&#39; relationship typically are set forth in a service level agreement (SLA). Generally, the SLA includes, among other terms, agreed-upon Service Level Objectives (SLOs), limitations on those objectives, and penalties that may be assessed on the service provider for failure to meet some of the objectives or a weighted rank for the whole SLA. In a general sense, the SLOs represent the level of service contracted for by the customer and may include, for instance, the percentage service availability during a specified time window (e.g., 99.95% availability from 8:00 a.m.-11:00 p.m. EST Monday-Friday), the maximum allowable response time for service requests during the time window (e.g., 3 seconds), etc. Other objectives may include average throughput, CPU cycles, etc. The SLA typically also sets forth a requirement to provide a periodic report that indicates whether the provider has met its SLOs and/or whether penalties for SLA violations have been assessed. To implement the reporting requirement, the data center  102  may include the performance monitoring tool  122  which is configured to observe performance parameters and assess whether the SLA objectives have been met during the reporting time period. 
         [0014]    To determine whether the IT provider is meeting its agreed-upon objectives, performance metrics are monitored and collected on a periodic basis. Typically, the performance metrics are monitored using a monitoring tool that measures selected performance parameters, such as CPU usage, processing time, resource availability, network traffic, etc. The monitored parameters may then be used to adjust the performance of the system, such as by re-allocating shared resources, or to take other corrective action as may be needed (e.g., re-routing network traffic). When the performance parameters indicate that provided service is not in compliance with the objectives set forth in an SLA, then a violation has occurred and a penalty may be assessed. Penalties may be in the form of monetary payments, credits to the customer for the current or a future billing cycle, or any other agree-upon remuneration to compensate the customer for the failure to meet the SLOs. 
         [0015]    Regardless of the form of the penalty, whether a penalty is imposed and the size of that penalty are dependent on the terms set forth in the SLA. Typically, penalties will be larger for customers that have contracted for a higher level of service. Generally, a higher level of service guarantees requires greater degrees of redundancy within the data center. If the customer is willing to invest in redundancy and, thus, the higher service level, more severe penalties are warranted if the service provider does not meet its objectives. If the customer is unwilling to invest in redundancy measures, then the risk increases that SLA objectives may not always be met. 
         [0016]    The terms of each SLA will vary depending on the level of service desired by a customer. For instance, customers that desire a higher level of service may be willing to pay for more costly redundancy measures, as redundancy is the standard method to ensure continuous service levels, yet with an associated cost. In return for this investment by the customer, the service provider may agree to guarantee a higher percentage of availability and to expose itself to the assessment of higher penalties for SLA violations. Various redundancy measures may be offered by the service provider to the customer. As an example, different levels of redundancy measures may be implemented in the software resources, the database resources, and the hardware/operational resources. With respect to the software resources (e.g., application servers), the service provider may offer multiple options, including no redundancy, redundancy within a single data center only, or redundancy across multiple data centers. With respect to the database resources, the service provider again may offer multiple options, including no redundancy, periodic live backups of data, or cloning of one or more database servers at a remote independent data center. Likewise, multiple options may be offered with respect to the hardware/operational resources, such as redundant power supplies at one or more data centers, redundant network connections between the data centers and the customer, redundant air conditioning system at one or more data centers, redundant connections to a public electricity grid, cooling systems etc. 
         [0017]    Depending on the redundancy measures selected by the customer, the parties may agree that certain terms may be included in the SLA that place conditions or limitations on the guaranteed level of service. For instance, if the customer opts for a level of service that does not provide for power supply redundancy, then the SLA may include an agreed-upon limitation that does not guarantee any service upon occurrence of a brown-out condition or a power outage caused by a force majeure event. Similarly, if the level of service does not include network redundancy, then the SLA may include an agreed-upon limitation that does not guarantee any level of service upon loss of connectivity due to a network provider outage. On the other hand, if the customer selects a higher level of service that does include some power supply redundancy and/or network, then the SLA may include an agreed-upon limitation, for instance, that the SLA objective will be met for a period of “x” hours after occurrence of a power outage event or that the percentage availability will be maintained for up to “y” network outages. The SLA may further provide that if a limitation on an SLO is triggered, then one or more related SLA violations are exempted from any penalty. Unfortunately, while the parties may well remember these agreed-upon performance limitations for some period of time after the SLA is negotiated, the passage of time generally ensures that the parties&#39; intent with regard to the details of the limitations will be forgotten, especially when they are not defined and/or formalized in an understandable manner. As a result, disputes between the provider and its customers may arise regarding whether penalties should be assessed for certain SLA violations. 
         [0018]    To help avoid this situation, the terms of an SLA may be modeled to formally define in a programmatically understandable manner when there is an agreed-upon reason to exempt SLA violations. By defining these “limitation rules”, the SLA model allows an automatic association to be made between a service level violation and a possible exemption. If a violation can be associated with an exemption, then the violation may be automatically cleared as an exempted situation that has been pre-approved by both parties to the SLA. The provision of this automatic feature will reduce the need to manually evaluate SLA violations and determine whether exemptions apply. 
         [0019]    To generate the set of rules, and as shown in  FIG. 2 , the terms of the SLA are input to the SLA modeling tool  126 . These terms includes SLA objectives  204 , limitations  206 , and penalties  208 . Using these inputs, the SLA modeling tool  126  may generate a set of rules  210  that objectively defines exemptions of penalties if limitations on SLOs are triggered. These rules mark specific devices (Configuration Items) or ‘connections’ between these devices. Each marked entity, that has a service failure report against it for a certain period of time, will automatically exempt all business services covered by the relevant SLA that are topologically dependent on it. 
         [0020]    With reference now to the technique  300  shown in the flow diagram of  FIG. 3 , once the set of objective rules  210  is defined by the SLA modeling tool  126  (block  302 ), monitoring and analysis of various performance parameters associated with the system  100  may be implemented to compute SLA ratings that may be compared to the agreed-upon objectives (blocks  304  and  306 ). Such monitoring and analysis of performance parameters may be performed using a variety of available performance monitoring tools  122 , such as the HP Business Availability Center (BAC), available from Hewlett-Packard Co. The monitoring of the performance parameters and determination of SLA ratings typically is performed on a periodic basis, and is usually associated with billing periods. Determining SLA ratings frequently (e.g., daily) may help avoid the impositions of penalties since violations or potential violations may be detected and resources reallocated to bring the SLA ratings within the level of service set forth in the SLA. 
         [0021]    An SLA violation may be detected by comparing the SLA ratings to the SLOs  204  that were input to the SLA modeling tool  126 . If the comparison does not indicate the occurrence of an SLA violation (diamond  308 ), then the technique  300  continues to monitor system performance and determine SLA ratings. If an SLA violation is detected (diamond  308 ), the root cause for the violation may be identified (block  310 ). A root cause analysis may be performed in a variety of manners known in the industry, such as through use of an available failure analysis tool (e.g., HP Business Availability Center (BAC)—Problem Diagnostics Sub-system, available from Hewlett-Packard Co.), and generally entails associating an observed event (e.g., loss of power, loss of network connection, high demand for service, etc.), within its failure time-slice with the occurrence of the SLA violation. The set of rules  210  corresponding to the SLA model may then be used to determine whether or not the SLA violation is a pre-approved exemption for which a penalty will not be assessed (diamond  312 , blocks  314 ,  316 ). A periodic report may be generated that indicates the result of the analysis (block  318 ). 
         [0022]    The technique  300 , or portions thereof, described with reference to  FIG. 3  may be implemented as part of the performance monitoring tool  122 , the hardware monitoring tool  124 , the SLA modeling tool  126  and/or other tools or applications stored in the memory  128  of the control system  120 . Although specific steps are shown in  FIG. 3 , it should be understood that the technique  300  could include fewer or additional steps than those illustrated. 
         [0023]    Generation of a report that automatically identifies exemptions for SLA violations (block  318  in  FIG. 3 ) eliminates the need for a time-consuming and potentially contentious arbitration process. In some embodiments of the invention, the report may also identify the particular clause in the SLA that contains the exemption so that the parties may more easily confirm that the report accurately reflects their prior agreement. The report also may be a useful tool for the customer to evaluate the desirability of investing in higher levels of service. For instance, the report may reveal that the customer&#39;s selection of a low level of service unavoidably results in many incidents in which the customer&#39;s desired service objectives are not achieved but which are exempted by the limitations set forth in the SLA. Thus, the results of the SLA model may be used as a tool that the parties can use to realistically evaluate investment decisions and to define and negotiate SLOs and exemptions. 
         [0024]    The results of the SLA modeling technique described herein also may be used to highlight specific infrastructure areas that regularly cause objective service outages. The service provider can use the SLA model to improve the infrastructure and thus avoid SLA violations that do result in penalties. 
         [0025]    The SLA modeling technique also may be extended for use in situations in which the customer agrees that the IT provider may provide multiple services that share the same resource. Such a situation may occur, for instance, where the customer consents to use of a single server to host multiple services. Here, if the server fails, multiple service failures will result, potentially creating the situation where the customer demands the assessment of separate penalties for each service outage. However, since the customer consented to the use of a shared resource, the SLA should include a limitation specifying that a single failure of the shared server will not result in multiple penalties. By modeling the parties&#39; agreement using the SLA modeling technique described herein, the details of the multiple service outages may be readily captured. If the set of rules corresponding to the SLA reflects that only a single penalty will be imposed in this situation, then additional penalties will be considered exemptions that have been pre-approved by the customer. 
         [0026]    Instructions of software described above (including the performance monitoring tool  122 , hardware monitoring tool  124 , SLA modeling tool  126 , and technique  300 ) are loaded for execution on a processor (such as one or more CPUs  130  in  FIG. 1 ). The processor includes microprocessors, microcontrollers, processor modules or subsystems (including one or more microprocessors or microcontrollers), or other control or computing devices. As used here, a “controller” refers to hardware, software, or a combination thereof. A “controller” can refer to a single component or to plural components (whether software or hardware). 
         [0027]    Data and instructions (of the software) are stored in respective storage devices, which are implemented as one or more computer-readable or computer-usable storage media (such as a memory  128  shown in  FIG. 1 ). The storage media include different forms of memory including semiconductor memory devices such as dynamic or static random access memories (DRAMs or SRAMs), erasable and programmable read-only memories (EPROMs), electrically erasable and programmable read-only memories (EEPROMs) and flash memories; magnetic disks such as fixed, floppy and removable disks; other magnetic media including tape; and optical media such as compact disks (CDs) or digital video disks (DVDs). 
         [0028]    The tasks of  FIGS. 2 and 3  may be provided in the context of information technology (IT) services offered by one organization to another organization. For example, the infrastructure (such as the infrastructure shown in  FIG. 1 ) may be owned by a first organization. The IT services may be offered as part of an IT services contract, for example. 
         [0029]    In the foregoing description, numerous details are set forth to provide an understanding of the present invention. However, it will be understood by those skilled in the art that the present invention may be practiced without these details. While the invention has been disclosed with respect to a limited number of embodiments, those skilled in the art will appreciate numerous modifications and variations therefrom. It is intended that the appended claims cover such modifications and variations as fall within the true spirit and scope of the invention.