Service availability risk

A processor receives service availability data for at least one service, where the service availability data indicates an amount time the at least one service was available and an amount of time one or more resources utilized in the service was available. A processor receives service configuration data for the service, where the service configuration data indicates one or more resource requirements of the at least one service. A processor determines one or more resource unavailability scores for the one or more resources utilized in providing the service. A processor determines one or more resource replacement scores for the one or more resources utilized in the service. A processor determines availability risk scores for the at least one service based on the one or more resource unavailability scores and the one or more resource replacement scores. A processor generates an indication of at-risk services of the at least one service.

BACKGROUND OF THE INVENTION

The present invention relates generally to the field of service availability, and more particularly to the potential risk of a resource involved in providing the service becomes unavailable.

Service availability is an important metric of systems that provide a service to users. Typically, service availability is measured by uptime, or the amount of time users can access a service over a given period of time. For the time that a service is unavailable, the service accrues downtime during the given period of time. The ratio of uptime versus downtime indicates a service's availability. High service availability is sought after by service providers, since large portions of downtime greatly impact users' access to the service.

SUMMARY

Embodiments of the present invention provide a method, system, and program product to generate lists of at-risk services. A processor receives service availability data for at least one service, where the service availability data indicates an amount time the at least one service was available and an amount of time one or more resources utilized in providing the service was available. A processor receives service configuration data for the service, where the service configuration data indicates one or more resource requirements of the at least one service. A processor determines one or more resource unavailability scores for the one or more resources utilized in providing the service. A processor determines one or more resource replacement scores for the one or more resources utilized in providing the service. A processor determines one or more availability risk scores for the at least one service based, at least in part, on the one or more resource unavailability scores and the one or more resource replacement scores. A processor generates an indication of at-risk services of the at least one service based on the one or more availability risk scores for the at least one service exceeding a predetermined threshold.

DETAILED DESCRIPTION

While solutions to determining service availability are known, they typically provide only historical metrics. Embodiments of the present invention recognize that by analyzing information regarding resources involved in providing a service, a possible risk of a resource impacting service availability can be provided to a service provider. Furthermore, by analyzing potential replacements for the resource impacting service availability, embodiments of the present invention provide action plans for handling possible downtime risk due to a resource becoming unavailable during operation of a service. By identifying resources that may impact a service's availability and determining a risk associated with the resource becoming unavailable, embodiments of the present invention provide improvements to a computing platform providing said service by increasing uptime by presenting potential resource gaps that may later increase downtime of said service.

The present invention will now be described in detail with reference to the Figures.FIG. 1is a functional block diagram illustrating networked environment, generally designated100, in accordance with one embodiment of the present invention. Networked environment100includes service provider110and user device(s)120a-nconnected over network130. Service provider110includes service program112, monitoring program113, availability program114, resource data116, configuration data117, and availability data118. User devices120a-ninclude respective client program(s)122a-n.

In various embodiments of the present invention, service provider110and user device(s)120a-nare computing devices that can be a standalone device, a server, a laptop computer, a tablet computer, a netbook computer, a personal computer (PC), or a desktop computer. In another embodiment, service provider110or user device(s)120a-nrepresent a computing system utilizing clustered computers and components to act as a single pool of seamless resources. In general, service provider110or user device(s)120a-ncan be any computing device or a combination of devices with access to resource data116, configuration data117, and availability data118and is capable of executing service program112, monitoring program113, availability program114, and user program(s)122a-n. Service provider110and user device(s)120a-nmay include internal and external hardware components, as depicted and described in further detail with respect toFIG. 4.

In this exemplary embodiment, service program112, monitoring program113, availability program114, resource data116, configuration data117, and availability data118are stored on service provider110. However, in other embodiments, service program112, monitoring program113, availability program114, resource data116, configuration data117, and availability data118may be stored externally and accessed through a communication network, such as network130. Network130can be, for example, a local area network (LAN), a wide area network (WAN) such as the Internet, or a combination of the two, and may include wired, wireless, fiber optic or any other connection known in the art. In general, network130can be any combination of connections and protocols that will support communications between service provider110and user devices120a-n, in accordance with a desired embodiment of the present invention.

