The rise of cloud computing in organizations of different sizes provides faster and broader access to computing resources with reduced investments in hardware. Organizations that move application services to the cloud in many cases can free up personnel and funds that would otherwise be devoted to hosting applications, and thereby accelerate go-to-market strategies.
In order to avail itself of the advantages of moving an application service to the cloud relative to hosting the application internally, an organization's IT department typically is tasked with identifying the right cloud-based application deployment configuration for hosting the application in cloud service provider based on the business needs. As used herein, a cloud-based application deployment configuration (sometimes referred to herein as a “CAD configuration”) refers generally to a combination of software, platforms and/or infrastructure that enables an application to be accessed via an internet or intranet. In examples, a CAD configuration may include, but is not limited to, elements of a platform as a service configuration (“PaaS”) or elements of an infrastructure as a service configuration (“IaaS”). In examples, a CAD deployment configuration may be host an application in a public, private or hybrid network. In examples, the CAD deployment configuration may be implemented via a system including a large number of computers connected through a communication network such as the Internet. In some examples, the CAD deployment configuration may be facilitated utilizing virtual servers or other virtual hardware simulated by software running on an actual hardware component.
Choosing among the many various CAD configuration combinations for deployment of an application in the cloud can involve considering various factors such as security, performance, storage, availability and the cost structures associated with it. For example, some applications to be moved to the cloud will require high security and high performance. Other applications to be moved to the cloud may require high storage capacity and disaster recovery. Currently organizations typically have employees manually gather data and choose which CAD configuration to select for specific application deployment needs. This process can be time-consuming and expensive. Adding to the complication, application needs typically change over a period of time and the process of manually identifying an optimal CAD deployment configuration may need to be repeated each with each change.
To address these issues, various embodiments described in more detail below provide a system and a method to determine cloud-based application deployment configuration recommendations. In an example, performance data for a set of CAD configuration is received. In certain examples, the performance data includes performance data elements received over a time period. A database is generated, the database including associations of CAD configuration from the set with named performance features. The database additionally includes an association of performance scores to each of the named performance features. In examples, the performance data includes captured behavior data indicative of the first application in a plurality of cloud-based deployment configurations, and the performance scores are generated based upon the behavior data. In other examples, the performance scores may be scores generated based upon the performance data, the performance data being data included within a product manual, support matrix, performance test report, product website, data sheet, or pricing guide. A set of performance requirements for cloud-based deployment of a first application is received. A recommendation of a first configuration for cloud-based deployment of the application is determined based upon performance scores from the database. The determined recommendation is then sent to a computing device for display and/or to initiate execution of the application according to the recommendation.
In this manner, examples described herein may present an automated and efficient manner to enable determination of cloud-based application deployment configuration recommendations for applications. Disclosed examples provide a method and system to identify a best CAD deployment configuration based on an organization's application deployment requirements and scored behaviors of the application in multiple CAD deployment configurations. Examples described herein may consider application requirement parameters including, but not limited to, cost, performance, security, geographic location, reliability, high availability, and disaster recovery, etc. Examples described herein may enable organizations to share this system across teams within the organization, thus accomplishing significant savings in time and costs, and eliminating errors inherent with manual computations
The following description is broken into sections. The first, labeled “Environment,” describes an environment in which various embodiments may be implemented. The second section, labeled “Components,” describes examples of various physical and logical components for implementing various embodiments. The third section, labeled “Illustrative Example,” presents an example of determining cloud-based application deployment recommendations based upon performance scores associated with performance features. The fourth section, labeled “Operation,” describes steps taken to implement various embodiments.
Link 116 represents generally any infrastructure or combination of infrastructures configured to enable an electronic connection, wireless connection, other connection, or combination thereof, to enable data communication between components 104106108110112114. Such infrastructure or infrastructures may include, but are not limited to, one or more of a cable, wireless, fiber optic, or remote connections via telecommunication link, an infrared link, or a radio frequency link. For example, link 116 may represent the internet, one or more intranets, and any intermediate routers, switches, and other interfaces. As used herein an “electronic connection” refers generally to a transfer of data between components, e.g., between two computing devices, that are connected by an electrical conductor. A “wireless connection” refers generally to a transfer of data between two components, e.g., between two computing devices, that are not directly connected by an electrical conductor. A wireless connection may be via a wireless communication protocol or wireless standard for exchanging data.
Client devices 106-110 represent generally any computing device with which a user may interact to communicate with other client devices, server device 112, and/or server devices 114 via link 116. Server device 112 represent generally any computing device configured to serve an application and corresponding data for consumption by components 104-110. Server devices 114 represents generally any group of computing devices collectively configured to serve an application and corresponding data for consumption by components 104-110.
Computing device 104 represents generally any computing device with which a user may interact to communicate with client devices 106-110, server device 112, and/or server devices 114 via link 116. Computing device 104 is shown to include core device components 118. Core device components 118 represent generally the hardware and programming for providing the computing functions for which device 104 is designed. Such hardware can include a processor and memory, a display apparatus 120, and a user interface 122. The programming can include an operating system and applications. Display apparatus 120 represents generally any combination of hardware and programming configured to exhibit or present a message, image, view, or other presentation for perception by a user, and can include, but is not limited to, a visual, tactile or auditory display. In examples, the display device may be or include a monitor, a touchscreen, a projection device, a touch/sensory display device, or a speaker. User interface 122 represents generally any combination of hardware and programming configured to enable interaction between a user and device 104 such that the user may effect operation or control of device 104. In examples, user interface 122 may be, or include, a keyboard, keypad, or a mouse. In some examples, the functionality of display apparatus 120 and user interface 122 may be combined, as in the case of a touchscreen apparatus that may enable presentation of images at device 104, and that also may enable a user to operate or control functionality of device 104.
System 102, discussed in more detail below, represents generally a combination of hardware and programming configured to enable determination of cloud-based application deployment recommendations. In an example, system 102 is to receive performance data for a plurality of CAD deployment configurations. System 102 is to generate a database that includes associations of the configurations with a plurality of performance features. The database includes an association of a performance score to each feature. System 102 is to receive a set of performance requirements for cloud-based deployment of a first application. In an example, system 102 may access a repository that includes conversion data associating semantic performance values with numerical requirements, and convert the semantic requirements to numerical requirements based upon the conversion data. System 102 is to determine, based upon performance scores from the database, a recommendation of a first configuration for cloud-based deployment of the application. System 102 is to then send the determined recommendation to a computing device, e.g., to be displayed at the computing device, or for the computing device to utilize to initiate execution of the application at the computing device according to the recommendation.
In some examples, system 102 may be wholly integrated within core device components 118. In other examples, system 102 may be implemented as a component of any of computing device 104, client devices 106-110, server device 112, or server devices 114 where it may take action based in part on data received from core device components 118 via link 116. In other examples, system 102 may be distributed across computing device 104, and any of client devices 106-110, server device 112, or server devices 114. In a particular example, components implementing the receipt of the performance data, the generation of the associations database, receipt of the performance requirements for cloud-based deployment of the first application, the determination of the configuration recommendation, and sending of the recommendation to the computing device may be included within a server device 112. Continuing with this particular example, a component implementing the accessing of the repository with conversion data and conversion of the semantic requirements to numerical requirements based upon the conversion data may be a component included within computing device 104. Other distributions of system 102 across computing device 104, client devices 106-110, server device 112, and server devices 114 are possible and contemplated by this disclosure. It is noted that all or portions of the system 102 to provide media navigation recommendations may also be included on client devices 106, 108 or 110.
In an example, performance data engine 202 represents a combination of hardware and programming configured to receive, via a network, e.g. link 116, performance data for a set of CAD configurations. Database engine 204 represents a combination of hardware and programming configured to generate a database that includes associations of the received set of cloud-based application deployment configurations with specified performance features. The database also includes associations of performance scores with each of the identified performance features. Requirements engine 206 represents a combination of hardware and programming configured to receive a set of performance requirements for cloud-based deployment of a specified application. Determination engine 208 represents a combination of hardware and programming configured to determine a recommendation of an optimal configuration for cloud-based deployment of the specified application, with the determination based at least in part upon performance scores from the database. Recommendation engine 210 represents a combination of hardware and programming configured to send the determined recommendation of the optimal cloud-based application deployment configuration for the specified application to a computing device. In one example, the recommendation is sent to the computing device, e.g. the computing device from which the requirements were received, for display. In another example, the recommendation is sent to the computing device to initiate or implement execution of deployment of the specified application according to the recommendation.
Referring back to
In an example, each of the received cloud-based application deployment configurations, when compared to another configuration within the set or collection, includes at least one differentiating element. In examples, the differentiating element as between possible or available application deployment configurations may be, but is not limited to, a differentiating database service element, a differentiating web service element, a differentiating firewall service element, a differentiating load balancing service element, a differentiating high availability element, or a differentiating disaster recovery element.
Continuing with the example of
Continuing with the example of
In an example, requirements engine 206 (
In a particular example, requirements engine 206 converts performance requirements that are received in semantic form 320 to numerical performance requirements 322. In an example, the requirements engine 206 may access a repository 324 that includes conversion data 326 that includes associations of semantic performance values 320 with numerical performance requirements 322, and converts the semantic performance requirements 320 to numerical requirements 322 based upon the conversion data 326. In the example illustrated at
Continuing with the example of
In an example, recommendation engine 210 may send the recommendation 328 to the first device that was the computing device at which a user provided the requirements for display (e.g., for display at display apparatus 120 included within computing device 104,
In the foregoing discussion of
Memory resource 402 represents generally any number of memory components capable of storing instructions that can be executed by processing resource 404. Memory resource 402 is non-transitory in the sense that it does not encompass a transitory signal but instead is made up of more or more memory components configured to store the relevant instructions. Memory resource 402 may be implemented in a single device or distributed across devices. Likewise, processing resource 404 represents any number of processors capable of executing instructions stored by memory resource 402. Processing resource 404 may be integrated in a single device or distributed across devices. Further, memory resource 402 may be fully or partially integrated in the same device as processing resource 404, or it may be separate but accessible to that device and processing resource 404.
In one example, the program instructions can be part of an installation package that when installed can be executed by processing resource 404 to implement system 102. In this case, memory resource 402 may be a portable medium such as a CD, DVD, or flash drive or a memory maintained by a server from which the installation package can be downloaded and installed. In another example, the program instructions may be part of an application or applications already installed. Here, memory resource 402 can include integrated memory such as a hard drive, solid state drive, or the like.
In
Continuing at
In this example, the performance scores 506 are scores that are generated by system 102 based upon behavior data captured by system 102, the performance data indicative of behaviors of a specified application “Business Application Z” in multiple cloud-based deployment configurations. In another example, system 102 may generate the performance scores based upon the performance data, with respect to a specific application or a group of applications, that were captured by a third party and thereafter received by system 102.
Moving to
Moving to
Moving to
Moving to
A database is generated. The database includes associations of the configurations with a plurality of performance features, and includes an association of a performance score to each feature (block 804). Referring back to
A set of performance requirements for cloud-based deployment of a first application is received (block 806). Referring back to
A recommendation of a first configuration for cloud-based deployment of the first application is determined based upon performance scores from the database (block 808). Referring back to
The recommendation is sent to a computing device for display (block 810). Referring back to
Although the flow diagram of
The present invention has been shown and described with reference to the foregoing exemplary embodiments. It is to be understood, however, that other forms, details and embodiments may be made without departing from the spirit and scope of the invention that is defined in the following claims. All of the features disclosed in this specification (including any accompanying claims, abstract and drawings), and/or all of the steps of any method or process so disclosed, may be combined in any combination, except combinations where at least some of such features and/or steps are mutually exclusive.
Number | Date | Country | Kind |
---|---|---|---|
2200/CHE/2014 | Apr 2014 | IN | national |
Filing Document | Filing Date | Country | Kind |
---|---|---|---|
PCT/US2014/042111 | 6/12/2014 | WO | 00 |