US20170213266A1 - Generation of performance offerings for interactive applications - Google Patents
Generation of performance offerings for interactive applications Download PDFInfo
- Publication number
- US20170213266A1 US20170213266A1 US15/328,195 US201415328195A US2017213266A1 US 20170213266 A1 US20170213266 A1 US 20170213266A1 US 201415328195 A US201415328195 A US 201415328195A US 2017213266 A1 US2017213266 A1 US 2017213266A1
- Authority
- US
- United States
- Prior art keywords
- performance
- web service
- offering
- cloud
- customer
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q30/00—Commerce
- G06Q30/06—Buying, selling or leasing transactions
- G06Q30/0601—Electronic shopping [e-shopping]
- G06Q30/0611—Request for offers or quotes
-
- 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/44—Arrangements for executing specific programs
-
- 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45504—Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
-
- 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q30/00—Commerce
- G06Q30/06—Buying, selling or leasing transactions
- G06Q30/0601—Electronic shopping [e-shopping]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q30/00—Commerce
- G06Q30/06—Buying, selling or leasing transactions
- G06Q30/0601—Electronic shopping [e-shopping]
- G06Q30/0633—Lists, e.g. purchase orders, compilation or processing
- G06Q30/0635—Processing of requisition or of purchase orders
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q30/00—Commerce
- G06Q30/06—Buying, selling or leasing transactions
- G06Q30/0601—Electronic shopping [e-shopping]
- G06Q30/0641—Shopping interfaces
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
-
- 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45562—Creating, deleting, cloning virtual machine instances
Definitions
- a cloud provider may sell computing resources (e.g., virtual machines) from a cloud system that can be used by clients to execute applications or programs that perform large scale processing of data.
- the cloud system may be partitioned to support multiple customers and such systems may be referred to as a multitenant system.
- a first customer may purchase X virtual machines from the cloud provider to run a first application
- a second customer may purchase Y virtual machines from the cloud provider to run a second application.
- FIG. 1 illustrates an example interactive application processing system configured to host interactive applications in a cloud environment
- FIG. 2 is a block diagram illustrating modules of the purchasing system introduced in FIG. 1 , according to an example
- FIG. 3 is a flowchart illustrating a method for generating performance offerings for hosting an interactive application on a cloud system, according to an example
- FIG. 4 is a diagram of an example of an interactive purchasing menu usable to generate a purchasing request, according to an example
- FIG. 5 is a diagram showing an interactive purchasing menu that includes user selectable performance offerings, according to an example
- FIG. 6 is a block diagram of a computing device capable of generating a performance offering that includes an execution quality-uncertainty pair, according to one example
- FIG. 7 is a block diagram of a computing device capable of display interactive menus, according to one example.
- FIG. 8 is a flowchart illustrating a method for supporting a performance-based pricing model, according to an example.
- An interactive application may refer to an application that operates, at least in part, by responding to requests sent by clients of the interactive application.
- An illustrative example of an interactive application is a web-based application that utilizes such web services such as, for example, database services, messaging services, file upload services, web servers, web caching services, rate limiters, or any other suitable web service offered by a cloud provider.
- a cloud provider may offer such web services for sale using a number of pricing models.
- the cloud provider may offer to sell a web service based on an instance-based pricing model.
- An instance may be equivalent to a virtual machine that is provisioned within the cloud system and configured to provide the given web service on behalf of the interactive application.
- the application developer has some control over the computer resources (e.g., any combination of storage space, memory size, processor speed, or any other suitable computer resource) used to provide the web-service.
- a web server service executing on 100 instances may handle a higher volume of requests over the same period of time than a web server service executing only on 10 instances.
- the performance of a web service may depend on the number of instances selected and quantified by the application developer.
- instance-configurations may not be the most appropriate due to lack of information.
- the performance of a given configuration depends on the level of congestion of traffic to the instances that are part of the customer's application. This implies that, in some cases, customers may buy instances that are over-specified or under-specified in relation to a workload for the web services to which they are dedicated. Therefore, resources may be misallocated and the overall surplus (i.e. provider surplus, consumer surplus) may be kept inefficiently low.
- the complexity of identifying the right configuration of instances may represent a market barrier-to-entry for potential customers that do not have or cannot afford to pay for administration skills.
- the most tech-savvy administrators are challenged to avoid mistakes that can cause costly service interruption.
- examples discussed herein may provide a performance-based purchasing model for provisioning interactive applications on a cloud system.
- a pricing system may provide a customer with performance offerings that can be selected and purchased.
- a performance offering the customer is presented with a variety of combinations of performance metrics, performance variances, and/or traffic scenarios.
- a performance metric may include data relating to a quality of service associated with a web service.
- An example of a performance metric is processing time for a request (e.g., the time it takes to process a request, as may be measured from a start time to an end time), processing throughput (a number of requests that can be processed in a determinable time period), or processing load (e.g., the number of requests that can be simultaneously received and processed).
- a performance variance may be data that indicates a degree of uncertainty or risk in which the performance metric will not be met.
- the performance metric may be data expressible as any combination of a percentage, a time range (+/ ⁇ a time), an average, an expected deviation, any other suitable expression of a deviation for the performance metric.
- a computer system receives a purchasing request from a customer device.
- the purchasing request may include an interactive application profile of an interactive application that lists a web service utilized by an interactive application.
- the computer system may then generate a performance offering for hosting the web service based on an analysis of a web service benchmark corresponding to the web service and a cloud profile.
- the cloud profile can characterize computing resources available within a cloud system.
- the computer system can then communicate the performance offering to the customer device as a user selectable menu option.
- FIG. 1 illustrates an example interactive application deployment system 100 configured to execute interactive applications in a cloud environment.
- the interactive application deployment system 100 includes a user 102 , a purchasing system 104 , and a cloud system 112 .
- the illustrated layout of the web service system 100 shown in FIG. 1 is provided merely as an example, and other example interactive application processing systems may take on any other suitable layout or configuration.
- FIG. 1 shows that the purchasing system 104 is a separate system from the cloud system 112 , other examples may be implemented such that the purchasing system 104 , or modules/components thereof, is a sub-system of the cloud system 112 .
- the interactive application processing system 100 may include dedicated communication channels, as well as supporting hardware.
- the interactive application processing system 100 includes one or more wide area networks (WANs) as well as multiple local area networks (LANs).
- WANs wide area networks
- LANs local area networks
- the interactive application processing system 100 may utilize a private network, i.e., the interactive application processing system 100 and interconnections therewith are designed and operated exclusively for a particular company or customer, a public network such as the Internet, or a combination of both.
- the user 102 may be an entity, such as a person (e.g., information technology administrator, application developer, or the like), an application, agent, or a service, that purchases computing capabilities from the cloud system 112 to execute an interactive application hosted on the cloud system 112 .
- the user 102 may be a customer of the cloud system 112 .
- the user 102 may also be operating a computer device communicatively coupled to the purchasing system 104 .
- a computer device operated by the user 102 may be referred to herein as a customer device.
- the purchasing system 104 may be a computer system that generates and communicates performance-based offerings to the user 102 . In one way, the purchasing system 104 may generate the performance-based offering via an interactive purchasing menu 116 .
- the interactive purchasing menu 116 may be an interface that can receive an interactive application profile from the user 102 , communicate performance offerings to the user 102 , and receive a user selection for one of the performance offerings. Examples of interactive purchasing menus are discussed in greater detail below.
- the cloud system 112 is a computer system that pools together computing resources 114 a - d (e.g., physical and/or virtual computer servers, storage devices, and the like) to serve multiple customers (such as, in some cases, the user 102 ) using a multi-tenant model.
- the computing resources 114 a - d may be dynamically assigned and reassigned to support computing services for a tenant according to demand, and, in some cases, scaled out or released to provide elastic provisioning of computing capabilities.
- the computing resources 114 a - d execute web services utilized by interactive applications by storing data, performing computational tasks, and exchanging data between the computing resources 114 a - d .
- computing resources 114 a - d may be located geographically close to each other, and, in other cases, the computing resources 114 a - d may be located far from the other compute nodes.
- the cloud system 112 may be a multi-tenant system that pools the computing resources 114 a - d to execute multiple types of applications.
- computing resources 114 a - d may host virtual machines 120 provisioned and assigned to execute a variety of web services, while computing resource 114 d hosts, in addition to an instance of the virtual machine 120 , a virtual machine 122 that is provisioned and assigned to execute a different web service.
- the number of virtual machines provisioned for one type of application may in cases affect the performance of the virtual machines provisioned for another type of application.
- the computing resource 114 d shares or otherwise time slices the processing time between the two virtual machines.
- the virtual machines 120 of the cloud system 112 execute an instance of a web service used by an interactive application in the cloud system 112 .
- the purchasing system 104 may derive a set of performance offerings, where each performance offering specifies a different combination of performance metric, performance variance, and traffic scenario. The user 102 may then select one of the performance offerings presented by the interactive purchasing menu 116 . In some cases, selecting a performance offering links the performance metric, performance variance, and traffic scenario to a time period. In some cases, the purchasing system 104 may generate and provide a price quote to the user based on the selected option. The user can accept the price quote or refuse. When a user refuses, the user can leave the system or go back to a prior stage (e.g., input a new application profile or select another performance offering).
- the purchasing system 104 may then allocate and schedule resources of the cloud system 112 according to the selected performance offering.
- the purchasing system 104 provides a customer with a mechanism for specifying a cloud configuration that is based on a performance metric rather than an instance count.
- FIG. 2 is a block diagram illustrating modules of the purchasing system 104 introduced in FIG. 1 , according to an example.
- the purchasing system 104 includes an interactive purchasing menu interface 202 , an evaluation engine 204 , and a cloud controller 206 .
- a module may be implemented by processors executing instructions stored in a computer-readable storage device or by hardware logic (e.g., an application specific integrated circuit).
- the interactive purchasing menu interface 202 may be a computer-implemented module that is configured to present and receive data relating to user interfaces displayed to the user 102 .
- the interactive purchasing menu interface 202 may generate an interactive purchasing menu that includes interface elements for specifying characteristics of an interactive application that may execute within the cloud system 112 .
- the interactive purchasing menu interface 202 may generate user interface elements representing performance offerings. Examples of interactive purchasing menus are described in the foregoing.
- the evaluation engine 204 may be a computer-implemented module that is configured to generate data relating to an interactive purchasing menu based on any of a combination of a user-supplied application profile, present and future cloud resource availability, user-selected performance metrics, performance variances, and traffic scenarios.
- the cloud controller 206 may be a computer-implemented module that is configured to manage the allocation of computing resources to the interactive applications executing within the cloud system 112 . As discussed further below, examples of the cloud controller 206 may allocate computing resources based on expectations of meeting a performance metric purchased by the user 102 .
- the purchasing system 104 may include a database 212 for storing data usable by the modules of the purchasing system 104 .
- the database 212 includes web service benchmarks 214 and a cloud profile 216 .
- the web service benchmarks 214 may include data or logic that characterize execution properties of a web service that can be hosted in the cloud system 112 .
- Execution properties may characterize a web service by specifying an expected performance of a web service based on properties of input data (type, size, etc.), properties of the incoming requests (e.g., rate of requests, number of simultaneous requests, etc.), and the like.
- the expected performance may be a function of an instance count or the types of resource allocated to the web service.
- the execution properties in some cases, may be a model derived from historical data collected by monitoring the performance of a web-service over time.
- the cloud profile 216 may include data or logic that characterize computing resources that are available in the cloud system 112 in a given period of time (e.g. from the current moment onward) to execute a web-service of an interactive application.
- a number of available virtual machines, processor time, time slots, and the like are examples of properties that may be specified by the cloud profile 216 .
- Example operations of the modules shown in FIG. 2 is discussed in greater detail below with reference to FIGS. 3-10 .
- FIG. 3 is a flowchart illustrating a method 300 for generating performance offerings for hosting an interactive application on a cloud system, according to an example.
- the method 300 may be performed by the modules, components, systems shown in FIGS. 1 and 2 , such as the interactive purchasing menu interface 202 , the evaluation engine 204 , and the cloud controller 206 and, accordingly, is described herein merely by way of reference thereto. It will be appreciated that the method 300 may, however, be performed on any suitable hardware.
- the interactive purchasing menu interface 202 may receive a purchasing request from a customer device.
- the purchasing request may be a message that includes an interactive application profile that, in turn, may include any combination of information regarding the kind of requests the interactive application can handle, input data, expected number of requests submitted simultaneously, and any other properties of the expected traffic.
- the interactive application profile may further list the types of web-services utilized by the interactive application. For example, the interactive application profile may list that the interactive application includes a file upload web service and a messaging web service. Still further, in some cases, the interactive application profile may include a mapping between request types and web services that may be activated based on receiving the request type.
- requests of a given type may cause the interactive application to execute the file upload web service and the messaging web service, either sequentially or concurrently.
- requests of a given type may cause the interactive application to execute the file upload web service and the messaging web service, either sequentially or concurrently.
- the above information in whole or in part, may be inferred by a PaaS layer based on services used rather than be an input supplied by a user.
- the PaaS layer may benchmark or infer a workflow of web services.
- the evaluation engine 204 may generate performance offerings for hosting the web services of the interactive application in the cloud system based on an analysis of a web service benchmark 222 corresponding to the web service and a cloud profile 224 .
- Each performance offering be a combination of a performance metric (e.g., response time) and a performance variance that can be met by a web service in light of a given traffic load.
- each performance offering may include a combination of average (or maximum, or any other suitable statistic) response-time speed, expected traffic level, and a maximum traffic which the cloud provider can meet the performance metric in light of the performance variance.
- the evaluation engine 204 may filter out performance offerings that do not bear a significant difference in costs from each other. This type of filtering may be performed based on a cost threshold that is definable by a cloud provider.
- an interactive application may be a collection of web services and, as such, the performance offerings may be based on estimates that are aggregations of the performance offerings of the comprising web services.
- an evaluation engine may reject the request formulated in 302 by not generating any performance offerings. This may happen when, for example, there are insufficient resources available. In these cases, the customer can choose to reformulate the purchasing request or leave the system (and possibly buy instances in the traditional way).
- the interactive purchasing menu interface 202 may communicate the performance offerings in an interactive offering menu.
- the customer is offered a menu of performance offerings that vary according to a performance metric, a performance variance, and/or a traffic scenario.
- the customer can select different performance offerings for different periods of time. For example, if the customer knows in advance that a traffic pattern for an application is likely to start slowly and increase according to a given function or profile, the customer may select performance offerings that relate to lower traffic loads in the nearest time periods and select for performance offerings that relate to higher traffic loads for later time periods.
- the customer may then activate an element in the interactive offering menu to send the selections of the performance offerings to the purchasing system 104 .
- the interactive purchasing menu interface 202 receives the customer selections and the evaluation engine 204 may generate a price quote based on any combination of the cost information determined at operation 304 , the time periods selected by the customer, and other information, such as, for example, information regarding customers willingness to pay for services offered.
- the price quote may be communicated to the customer at operation 310 . If the customer accepts the price quote, method 300 may continue to operation 312 .
- the cloud controller 206 may provision instances within the cloud system to provide the web services for the interactive application.
- the number of instances may be determined based on the offerings selected by the customer.
- the customer can choose to go back to the purchasing request stage (e.g., see operation 302 ), performance offering selection stage (e.g., see operations 306 and 308 ), or abandon performance-based pricing, in which case the customer may wish to purchase resources using an instance-based purchasing model.
- the purchasing request stage e.g., see operation 302
- performance offering selection stage e.g., see operations 306 and 308
- abandon performance-based pricing in which case the customer may wish to purchase resources using an instance-based purchasing model.
- FIG. 4 is a diagram of an example of an interactive purchasing menu 400 usable to generate a purchasing request, according to an example.
- the interactive purchasing menu 400 may be displayed, for example, by the purchasing system 104 , or a customer device (e.g., a computer device, such as a laptop, desktop, tablet, mobile phone, and the like) operated by the user 102 and communicatively coupled to the purchasing system 104 through, for example, a network connection.
- a customer device e.g., a computer device, such as a laptop, desktop, tablet, mobile phone, and the like
- the interactive purchasing menu 400 includes one or more user supplied fields that specify web service identifier data 402 , traffic property data 404 , and input data 406 .
- the web service identifier data 402 may uniquely identify a web service (or web services) capable of being hosted by the cloud system 112 .
- the web services may be database services, messaging services, file upload services, web servers, web caching services, rate limiters, or any other suitable web service offering offered by a cloud system 112 .
- the web service identifier data 402 may be a menu field that includes customer selectable menu options that are pre-populated by the cloud system 112 .
- an interactive application may include multiple web services. The web service identifier data 402 may, in these cases, allow the customer to specify more than one web service that is part of the interactive application.
- the traffic property data 404 may specify customer supplied data that characterizes the types and kinds of requests the interactive application may receive, including the traffic pattern, such as number of requests that may be received for a time period or the maximum number of requests that may be received simultaneously. Where the customer has identified multiple web services, the traffic property data 404 may link traffic properties to specific web services and, in some cases, whether a type of request will result in the activation of multiple web services and whether the activation is concurrent or sequential.
- the input data 406 may be data that characterizes the input data being operated on by the web service. Examples of the input data may include data that specifies the size and/or distribution of the input data.
- the interactive purchasing menu interface 202 may communicate a user-selectable performance offering through an interactive purchasing menu.
- FIG. 5 is a diagram showing an interactive purchasing menu 500 that includes user selectable performance offerings, according to an example.
- the interactive purchasing menu shown in FIG. 5 may be displayed, for example, by the purchasing system 104 , or a customer device operated by the user 102 and communicatively coupled to the purchasing system 104 .
- the interactive purchasing menu 500 shown in FIG. 5 may list multiple performance offerings 510 - 512 , 520 - 522 that each include a respective performance metric and performance variance combination linked to a traffic scenario.
- the performance metric and performance variance combination may be expressed as an interval of possible outcomes for each metric, such as response times (e.g., 1-2 seconds, or any other suitable interval of a time period).
- the performance offerings 510 - 512 include performance metric and performance variance combinations that relate to the same performance metric value ‘A’ but to different performance variances (e.g., ‘X 1 ,’‘Y 1 ,’ and ‘Z 1 ’).
- performance offerings 520 - 522 include performance metric and performance variance combinations that relate to the same performance metric value (e.g., performance metric value ‘B’) but to different performance variance values (e.g., ‘X 2 ,’ ‘Y 2 ’ and ‘Z 2 ’).
- each of the performance offerings 510 - 512 , 520 - 522 may include a traffic scenario (e.g., ‘L’-‘Q’) in which the performance metric and performance variance can be met.
- the traffic scenario can be expressed as a maximum level at which the performance values can be met by the cloud provider.
- each of the performance offerings 510 - 512 , 520 - 522 may include a customer modifiable field for specifying a time period in which the corresponding performance metric/performance variance may apply.
- the performance offering 510 includes the customer modifiable field 530 which allows the customer to specify a timer period in which the customer would like the cloud system to provide service bounded by the performance metric and performance variance, in light of the traffic scenario.
- Linking a performance offering to a time period may provide a number of advantages. For example, by way of example and not limitation, some applications may have different patterns for request traffic. Such may be seen in mobile games or other applications that have a ramp up period. Different patterns may also be caused by periodic changes in demand experienced by an application. For example, a mobile commerce application may experience seasonal shifts in request patterns based on holidays or a product being in higher demand during a season.
- FIG. 6 is a block diagram of a computing device 600 capable of generating a performance offerings for an interactive application, according to one example.
- the computing device 600 includes, for example, a processor 610 , and a computer-readable storage device 620 including instructions 622 , 624 , 626 .
- the computing device 600 may be, for example, a security appliance, a computer, a workstation, a server, a notebook computer, or any other suitable computing device capable of providing the functionality described herein.
- the processor 610 may be at least one central processing unit (CPU), at least one semiconductor-based microprocessor, at least one graphics processing unit (GPU), other hardware devices suitable for retrieval and execution of instructions stored in computer-readable storage device 620 , or combinations thereof.
- the processor 610 may include multiple cores on a chip, include multiple cores across multiple chips, multiple cores across multiple devices, or combinations thereof.
- the processor 610 may fetch, decode, and execute one or more of the instructions 622 , 624 , 626 to implement methods, operations, and menus discussed above, with reference to FIGS. 1-5 and 8 .
- processor 610 may include at least one integrated circuit (IC), other control logic, other electronic circuits, or combinations thereof that include a number of electronic components for performing the functionality of instructions 622 , 624 , 626 .
- IC integrated circuit
- Computer-readable storage device 620 may be any electronic, magnetic, optical, or other physical storage device that contains or stores executable instructions.
- computer-readable storage device may be, for example, Random Access Memory (RAM), an Electrically Erasable Programmable Read-Only Memory (EEPROM), a storage drive, a Compact Disc Read Only Memory (CD-ROM), and the like.
- RAM Random Access Memory
- EEPROM Electrically Erasable Programmable Read-Only Memory
- CD-ROM Compact Disc Read Only Memory
- computer-readable storage device 620 may be encoded with a series of executable instructions for providing a performance offering includes an execution quality-uncertainty pair linked to a price quote.
- FIG. 7 is a block diagram of a computing device capable of display interactive menus, according to one example.
- the computing device 700 includes, for example, a processor 710 , and a computer-readable storage device 720 including instructions 722 .
- the computing device 700 may be, for example, a security appliance, a computer, a workstation, a server, a notebook computer, or any other suitable computing device capable of providing the functionality described herein.
- the processor 710 may be, at least one central processing unit (CPU), at least one semiconductor-based microprocessor, at least one graphics processing unit (GPU), other hardware devices suitable for retrieval and execution of instructions stored in computer-readable storage device 720 , or combinations thereof.
- the processor 710 may include multiple cores on a chip, include multiple cores across multiple chips, multiple cores across multiple devices, or combinations thereof.
- the processor 710 may fetch, decode, and execute one or more of the instructions 722 to implement methods, operations, and menus discussed above, with reference to FIGS. 1-5 and 8 .
- processor 710 may include at least one integrated circuit (IC), other control logic, other electronic circuits, or combinations thereof that include a number of electronic components for performing the functionality of instructions 622 .
- IC integrated circuit
- Computer-readable storage device 720 may be any electronic, magnetic, optical, or other physical storage device that contains or stores executable instructions.
- computer-readable storage device may be, for example, Random Access Memory (RAM), an Electrically Erasable Programmable Read-Only Memory (EEPROM), a storage drive, a Compact Disc Read Only Memory (CD-ROM), and the like.
- RAM Random Access Memory
- EEPROM Electrically Erasable Programmable Read-Only Memory
- CD-ROM Compact Disc Read Only Memory
- computer-readable storage device 620 may be encoded with a series of executable instructions for providing a performance offering includes an execution quality-uncertainty pair linked to a price quote.
- FIG. 8 is a flowchart illustrating a method 800 for supporting a performance-based pricing model, according to an example. It is to be appreciated that many of the examples above may represent implementations of the method 800 .
- the method 800 may begin at operation 302 when a computer system receives a purchasing request from a customer device.
- the purchasing request may include an interactive application profile of an interactive application that lists a web service utilized by an interactive application.
- the computer system may then, at operation 804 , generate a performance offering for hosting the web service based on an analysis of a web service benchmark corresponding to the web service and a cloud profile.
- the cloud profile can characterize computing resources available within a cloud system.
- the computer system can then, at operation 806 , communicate the performance offering to the customer device as a user selectable menu option.
- the term “computer system” may refer to one or more computer devices, such as the computer devices 600 shown in FIGS. 6 and 7 .
- the terms “couple,” “couples,” “communicatively couple,” or “communicatively coupled” is intended to mean either an indirect or direct connection.
- the connection may be through a direct connection, or through an indirect connection via other devices, modules, or engines and connections.
- electrical connections such coupling may be direct, indirect, through an optical connection, or through a wireless electrical connection.
Landscapes
- Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- Theoretical Computer Science (AREA)
- Accounting & Taxation (AREA)
- Finance (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Economics (AREA)
- General Business, Economics & Management (AREA)
- Strategic Management (AREA)
- Marketing (AREA)
- Development Economics (AREA)
- General Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Transfer Between Computers (AREA)
- Debugging And Monitoring (AREA)
Abstract
Description
- Due to increases in the speed of data transmission over networks and improvements in other network features, it is increasingly possible to perform large scale processing in an environment where computing resources are distributed and shared over a large network. A cloud provider, for example, may sell computing resources (e.g., virtual machines) from a cloud system that can be used by clients to execute applications or programs that perform large scale processing of data. In many cases, the cloud system may be partitioned to support multiple customers and such systems may be referred to as a multitenant system. To illustrate a multitenant system, a first customer may purchase X virtual machines from the cloud provider to run a first application, while a second customer may purchase Y virtual machines from the cloud provider to run a second application.
- Examples are described in detail in the following description with reference to examples shown in the following figures:
-
FIG. 1 illustrates an example interactive application processing system configured to host interactive applications in a cloud environment; -
FIG. 2 is a block diagram illustrating modules of the purchasing system introduced inFIG. 1 , according to an example; -
FIG. 3 is a flowchart illustrating a method for generating performance offerings for hosting an interactive application on a cloud system, according to an example; -
FIG. 4 is a diagram of an example of an interactive purchasing menu usable to generate a purchasing request, according to an example; -
FIG. 5 is a diagram showing an interactive purchasing menu that includes user selectable performance offerings, according to an example; -
FIG. 6 is a block diagram of a computing device capable of generating a performance offering that includes an execution quality-uncertainty pair, according to one example; -
FIG. 7 is a block diagram of a computing device capable of display interactive menus, according to one example; and -
FIG. 8 is a flowchart illustrating a method for supporting a performance-based pricing model, according to an example. - This disclosure discusses, among other things, methods, systems, and computer-readable storage devices that generate performance offerings for purchasing computer resources from a cloud system for deploying an interactive application. An interactive application, as used herein, may refer to an application that operates, at least in part, by responding to requests sent by clients of the interactive application. An illustrative example of an interactive application is a web-based application that utilizes such web services such as, for example, database services, messaging services, file upload services, web servers, web caching services, rate limiters, or any other suitable web service offered by a cloud provider.
- A cloud provider may offer such web services for sale using a number of pricing models. For example, in one case, the cloud provider may offer to sell a web service based on an instance-based pricing model. An instance may be equivalent to a virtual machine that is provisioned within the cloud system and configured to provide the given web service on behalf of the interactive application. In this way, by allowing an application developer a choice in how many instances are provisioned to provide a web service, the application developer has some control over the computer resources (e.g., any combination of storage space, memory size, processor speed, or any other suitable computer resource) used to provide the web-service. For example, a web server service executing on 100 instances may handle a higher volume of requests over the same period of time than a web server service executing only on 10 instances. Thus, in an instance-based pricing model, the performance of a web service may depend on the number of instances selected and quantified by the application developer.
- Depending on the web service desired (urgent or not, for example), application developers may select different instance-configurations, but their choice may not be the most appropriate due to lack of information. For example, the performance of a given configuration depends on the level of congestion of traffic to the instances that are part of the customer's application. This implies that, in some cases, customers may buy instances that are over-specified or under-specified in relation to a workload for the web services to which they are dedicated. Therefore, resources may be misallocated and the overall surplus (i.e. provider surplus, consumer surplus) may be kept inefficiently low. Moreover, the complexity of identifying the right configuration of instances may represent a market barrier-to-entry for potential customers that do not have or cannot afford to pay for administration skills. Furthermore, as a deployment grows in scale even the most tech-savvy administrators are challenged to avoid mistakes that can cause costly service interruption.
- Rather than providing an instance-based purchasing model, examples discussed herein may provide a performance-based purchasing model for provisioning interactive applications on a cloud system. In a performance-based purchasing model, a pricing system may provide a customer with performance offerings that can be selected and purchased. In a performance offering, the customer is presented with a variety of combinations of performance metrics, performance variances, and/or traffic scenarios. A performance metric may include data relating to a quality of service associated with a web service. An example of a performance metric is processing time for a request (e.g., the time it takes to process a request, as may be measured from a start time to an end time), processing throughput (a number of requests that can be processed in a determinable time period), or processing load (e.g., the number of requests that can be simultaneously received and processed). A performance variance may be data that indicates a degree of uncertainty or risk in which the performance metric will not be met. The performance metric may be data expressible as any combination of a percentage, a time range (+/−a time), an average, an expected deviation, any other suitable expression of a deviation for the performance metric.
- In an example, a computer system receives a purchasing request from a customer device. The purchasing request may include an interactive application profile of an interactive application that lists a web service utilized by an interactive application. The computer system may then generate a performance offering for hosting the web service based on an analysis of a web service benchmark corresponding to the web service and a cloud profile. The cloud profile can characterize computing resources available within a cloud system. The computer system can then communicate the performance offering to the customer device as a user selectable menu option.
- These and other examples are now described in greater detail.
-
FIG. 1 illustrates an example interactiveapplication deployment system 100 configured to execute interactive applications in a cloud environment. The interactiveapplication deployment system 100, as shown inFIG. 1 , includes auser 102, apurchasing system 104, and acloud system 112. The illustrated layout of theweb service system 100 shown inFIG. 1 is provided merely as an example, and other example interactive application processing systems may take on any other suitable layout or configuration. For example, althoughFIG. 1 shows that thepurchasing system 104 is a separate system from thecloud system 112, other examples may be implemented such that thepurchasing system 104, or modules/components thereof, is a sub-system of thecloud system 112. - The interactive
application processing system 100 may include dedicated communication channels, as well as supporting hardware. In some examples, the interactiveapplication processing system 100 includes one or more wide area networks (WANs) as well as multiple local area networks (LANs). The interactiveapplication processing system 100 may utilize a private network, i.e., the interactiveapplication processing system 100 and interconnections therewith are designed and operated exclusively for a particular company or customer, a public network such as the Internet, or a combination of both. - The
user 102 may be an entity, such as a person (e.g., information technology administrator, application developer, or the like), an application, agent, or a service, that purchases computing capabilities from thecloud system 112 to execute an interactive application hosted on thecloud system 112. In an example, theuser 102 may be a customer of thecloud system 112. Theuser 102 may also be operating a computer device communicatively coupled to thepurchasing system 104. A computer device operated by theuser 102 may be referred to herein as a customer device. - The
purchasing system 104 may be a computer system that generates and communicates performance-based offerings to theuser 102. In one way, thepurchasing system 104 may generate the performance-based offering via aninteractive purchasing menu 116. Theinteractive purchasing menu 116 may be an interface that can receive an interactive application profile from theuser 102, communicate performance offerings to theuser 102, and receive a user selection for one of the performance offerings. Examples of interactive purchasing menus are discussed in greater detail below. - The
cloud system 112 is a computer system that pools together computing resources 114 a-d (e.g., physical and/or virtual computer servers, storage devices, and the like) to serve multiple customers (such as, in some cases, the user 102) using a multi-tenant model. The computing resources 114 a-d may be dynamically assigned and reassigned to support computing services for a tenant according to demand, and, in some cases, scaled out or released to provide elastic provisioning of computing capabilities. The computing resources 114 a-d execute web services utilized by interactive applications by storing data, performing computational tasks, and exchanging data between the computing resources 114 a-d. In some cases, computing resources 114 a-d may be located geographically close to each other, and, in other cases, the computing resources 114 a-d may be located far from the other compute nodes. - As just discussed above, the
cloud system 112 may be a multi-tenant system that pools the computing resources 114 a-d to execute multiple types of applications. For example, computing resources 114 a-d may hostvirtual machines 120 provisioned and assigned to execute a variety of web services, while computingresource 114 d hosts, in addition to an instance of thevirtual machine 120, avirtual machine 122 that is provisioned and assigned to execute a different web service. It is to be appreciated that the number of virtual machines provisioned for one type of application may in cases affect the performance of the virtual machines provisioned for another type of application. For example, because thecomputing resource 114 d hosts both thevirtual machine 120 and thevirtual machine 122, thecomputing resource 114 d shares or otherwise time slices the processing time between the two virtual machines. - In some cases, the
virtual machines 120 of thecloud system 112 execute an instance of a web service used by an interactive application in thecloud system 112. - In operation, when the
user 102 wishes to deploy an interactive application on thecloud system 112, thepurchasing system 104 may derive a set of performance offerings, where each performance offering specifies a different combination of performance metric, performance variance, and traffic scenario. Theuser 102 may then select one of the performance offerings presented by theinteractive purchasing menu 116. In some cases, selecting a performance offering links the performance metric, performance variance, and traffic scenario to a time period. In some cases, thepurchasing system 104 may generate and provide a price quote to the user based on the selected option. The user can accept the price quote or refuse. When a user refuses, the user can leave the system or go back to a prior stage (e.g., input a new application profile or select another performance offering). If, on the other hand, thepurchasing system 104 receives an accepted price quote, thepurchasing system 104 may then allocate and schedule resources of thecloud system 112 according to the selected performance offering. Thus, thepurchasing system 104 provides a customer with a mechanism for specifying a cloud configuration that is based on a performance metric rather than an instance count. -
FIG. 2 is a block diagram illustrating modules of thepurchasing system 104 introduced inFIG. 1 , according to an example. Thepurchasing system 104 includes an interactivepurchasing menu interface 202, anevaluation engine 204, and acloud controller 206. As used herein, a module may be implemented by processors executing instructions stored in a computer-readable storage device or by hardware logic (e.g., an application specific integrated circuit). - The interactive
purchasing menu interface 202 may be a computer-implemented module that is configured to present and receive data relating to user interfaces displayed to theuser 102. For example, the interactivepurchasing menu interface 202 may generate an interactive purchasing menu that includes interface elements for specifying characteristics of an interactive application that may execute within thecloud system 112. As another example, the interactivepurchasing menu interface 202 may generate user interface elements representing performance offerings. Examples of interactive purchasing menus are described in the foregoing. - The
evaluation engine 204 may be a computer-implemented module that is configured to generate data relating to an interactive purchasing menu based on any of a combination of a user-supplied application profile, present and future cloud resource availability, user-selected performance metrics, performance variances, and traffic scenarios. - The
cloud controller 206 may be a computer-implemented module that is configured to manage the allocation of computing resources to the interactive applications executing within thecloud system 112. As discussed further below, examples of thecloud controller 206 may allocate computing resources based on expectations of meeting a performance metric purchased by theuser 102. - As
FIG. 2 shows, thepurchasing system 104 may include adatabase 212 for storing data usable by the modules of thepurchasing system 104. For example, thedatabase 212 includesweb service benchmarks 214 and acloud profile 216. Theweb service benchmarks 214 may include data or logic that characterize execution properties of a web service that can be hosted in thecloud system 112. Execution properties may characterize a web service by specifying an expected performance of a web service based on properties of input data (type, size, etc.), properties of the incoming requests (e.g., rate of requests, number of simultaneous requests, etc.), and the like. In some cases, the expected performance may be a function of an instance count or the types of resource allocated to the web service. The execution properties, in some cases, may be a model derived from historical data collected by monitoring the performance of a web-service over time. - The
cloud profile 216 may include data or logic that characterize computing resources that are available in thecloud system 112 in a given period of time (e.g. from the current moment onward) to execute a web-service of an interactive application. A number of available virtual machines, processor time, time slots, and the like are examples of properties that may be specified by thecloud profile 216. - Example operations of the modules shown in
FIG. 2 is discussed in greater detail below with reference toFIGS. 3-10 . -
FIG. 3 is a flowchart illustrating amethod 300 for generating performance offerings for hosting an interactive application on a cloud system, according to an example. Themethod 300 may be performed by the modules, components, systems shown inFIGS. 1 and 2 , such as the interactivepurchasing menu interface 202, theevaluation engine 204, and thecloud controller 206 and, accordingly, is described herein merely by way of reference thereto. It will be appreciated that themethod 300 may, however, be performed on any suitable hardware. - At
operation 302, the interactivepurchasing menu interface 202 may receive a purchasing request from a customer device. The purchasing request may be a message that includes an interactive application profile that, in turn, may include any combination of information regarding the kind of requests the interactive application can handle, input data, expected number of requests submitted simultaneously, and any other properties of the expected traffic. The interactive application profile may further list the types of web-services utilized by the interactive application. For example, the interactive application profile may list that the interactive application includes a file upload web service and a messaging web service. Still further, in some cases, the interactive application profile may include a mapping between request types and web services that may be activated based on receiving the request type. For example, requests of a given type may cause the interactive application to execute the file upload web service and the messaging web service, either sequentially or concurrently. It is to be appreciated that the above information, in whole or in part, may be inferred by a PaaS layer based on services used rather than be an input supplied by a user. For example, in many cases the PaaS layer may benchmark or infer a workflow of web services. - Responsive to receiving the purchasing request, the
evaluation engine 204, atoperation 304, may generate performance offerings for hosting the web services of the interactive application in the cloud system based on an analysis of a web service benchmark 222 corresponding to the web service and a cloud profile 224. Each performance offering be a combination of a performance metric (e.g., response time) and a performance variance that can be met by a web service in light of a given traffic load. Accordingly, each performance offering may include a combination of average (or maximum, or any other suitable statistic) response-time speed, expected traffic level, and a maximum traffic which the cloud provider can meet the performance metric in light of the performance variance. In some cases, theevaluation engine 204 may filter out performance offerings that do not bear a significant difference in costs from each other. This type of filtering may be performed based on a cost threshold that is definable by a cloud provider. - As discussed above, an interactive application may be a collection of web services and, as such, the performance offerings may be based on estimates that are aggregations of the performance offerings of the comprising web services.
- It is to be appreciated that in some cases an evaluation engine may reject the request formulated in 302 by not generating any performance offerings. This may happen when, for example, there are insufficient resources available. In these cases, the customer can choose to reformulate the purchasing request or leave the system (and possibly buy instances in the traditional way).
- At
operation 306, the interactivepurchasing menu interface 202 may communicate the performance offerings in an interactive offering menu. Viaoperation 306, the customer is offered a menu of performance offerings that vary according to a performance metric, a performance variance, and/or a traffic scenario. In some cases, from the interactive offering menu, the customer can select different performance offerings for different periods of time. For example, if the customer knows in advance that a traffic pattern for an application is likely to start slowly and increase according to a given function or profile, the customer may select performance offerings that relate to lower traffic loads in the nearest time periods and select for performance offerings that relate to higher traffic loads for later time periods. - Once the customer has made their selection of performance offerings the customer may then activate an element in the interactive offering menu to send the selections of the performance offerings to the
purchasing system 104. - At
operation 308, the interactivepurchasing menu interface 202 receives the customer selections and theevaluation engine 204 may generate a price quote based on any combination of the cost information determined atoperation 304, the time periods selected by the customer, and other information, such as, for example, information regarding customers willingness to pay for services offered. The price quote may be communicated to the customer atoperation 310. If the customer accepts the price quote,method 300 may continue tooperation 312. - At
operation 312, based on receiving acceptance of the price quote, thecloud controller 206 may provision instances within the cloud system to provide the web services for the interactive application. The number of instances may be determined based on the offerings selected by the customer. - At
operation 314, based on receiving rejection of the price quote, the customer can choose to go back to the purchasing request stage (e.g., see operation 302), performance offering selection stage (e.g., seeoperations 306 and 308), or abandon performance-based pricing, in which case the customer may wish to purchase resources using an instance-based purchasing model. - As described above, with reference to
operation 302, the interactivepurchasing menu interface 202 may receive a purchasing request from a customer device.FIG. 4 is a diagram of an example of aninteractive purchasing menu 400 usable to generate a purchasing request, according to an example. Theinteractive purchasing menu 400 may be displayed, for example, by thepurchasing system 104, or a customer device (e.g., a computer device, such as a laptop, desktop, tablet, mobile phone, and the like) operated by theuser 102 and communicatively coupled to thepurchasing system 104 through, for example, a network connection. - The
interactive purchasing menu 400 includes one or more user supplied fields that specify webservice identifier data 402,traffic property data 404, andinput data 406. The webservice identifier data 402 may uniquely identify a web service (or web services) capable of being hosted by thecloud system 112. In some cases, the web services may be database services, messaging services, file upload services, web servers, web caching services, rate limiters, or any other suitable web service offering offered by acloud system 112. In some cases, the webservice identifier data 402 may be a menu field that includes customer selectable menu options that are pre-populated by thecloud system 112. As discussed above, an interactive application may include multiple web services. The webservice identifier data 402 may, in these cases, allow the customer to specify more than one web service that is part of the interactive application. - The
traffic property data 404 may specify customer supplied data that characterizes the types and kinds of requests the interactive application may receive, including the traffic pattern, such as number of requests that may be received for a time period or the maximum number of requests that may be received simultaneously. Where the customer has identified multiple web services, thetraffic property data 404 may link traffic properties to specific web services and, in some cases, whether a type of request will result in the activation of multiple web services and whether the activation is concurrent or sequential. - The
input data 406 may be data that characterizes the input data being operated on by the web service. Examples of the input data may include data that specifies the size and/or distribution of the input data. - As described above, with reference to
operation 306, the interactivepurchasing menu interface 202 may communicate a user-selectable performance offering through an interactive purchasing menu.FIG. 5 is a diagram showing aninteractive purchasing menu 500 that includes user selectable performance offerings, according to an example. The interactive purchasing menu shown inFIG. 5 may be displayed, for example, by thepurchasing system 104, or a customer device operated by theuser 102 and communicatively coupled to thepurchasing system 104. - The
interactive purchasing menu 500 shown inFIG. 5 may list multiple performance offerings 510-512, 520-522 that each include a respective performance metric and performance variance combination linked to a traffic scenario. In some cases, the performance metric and performance variance combination may be expressed as an interval of possible outcomes for each metric, such as response times (e.g., 1-2 seconds, or any other suitable interval of a time period). The performance offerings 510-512 include performance metric and performance variance combinations that relate to the same performance metric value ‘A’ but to different performance variances (e.g., ‘X1,’‘Y1,’ and ‘Z1’). Further, performance offerings 520-522 include performance metric and performance variance combinations that relate to the same performance metric value (e.g., performance metric value ‘B’) but to different performance variance values (e.g., ‘X2,’ ‘Y2’ and ‘Z2’). - Further, each of the performance offerings 510-512, 520-522 may include a traffic scenario (e.g., ‘L’-‘Q’) in which the performance metric and performance variance can be met. The traffic scenario can be expressed as a maximum level at which the performance values can be met by the cloud provider.
- Still further, each of the performance offerings 510-512, 520-522 may include a customer modifiable field for specifying a time period in which the corresponding performance metric/performance variance may apply. For example, the performance offering 510 includes the customer
modifiable field 530 which allows the customer to specify a timer period in which the customer would like the cloud system to provide service bounded by the performance metric and performance variance, in light of the traffic scenario. Linking a performance offering to a time period may provide a number of advantages. For example, by way of example and not limitation, some applications may have different patterns for request traffic. Such may be seen in mobile games or other applications that have a ramp up period. Different patterns may also be caused by periodic changes in demand experienced by an application. For example, a mobile commerce application may experience seasonal shifts in request patterns based on holidays or a product being in higher demand during a season. -
FIG. 6 is a block diagram of acomputing device 600 capable of generating a performance offerings for an interactive application, according to one example. Thecomputing device 600 includes, for example, aprocessor 610, and a computer-readable storage device 620 includinginstructions computing device 600 may be, for example, a security appliance, a computer, a workstation, a server, a notebook computer, or any other suitable computing device capable of providing the functionality described herein. - The
processor 610 may be at least one central processing unit (CPU), at least one semiconductor-based microprocessor, at least one graphics processing unit (GPU), other hardware devices suitable for retrieval and execution of instructions stored in computer-readable storage device 620, or combinations thereof. For example, theprocessor 610 may include multiple cores on a chip, include multiple cores across multiple chips, multiple cores across multiple devices, or combinations thereof. Theprocessor 610 may fetch, decode, and execute one or more of theinstructions FIGS. 1-5 and 8 . As an alternative or in addition to retrieving and executing instructions,processor 610 may include at least one integrated circuit (IC), other control logic, other electronic circuits, or combinations thereof that include a number of electronic components for performing the functionality ofinstructions - Computer-
readable storage device 620 may be any electronic, magnetic, optical, or other physical storage device that contains or stores executable instructions. Thus, computer-readable storage device may be, for example, Random Access Memory (RAM), an Electrically Erasable Programmable Read-Only Memory (EEPROM), a storage drive, a Compact Disc Read Only Memory (CD-ROM), and the like. As such, the machine-readable storage device can be non-transitory. As described in detail herein, computer-readable storage device 620 may be encoded with a series of executable instructions for providing a performance offering includes an execution quality-uncertainty pair linked to a price quote. -
FIG. 7 is a block diagram of a computing device capable of display interactive menus, according to one example. Thecomputing device 700 includes, for example, aprocessor 710, and a computer-readable storage device 720 including instructions 722. Thecomputing device 700 may be, for example, a security appliance, a computer, a workstation, a server, a notebook computer, or any other suitable computing device capable of providing the functionality described herein. - The
processor 710 may be, at least one central processing unit (CPU), at least one semiconductor-based microprocessor, at least one graphics processing unit (GPU), other hardware devices suitable for retrieval and execution of instructions stored in computer-readable storage device 720, or combinations thereof. For example, theprocessor 710 may include multiple cores on a chip, include multiple cores across multiple chips, multiple cores across multiple devices, or combinations thereof. Theprocessor 710 may fetch, decode, and execute one or more of the instructions 722 to implement methods, operations, and menus discussed above, with reference toFIGS. 1-5 and 8 . As an alternative or in addition to retrieving and executing instructions,processor 710 may include at least one integrated circuit (IC), other control logic, other electronic circuits, or combinations thereof that include a number of electronic components for performing the functionality ofinstructions 622. - Computer-
readable storage device 720 may be any electronic, magnetic, optical, or other physical storage device that contains or stores executable instructions. Thus, computer-readable storage device may be, for example, Random Access Memory (RAM), an Electrically Erasable Programmable Read-Only Memory (EEPROM), a storage drive, a Compact Disc Read Only Memory (CD-ROM), and the like. As such, the machine-readable storage device can be non-transitory. As described in detail herein, computer-readable storage device 620 may be encoded with a series of executable instructions for providing a performance offering includes an execution quality-uncertainty pair linked to a price quote. -
FIG. 8 is a flowchart illustrating amethod 800 for supporting a performance-based pricing model, according to an example. It is to be appreciated that many of the examples above may represent implementations of themethod 800. Themethod 800 may begin atoperation 302 when a computer system receives a purchasing request from a customer device. The purchasing request may include an interactive application profile of an interactive application that lists a web service utilized by an interactive application. The computer system may then, atoperation 804, generate a performance offering for hosting the web service based on an analysis of a web service benchmark corresponding to the web service and a cloud profile. The cloud profile can characterize computing resources available within a cloud system. The computer system can then, atoperation 806, communicate the performance offering to the customer device as a user selectable menu option. - As used herein, the term “computer system” may refer to one or more computer devices, such as the
computer devices 600 shown inFIGS. 6 and 7 . Further, the terms “couple,” “couples,” “communicatively couple,” or “communicatively coupled” is intended to mean either an indirect or direct connection. Thus, if a first device, module, or engine couples to a second device, module, or engine, the connection may be through a direct connection, or through an indirect connection via other devices, modules, or engines and connections. In the case of electrical connections, such coupling may be direct, indirect, through an optical connection, or through a wireless electrical connection.
Claims (15)
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/US2014/057565 WO2016048334A1 (en) | 2014-09-26 | 2014-09-26 | Generation of performance offerings for interactive applications |
Publications (2)
Publication Number | Publication Date |
---|---|
US20170213266A1 true US20170213266A1 (en) | 2017-07-27 |
US11037214B2 US11037214B2 (en) | 2021-06-15 |
Family
ID=55581654
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US15/328,195 Active 2036-12-20 US11037214B2 (en) | 2014-09-26 | 2014-09-26 | Generation of performance offerings for interactive applications |
Country Status (2)
Country | Link |
---|---|
US (1) | US11037214B2 (en) |
WO (1) | WO2016048334A1 (en) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10324759B1 (en) * | 2017-08-03 | 2019-06-18 | Palantir Technologies Inc. | Apparatus and method of securely and efficiently interfacing with a cloud computing service |
US10740128B2 (en) * | 2015-05-07 | 2020-08-11 | Quest Software Inc. | Selecting a cloud from a plurality of clouds for a workload |
US11552880B2 (en) | 2019-09-05 | 2023-01-10 | Turbonomic, Inc. | Systems and methods for managing resources in a serverless workload |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060152756A1 (en) * | 2005-01-12 | 2006-07-13 | International Business Machines Corporation | Automating responses by grid providers to bid requests indicating criteria for a grid job |
US20110138055A1 (en) * | 2009-12-04 | 2011-06-09 | Creme Software Limited | resource allocation system |
US20120310764A1 (en) * | 2011-06-03 | 2012-12-06 | Michael Sinsheimer | Designing online deals leveraging collective buyer purchasing power in online marketplace |
US20150268935A1 (en) * | 2014-03-21 | 2015-09-24 | Ca, Inc. | Generating a proposal for selection of services from cloud service providers based on an application architecture description and priority parameters |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA2404014A1 (en) * | 2000-03-30 | 2001-10-11 | Cygent, Inc. | System and method for establishing electronic business systems for supporting communications services commerce |
US7711657B1 (en) | 2006-06-26 | 2010-05-04 | Hewlett-Packard Development Company, L.P. | Resource-reservation pricing structures based on expected ability to deliver |
KR101369773B1 (en) * | 2009-07-08 | 2014-03-06 | 한국전자통신연구원 | Method and apparatus for installation of application using application identifier |
US8621058B2 (en) | 2010-10-28 | 2013-12-31 | Hewlett-Packard Development Company, L.P. | Providing cloud-based computing services |
KR101673622B1 (en) | 2011-01-28 | 2016-11-08 | 삼성전자주식회사 | Method and apparatus for providing qos-based service in wireless communication system |
US20120317266A1 (en) * | 2011-06-07 | 2012-12-13 | Research In Motion Limited | Application Ratings Based On Performance Metrics |
US20130060606A1 (en) | 2011-09-02 | 2013-03-07 | International Business Machines Corporation | Efficient contracting with asymmetric information |
KR101523031B1 (en) * | 2012-01-26 | 2015-05-27 | 심플렉스 인터넷 주식회사 | Application transaction system |
US20130346227A1 (en) | 2012-06-22 | 2013-12-26 | Microsoft Corporation | Performance-Based Pricing for Cloud Computing |
US9104492B2 (en) | 2012-09-04 | 2015-08-11 | Wisconsin Alumni Research Foundation | Cloud-based middlebox management system |
US20140278807A1 (en) * | 2013-03-15 | 2014-09-18 | Cloudamize, Inc. | Cloud service optimization for cost, performance and configuration |
JP2016531347A (en) * | 2013-07-12 | 2016-10-06 | アクト コーポレイションAquto Corporation | Mobile advertising |
-
2014
- 2014-09-26 US US15/328,195 patent/US11037214B2/en active Active
- 2014-09-26 WO PCT/US2014/057565 patent/WO2016048334A1/en active Application Filing
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060152756A1 (en) * | 2005-01-12 | 2006-07-13 | International Business Machines Corporation | Automating responses by grid providers to bid requests indicating criteria for a grid job |
US20110138055A1 (en) * | 2009-12-04 | 2011-06-09 | Creme Software Limited | resource allocation system |
US20120310764A1 (en) * | 2011-06-03 | 2012-12-06 | Michael Sinsheimer | Designing online deals leveraging collective buyer purchasing power in online marketplace |
US20150268935A1 (en) * | 2014-03-21 | 2015-09-24 | Ca, Inc. | Generating a proposal for selection of services from cloud service providers based on an application architecture description and priority parameters |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10740128B2 (en) * | 2015-05-07 | 2020-08-11 | Quest Software Inc. | Selecting a cloud from a plurality of clouds for a workload |
US10324759B1 (en) * | 2017-08-03 | 2019-06-18 | Palantir Technologies Inc. | Apparatus and method of securely and efficiently interfacing with a cloud computing service |
US11030006B2 (en) * | 2017-08-03 | 2021-06-08 | Palantir Technologies Inc. | Apparatus and method of securely and efficiently interfacing with a cloud computing service |
US11977919B2 (en) | 2017-08-03 | 2024-05-07 | Palantir Technologies Inc. | Apparatus and method of securely and efficiently interfacing with a cloud computing service |
US11552880B2 (en) | 2019-09-05 | 2023-01-10 | Turbonomic, Inc. | Systems and methods for managing resources in a serverless workload |
US11588727B2 (en) | 2019-09-05 | 2023-02-21 | International Business Machines Corporation | Systems and methods for managing resources in a serverless workload |
Also Published As
Publication number | Publication date |
---|---|
US11037214B2 (en) | 2021-06-15 |
WO2016048334A1 (en) | 2016-03-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10671953B1 (en) | Systems, apparatus and methods for cost and performance-based movement of applications and workloads in a multiple-provider system | |
US10841239B2 (en) | Policy based selection of resources for a cloud service | |
US10924537B2 (en) | Systems, apparatus and methods for cost and performance-based management of resources in a cloud environment | |
US11625738B2 (en) | Methods and systems that generated resource-provision bids in an automated resource-exchange system | |
US10374919B2 (en) | Resource manager | |
US9811451B1 (en) | Distributed software testing | |
US10402227B1 (en) | Task-level optimization with compute environments | |
US11689613B2 (en) | Systems, apparatus and methods for cost and performance-based management of resources in a cloud environment | |
US9805345B1 (en) | Systems, apparatus, and methods for managing quality of service agreements | |
US20190303989A1 (en) | Virtualized distribution system offering virtual products or services | |
CN103763130B (en) | Management method, the device and system of large-scale cluster | |
US20160380908A1 (en) | Resource Prediction for Cloud Computing | |
US20220276904A1 (en) | Job execution with managed compute environments | |
US9483747B2 (en) | Managing workflows | |
Dastjerdi et al. | An autonomous time-dependent SLA negotiation strategy for cloud computing | |
US11386371B2 (en) | Systems, apparatus and methods for cost and performance-based movement of applications and workloads in a multiple-provider system | |
US20120130911A1 (en) | Optimizing license use for software license attribution | |
USRE48680E1 (en) | Managing resources in container systems | |
US20140330647A1 (en) | Application and service selection for optimized promotion | |
CN105812423B (en) | A kind of cloud system configuration method, server and device | |
US11037214B2 (en) | Generation of performance offerings for interactive applications | |
US20180075551A1 (en) | Collaborative and Cognitive Multi-Outlet Food Order Placement and Recommendation | |
JP7182836B2 (en) | Automatic Diagonal Scaling of Workloads in Distributed Computing Environments | |
CN108279968B (en) | Virtual machine resource scheduling method and device | |
USRE48663E1 (en) | Moving resource consumers in computer systems |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP, TEXAS Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:HEWLETT-PACKARD DEVELOPMENT COMPANY, L.P.;REEL/FRAME:041071/0001 Effective date: 20151027 Owner name: HEWLETT-PACKARD DEVELOPMENT COMPANY, L.P., TEXAS Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:BALESTRIERI, FILIPPO;HUBERMAN, BERNARDO;REEL/FRAME:041070/0240 Effective date: 20140925 |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: NON FINAL ACTION MAILED |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: RESPONSE TO NON-FINAL OFFICE ACTION ENTERED AND FORWARDED TO EXAMINER |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: NON FINAL ACTION MAILED |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: NON FINAL ACTION MAILED |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: RESPONSE TO NON-FINAL OFFICE ACTION ENTERED AND FORWARDED TO EXAMINER |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: FINAL REJECTION MAILED |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: DOCKETED NEW CASE - READY FOR EXAMINATION |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: AWAITING TC RESP., ISSUE FEE NOT PAID |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: NOTICE OF ALLOWANCE MAILED -- APPLICATION RECEIVED IN OFFICE OF PUBLICATIONS |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: AWAITING TC RESP., ISSUE FEE NOT PAID |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: NOTICE OF ALLOWANCE MAILED -- APPLICATION RECEIVED IN OFFICE OF PUBLICATIONS |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: PUBLICATIONS -- ISSUE FEE PAYMENT RECEIVED |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: PUBLICATIONS -- ISSUE FEE PAYMENT VERIFIED |
|
STCF | Information on status: patent grant |
Free format text: PATENTED CASE |