In various embodiments, service provider110provides a service to user devices120a-n. Service program112provides data to client programs122a-nregarding the service provided. One of ordinary skill in the art will appreciate that any service may be provided by service provider110to user devices120a-nwithout deviating from the scope of the invention. For example, service provider110provides distributed computing or virtualization services. As another example, service provider110provides software services such as an e-commerce store or a payroll application. Service provider110includes various resources to perform operations and functions associated with the provided service. Resources include, but are not limited to, hardware resources (e.g., systems, servers, and subsystems or components of said systems and servers), software resources (e.g., programs, operating systems and firmware installed on various hardware services), and networking resources (e.g., infrastructure and connections to provide distribution and communication with the hardware and software resources, in addition to communicating with user devices120a-n).

In various embodiments, resource data116includes information indicating the various resource currently utilized in providing a service. Resource data116includes information including identifiers or other information indicative of the various hardware resources, software resources and networking resources used in providing a service or functions of a service. Additionally, resource data116includes the information indicative of the parts, components or software associated with a resource. For example, a server is utilized in providing a service and is identified in resource data116by a media access control (MAC) number or an internet protocol (IP) number resource data116also includes the processor type and amount of storage associated with this particular server. As another example, software resources in resource data116are identified by a name and associated with a version number. In various embodiments, resource data116also includes information regarding resources not currently used in a service. As discussed herein, such resources are candidate replacements for the utilized resources.

In various embodiments, configuration data117includes data indicative of the resource requirements of services. Configuration data117includes the types of resources required to perform a service. For example, the servers, databases, programs and network infrastructure necessary to provide a service. In some embodiments, service provider110provides multiple services or utilizes multiple services to provide a service. In such embodiments, one or more services may depend on functionality provided by another service. In these scenarios, configuration data117includes the dependency or service chain between services. For example, service provider110provides user devices120a-na payroll application service. In order to provide the necessary functionality, service provider110includes a timesheet application service to retrieve hours worked and other information necessary for payroll. As such, the payroll service depends upon the timesheet service. If the timesheet service became unavailable then the payroll service, that depends on the timesheet service, would also be unavailable. Configuration data117indicates this dependency among the services.

In various embodiments, monitoring program113monitors the activity and availability of the services provided by service provider110. Additionally, monitoring program113monitors the availability of resources for each service. Monitoring program113keeps track of each service and resource, storing the amount of uptime and downtime for both in availability data118. As resources become unavailable, monitoring program113stores indications of the resources that are down and the services the resources impact.

In various embodiments, availability program114provides indications to a user of service provider110of services or resources at risk of becoming unavailable. Availability program114retrieves availability data114. Availability program114determines a score for each resource's predicted unavailability. Based on past downtime, availability program114determines the probability that a resource will become unavailable for a period of time in the future. In some embodiments, availability program114determines an unavailability score for each resource's predicted unavailability based on the lifetime or age of the resource. For example, availability program114assigns a higher unavailability score to an older resource compared to resource more recently deployed.

In various embodiments, availability program114determines a score for each resource's replacement. The replacement score identifies the ease of or ability to find a replacement for the resource. Availability program114receives data of potential replacements for a resource. In some embodiments, availability program114compares the potential replacements to configuration data117. Potential replacements that meet or exceed the resource requirements are included in further analysis. In some embodiments, availability program114considers potential replacements that do not currently meet the resource requirements, but may be configured to meet the requirements. For example, a server does not currently have a required software resource installed. Given that the server meets the hardware resource requirements, availability program114includes the server as a potential candidate. In such embodiments, availability program114assigns a weight to each resource based on the match of the resource requirements for a replacement.

In various embodiments, availability program114determines a replacement score for a currently employed resource based on the amount of potential replacement candidates. The larger the number of replacement candidates, the higher the replacement score. Due to a larger selection of potential replacement candidates, replacing a resource due to potential downtime becomes a more feasible solution. However, if a replacement is less feasible (i.e., a lower replacement score), then potential downtime is more impactful. By comparing the ratio of a resource's unavailability score to the resource's replacement score, availability program114determines an availability risk score for a resource. Resources with less potential downtime, or lower unavailability scores, have less risk of becoming unavailable. Resources that are easily replaced, or have high replacement scores, also have less risk of becoming unavailable. As unavailability rises and replacement lessens, the risk for a resource to become unavailable for greater periods of time increases.

In various embodiments, availability program114determines affected services based on the availability risk score for resources of each service and the dependency of services an indicated in configuration data117. For example, if a subsystem or component service becomes unavailable, parent services or services that rely upon the unavailable service also become unavailable. When a resource's availability risk score is above a certain threshold, the resource is at risk of becoming unavailable. Availability program114identifies each resource and system impacted by the resources unavailability and provides an indication that the dependent resources and services are also at risk of becoming unavailable. In some embodiments, a component resource or service has less impact on a dependent service. For example, a database or storage system may be redundant or mirrored on another resource. In such embodiments and scenarios, availability program114assigns a weight to each redundant resource and combines the availability risk score for each resource as a weighted sum (e.g., both redundant storage resource is assigned a uniform or one-half weight when combined).

In various embodiments, availability program114provides an action plan based on the availability risk score, the unavailability score and the replacement score. When a resource fails below a predetermined availability risk score, availability program114provides an indication of the resource, and services, that are at risk of being unavailable. Furthermore, availability program114provides an action plan when the resource exceeds a predetermined availability risk score. If the replacement score is above a predetermined value, then availability program114suggests finding a replacement for the resource. If the replacement score is low, then availability program114suggests maintenance or a different configuration. In various embodiments, monitoring program113collects availability data118for each resource, updating availability data118with any new downtime or uptime of resources and services. Availability program114recalculates the availability risk score, the unavailability score and the replacement score for each resource and service based on the updated availability data118, thereby providing up to date indications and action plan for the resources used in providing services of service provider110.

In some embodiments, resource data116includes an indication or association of one or more operators or administrators to a resource. In such embodiments, the operators or administrators provide support for the operation and functionality of the resources utilized in providing a service. When determining a resources unavailability score, availability program114includes the probability one or more operators of the resource will leave or no longer be able to provide support for the resource. For example, as an operator approaches retirement age, availability program114increases the probability a resource will become unavailable, as the operator will no longer be able to support the resource.

In some embodiments, availability program114includes potential replacement operators or administrators when determining a replacement score for a resource. If a replacement for an operator can easily be found, then the replacement of the operator has less impact on the resource than for operators that cannot be replaced. As such, resources data116also includes information indicating the skills of operators and potential replacement candidates. For potential replacement candidates for an operator, availability program114identifies of potential operators that match or exceed the skill of the currently utilized operator. If few potential operators are present in resource data116, then availability program114determines a lower resource replacement score.

FIG. 2illustrates operational processes, generally designated200, of availability program114. In process202, availability program114receives availability data118associated with the services provided by service provider110and the corresponding resources utilized in the services. Availability data118provides historic availability information regarding the uptime and downtime of services and the component resources utilized in the services. In process204, availability program114receives configuration data117associated with services in the retrieved availability data118.

In process206, availability program114identifies the interactions or dependencies for each service. Availability program114identifies the systems, subsystems, programs and other services utilized by each service. For example, a webserver service utilizes a database service, indicating that the webserver service is dependent upon the database service. Referring toFIG. 3A, an example interaction diagram310is illustrated. An information management system is provided as a service which in turn utilizes a multiple virtual storage system. The multiple virtual storage system relies upon a firewall service provided by a firewall management system.

Referring back to process206ofFIG. 2, availability program114identifies the resources utilized by each service. Availability program114identifies the resources utilized based on configuration data117and resource data116. Referring toFIG. 3B, an example component resource diagram320is illustrated for the firewall management system. Each component resource is identified (e.g., a server is identified with a MAC address, an OS is identified by a version number, and the network infrastructure is identified with the IP address of the network). Additionally, each configuration of the component resources is identified. For example, the server has a certain processor, memory and storage, the OS has certain application installed, and the network infrastructure has certain routers and switches.

In process208ofFIG. 2, availability program114determines a resource unavailability score for each service. Based on historic availability data118, availability program114determines the probability that the resource may become unavailable in the future. For resources with more downtime, availability program114assigns higher resource unavailability score than resources with less downtime (i.e., more uptime). In some embodiments, availability program114analyzes the entire historic availability data118for a resource. In other embodiments, availability program114analyzes availability data118up to a date in the past (e.g., last six months, last week, etc.). In some embodiments, availability program114applies a weight to the historic availability data118. Availability program114applies a larger weight to more recent availability data118, reflecting current performance of the resource. In some embodiments, availability program114also incorporates additional information in the determination of the resource unavailability score. For example, availability program114includes the age or lifetime of the resource. As a resource is used, the potential need for maintenance or other scenarios where downtime may occur increases. As such, availability program114increase the resource unavailability score for older resources.

FIG. 3Cdepicts an example table of resource unavailability scores330. In some embodiments and scenarios, the resource unavailability scores330are determined based on a probability the resources associated with the score may become unavailable sometime in the future. For example, availability program114performs statistical analysis of historic downtime to determine the probability that a resource will become unavailable. In some embodiments, availability program114determines a probability that a resource will become unavailable based on the age, lifetime, or amount of use of the resource. As a resource incurs more usage, the probability the resource may become unavailable in the future increases. Looking at resource unavailability scores330ofFIG. 3C, Server 1:2:3:4 has a higher probability of unavailability when compared to OS 1.1 and Network Infrastructure 10.0.0.0.

In process210ofFIG. 2, availability program114determines a resource replacement score for each service. For each resource utilized in a service, availability program114determines a resource replacement score. Availability program114identifies suitable replacements based on configuration data117of the replacement resources. For replacement resources that meet or exceed the configuration of the utilized resources, availability program114identifies the matching replacement resources as candidates for replacement of the utilized resource. When a resource has a large number of candidate replacements, availability program114determines a higher resource replacement score than for a resource with less replacements. In some embodiments, availability program114changes the score based on a complexity of performing a replacement. For example, if installing a replacement for given resource takes longer than replacement for another resource (e.g., migrating large amounts of data, installing drivers, etc.), then availability program114decreases the resource replacement score for the resource with a more complex replacement process.

FIG. 3Ddepicts an example table of resource replacement scores340. In some embodiments and scenarios, availability program114determines resource replacement scores340based on the number of potential replacement candidates for a utilized resource. The greater number of candidates, availability program114determines a larger resource replacement score. In some embodiments, availability program114determines resource replacement scores340based on the complexity or difficulty of installing a replacement. Some resources require additional time or effort to be replaced. In such scenarios, availability program114decreases the resource replacement scores for comparatively hard or difficult to replace resources. Looking at resource replacement scores340ofFIG. 3D, servers with configuration x have a comparatively lower replacement score when compared to configuration y of the OS and configuration z of the network infrastructure.

In process212ofFIG. 2, availability program114determines an availability risk score for each utilized resource. Based on the ratio of the unavailability score for the resource and the replacement score for the resource, availability program114determines an availability risk score. Resources with high unavailability scores increases or positively correlate with the availability risk score. Resources with high replacement scores decrease or negatively correlate with the availability risk score. Resources with low unavailability scores, but have low replacement scores generate a greater availability risk score. For example, while a resource may have since considerable uptime, the act of replacement if required would put great downtime risk for the service due to lack of candidates or complexity. Conversely, a resource with a high replacement score can have a low availability risk, even if the resource has a greater unavailability risk (e.g., large amounts of historic downtime or potential to have downtime in the future). For example, if a resource is easily replaced, then the less risk the resource imposes on the service. Therefore, the availability risk score as discussed herein provides a quick compassion of two dimensions that greatly impact service availability and provide a strong indicator of resources that may impact downtime of a service in the future.

FIG. 3Edepicts an example table of availability risk scores350. Based on the ratio of resource unavailability scores330and resource replacement scores340, availability program114determines an availability risk score for each resource. When a greater probability of unavailability in conjunction with a low replacement score is determined, the greater risk that a service will be impacted in the future. Looking at availability risk scores350, Server 1:2:3:4 is at high risk of becoming unavailable due to both the comparatively high resource unavailability score and comparatively low resource replacement scores. OS 1.1 is least at risk due to the low resource unavailability score and high resource replacement score. Network Infrastructure 10.0.0.0 has comparatively moderate risk due to the high unavailability but also high replacement scores.

In process214ofFIG. 2, availability program114identifies services at risk of future downtime based on the availability risk scores determined in process212. If the availability risk score of resource for a service exceeds a predetermined threshold, then availability program114identifies the service associated with the resource to be at risk. In some embodiments, availability program114varies the predetermined threshold based on configuration data117. In some scenarios and embodiments, some resources have less impact on a service's availability. For example, a redundant storage system may still operate if an array of storage drives fail. Configuration data117includes separate availability risk score thresholds based on the impact of the resource of the services availability. In process216, availability program114generates an action plan for services determined to be at risk of becoming unavailable. Based on the range of values of both the unavailability score and the replacement score for the resource identified to be at risk in process214, availability program114provides an action plan for the identified at-risk resource. For example, if the resource has a replacement score above a predetermined threshold, then availability program114suggests a replacement. In some embodiments and scenarios, availability program114provides a candidate replacement resource indicated in resource data116. As another example, if the replacement score is below a pre-determined threshold, then availability program114provides a maintenance suggestion to improve the availability of the resource.

FIG. 3Fdepicts an example identified service availability diagram360with availability risk indicator362. Availability program114provides an indication of which services are at-risk for becoming unavailable in the future. In this example, a predetermined threshold for at-risk services indicated by availability risk scores equal to or above 0.5. In some embodiments, if any resource meets or exceeds the predetermined threshold, then availability program114determines the service is at risk. In this example, since both the server and network resources are at-risk, the corresponding firewall service is at-risk. In other embodiments, availability program114combines the availability risk scores of the resources as a weighted average, where critical resources are assigned a higher weight. For example, if the server resource was critical to operation but the OS was not, then a higher weight is applied to the availability risk score of the server when compared to the weight associated with the OS. In some embodiments, availability program114provides an availability risk indicator362when a service is at risk of becoming unavailable. Availability risk indicator362indicates the service affected by the potential resource downtime or replacement issues. In some embodiments, availability program114provides an action plan for at-risk resources. Based on the resource unavailability scores330and the resource replacement scores340, availability program114provides an action plan for the at-risk resources whose availability risk scores350exceed a predetermined threshold. In this example, since the replacement score for the server is comparatively low, availability program114provides a maintenance action plan. In such scenarios, availability program114provides user manuals and other materials for troubleshooting the resource. When looking at network 10.0.0.0, the replacement score for the network is comparatively higher. As such, availability program114provides a replacement action plan. In such scenarios, availability program114provides potential candidate resources in resource data116that meet or exceed the resource requirements indicated in configuration data117.

FIG. 4depicts a block diagram,400, of components of service provider110and user device(s)120a-n, in accordance with an illustrative embodiment of the present invention. It should be appreciated thatFIG. 4provides only an illustration of one implementation and does not imply any limitations with regard to the environments in which different embodiments may be implemented. Many modifications to the depicted environment may be made.

Service program112, monitoring program113, availability program114, resource data116, configuration data117, and availability data118and user program(s)122a-nare stored in persistent storage408for execution and/or access by one or more of the respective computer processors404via one or more memories of memory406. In this embodiment, persistent storage408includes a magnetic hard disk drive. Alternatively, or in addition to a magnetic hard disk drive, persistent storage408can include a solid state hard drive, a semiconductor storage device, read-only memory (ROM), erasable programmable read-only memory (EPROM), flash memory, or any other computer-readable storage media that is capable of storing program instructions or digital information.

Communications unit410, in these examples, provides for communications with other data processing systems or devices, including resources of network130. In these examples, communications unit410includes one or more network interface cards. Communications unit410may provide communications through the use of either or both physical and wireless communications links. Service program112, monitoring program113, availability program114, resource data116, configuration data117, and availability data118and user program(s)122a-nmay be downloaded to persistent storage408through communications unit410.

I/O interface(s)412allows for input and output of data with other devices that may be connected to service provider110and user device(s)120a-n. For example, I/O interface412may provide a connection to external devices418such as a keyboard, keypad, a touch screen, and/or some other suitable input device. External devices418can also include portable computer-readable storage media such as, for example, thumb drives, portable optical or magnetic disks, and memory cards. Software and data used to practice embodiments of the present invention, e.g., Service program112, monitoring program113, availability program114, resource data116, configuration data117, and availability data118and user program(s)122a-n, can be stored on such portable computer-readable storage media and can be loaded onto persistent storage408via I/O interface(s)412. I/O interface(s)412also connect to a display420.

It is to be noted that the term(s) “Smalltalk” and the like may be subject to trademark rights in various jurisdictions throughout the world and are used here only in reference to the products or services properly denominated by the marks to the extent that such trademark rights may exist.