MACHINE-LEARNING MODEL & INTERFACE FOR PLANNING, PREDICTING, AND IMPLEMENTING CLOUD RESOURCE SYSTEMS

Techniques for presenting a graphical user interface (GUI) for configuring a cloud service workstation are disclosed. The system presents a GUI that presents a plurality of possible workstation configurations and the costs associated with each respective workstation configuration, prior to creation of a workstation. The GUI updates the cost associated with a workstation configuration responsive to receiving a selection to modify the workstation configuration from a user. The user may request a different configuration based on a single user input, without specifying which resources to modify. The GUI may recommend a workstation configuration based on one or more user inputs such as a budget, an application service domain, a duration, or a processing power requirement.

TECHNICAL FIELD

The present disclosure relates to a graphical user interface for creating a cloud service infrastructure. In particular, the present disclosure relates to presenting cloud workstation configurations and associated costs, automatically updating the associated costs according to user input, and providing recommended workstation configurations.

BACKGROUND

Cloud-based services provide a convenient, cost-effective, and secure way for a customer to configure and use computational resources without having to invest in and manage hardware and software within the customer organization. However, it can be difficult for the customer to know how their selected components for a cloud workstation configuration will affect the total cost of operating the configuration. It can also be difficult for the customer to select a configuration that aligns with their particular computational needs and with their budget.

DETAILED DESCRIPTION

1. General Overview

One or more embodiments display a graphical user interface that presents various cloud service workstation configurations, each cloud service workstation configuration including a combination of compute resources, network resources, and storage resources. The graphical user interface further presents the costs associated with each respective cloud service workstation configuration, prior to creation of the corresponding cloud service workstations. The graphical user interface accepts user input selecting one of the various cloud service workstation configurations.

The system may relocate icons or other interface elements on the graphical user interface based on the user input selecting one of the various cloud service workstation configurations. In an example, the system may display the selected cloud service workstation at a focal point (e.g., center) of the graphical user interface. The system may further rearrange other candidate cloud service workstations around the selected cloud service workstation based on a cartesian distance between a n-dimensional vector representing the selected cloud service workstation and n-dimensional vectors representing other candidate cloud service workstations. The interface elements for the other cloud service workstations associated with the smallest cartesian distance are presented closest to the interface element representing the selected cloud service workstation. This practical application presents a specific improvement over prior systems, results in an improved graphical user interface.

One or more embodiments display a graphical user interface that present interface elements for modifying a candidate cloud service workstation configuration. The system initially presents the candidate cloud service workstation configuration concurrently with interface elements that accept user input for modifying parameters that are external to the cloud service workstation configuration. As referred to herein, the “external parameters” include parameters that do not themselves specify or select components of a cloud service workstation. Rather, the external parameters serve as input for a system to select the actual components of the cloud service workstation. Specifically, the system may apply a set of rules to the external parameters, received via user input, to build or select a cloud service workstation configuration. Examples of external parameters include but are not limited to a budget for the cloud service workstation, an intended application service domain for the cloud service workstation, and an intended duration of time for operating the cloud service workstation. The system selects the actual components of the cloud service workstation to generate an alternate cloud service workstation that differs from the initially presented cloud service workstation. In another example, the system may select a best match from a pre-configured candidate set of cloud service workstations based on the selected parameters. The system then presents the attributes of the system-selected or system-generated cloud service workstation configuration.

Advantageously, the system provides an improvement in cloud configuration technology. Conventional systems may require a technical user with a deep understanding of cloud resources for configuring a cloud service workstation. Embodiments herein allow a non-technical user to configure a cloud service workstation by submission of parameters that are external to the cloud service workstation configuration. The system performs the technical operations for selecting cloud service workstation components that are determined to be well suited based on the selected external parameters.

One or more embodiments implement a machine learning model for selecting cloud service workstation configurations. The system initially trains a machine learning model based on historical training data. The historical training data includes a training data set comprising a cloud service workstation configuration, an application service domain, and a performance measurement corresponding to performance of the cloud service workstation configuration in the application service domain. The system then applies the trained machine learning model to a target dataset. The target dataset may include a target application service domain and/or a performance criterion. Applying the machine learning model to the target dataset results in computing a cloud service workstation configuration. The system may receive feedback from a user with regard to the cloud service workstation configuration computed for the user. As an example, the feedback may be positive, indicating that the system-computed cloud service workstation configuration is suitable for the target application service domain and/or the performance criteria. In another example, the feedback may be negative, indicating that the system-computed cloud service workstation configuration is not suitable for the target application service domain and/or the performance criteria. The system retrains or updates the machine learning model based on the feedback.

2. System Architecture

FIG.1illustrates a system100in accordance with one or more embodiments. As illustrated inFIG.1, system100includes an interface102, a cloud resource manager110, and a data repository120. The system100may respond to one or more user inputs130. In one or more embodiments, the cloud resource manager110may include one or more functional components such as a graphical user interface generator112, a cost estimator118, a recommendation engine140, and a machine learning algorithm142.

In one or more embodiments, the cloud resource manager110refers to hardware and/or software configured to perform operations described herein for presenting a graphical user interface configured to present options for workstation configurations and their associated costs, and to update the costs as the user modifies selections. Examples of operations for presenting the graphical user interface are described below with reference toFIG.3.

The graphical user interface generator112may generate and/or select interface elements114and present them on the interface102. The interface elements114may include one or more elements that represent workstation configurations. The interface elements114may include an element that represents a cost associated with a workstation configuration. The interface elements114may include an element that indicates that another interface element has been selected. The interface elements114may include an element that presents information about a relationship between a cost of a selected workstation configuration and a target budget132. The interface elements114may include an element that, when selected with a single user input, causes the recommendation engine140to recommend a workstation configuration to the user, via another interface element.

A cloud service workstation configuration124may define a set of one or more resources, including one or more types of resources that will be used by a workstation having that configuration when operational. Resources may include compute resources, network resources, and storage resources. A cloud workstation configuration124may include metadata tags, labels, or other identifiers that indicate specific application service domains for which the workstation configuration may be used. The cost estimator118may determine a cost associated with a workstation configuration124, for example, by accessing resource cost data122for each resource included in a workstation configuration124, and resource cost data122for any additional components selected by the user for use with a selected workstation configuration. The cost estimator118may also access and apply customer information128, which may include any negotiated costs for a particular customer that differ from the resource cost data.

The user may optionally provide one or more external parameters as user inputs130to the system100. For example, a user may provide a target budget132as a user input. The target budget132may specify an amount of money that a user is willing to spend per month for the use of a workstation or a total amount of money that the user is willing to spend for the entire duration of a workstation. The user may provide a target performance134as a user input. The target performance134may specify one or more performance parameters that the user wants for their workstation, such as processing speed, number of operations per second, and/or throughput. The user may provide a target duration136as a user input. The target duration136may specify an amount of time that the workstation will be used. Target budget132, target performance134and target duration136may affect what workstation configurations are available that meet the user's specifications. For example, a high-performance workstation may reduce the duration of processing tasks performed by a workstation but may increase the cost. In another example, a lower cost workstation configuration may increase the duration needed to complete processing tasks.

The user may provide an application service domain138as a user input. An application service domain138may define a collection of resources, software, and other specific configurations for a type of application. For example, application service domains may exist for a life sciences application, a biology application, a geospatial application, and/or a machine learning/artificial intelligence application.

The recommendation engine140may receive the one or more user inputs130and may recommend a particular workstation configuration for the user based on the user inputs. For example, if provided a target budget132, the recommendation engine140may search the cloud service workstation configurations124and may present any workstation configurations associated with a cost that is at or below the target budget. In another example, if provided an application service domain138, the recommendation engine may use a machine learning model144to recommend a particular workstation configuration based on the application service domain138and any other provided user inputs.

The recommendation engine140may apply one or more rules to the one or more user inputs130to recommend a workstation configuration. A rule may cause the recommendation engine140to select one or more specific resources or types of resource based on a user input. For example, a rule may specify that if a target budget is below a threshold amount, the recommendation engine140should select a compute resource with a cost below another threshold amount. A rule may cause the recommendation engine140not to select a particular resource or type of resource. For example, a rule may specify that if a high-performance input is specified, the recommendation engine140should not select any compute resource with a speed of less than a threshold, or that a particular storage resource should not be used in the same configuration as a particular compute resource.

In one or more embodiments, a machine learning algorithm142is an algorithm that can be iterated to learn a target model that best maps a set of input variables to an output variable, using a set of training data. In particular, the machine learning algorithm142is configured to generate and/or train the machine learning model144.

The training data includes datasets and associated labels. The datasets are associated with input variables for the target model144. The datasets may include, for example, one or more cloud service workstation configurations124. The datasets may include one or more application service domains150available at the cloud service provider. The datasets may include customer requirements152such as security requirements and/or compliance requirements for a particular customer. The associated labels are associated with the output variable of the target model144, e.g., a particular workstation configuration. The training data may be updated based on, for example, feedback on the accuracy of the current target model144. Feedback may include performance measurements154or customer feedback, e.g., from surveys. Updated training data is fed back into the machine learning algorithm, which in turn updates the target model144.

The machine learning algorithm142generates the target model144such that the target model144best fits the datasets of training data to the labels of the training data. Additionally, or alternatively, the machine learning algorithm142generates the target model144such that when the target model144is applied to the datasets of the training data, a maximum number of results determined by the target model144matches the labels of the training data. Different target models may be generated based on different machine learning algorithms and/or different sets of training data.

A machine learning algorithm may include supervised components and/or unsupervised components. Various types of algorithms may be used, such as linear regression, logistic regression, linear discriminant analysis, classification and regression trees, naïve Bayes, k-nearest neighbors, learning vector quantization, support vector machine, bagging and random forest, boosting, backpropagation, and/or clustering.

In one or more embodiments, a data repository120is any type of storage unit and/or device (e.g., a file system, database, collection of tables, or any other storage mechanism) for storing data. Further, a data repository120may include multiple different storage units and/or devices. The multiple different storage units and/or devices may or may not be of the same type or located at the same physical site. Further, a data repository120may be implemented or executed on the same computing system as the cloud resource manager110. Alternatively, or additionally, a data repository120may be implemented or executed on a computing system separate from the cloud resource manager110. The data repository120may be communicatively coupled to the cloud resource manager110via a direct connection or via a network.

Information describing resource cost data122, cloud service workstation configurations124, machine learning model144, customer information128, application service domains150, customer requirements152, and performance measurements154may be implemented across any of components within the system100. However, this information is illustrated within the data repository120for purposes of clarity and explanation.

In one or more embodiments, interface102refers to hardware and/or software configured to facilitate communications between a user and the cloud resource manager110. Interface102renders user interface elements and receives input via user interface elements. Examples of interfaces include a graphical user interface (GUI), a command line interface (CLI), a haptic interface, and a voice command interface. Examples of user interface elements include checkboxes, radio buttons, dropdown lists, list boxes, buttons, toggles, text fields, date and time selectors, command lines, sliders, pages, and forms.

In an embodiment, different components of interface102are specified in different languages. The behavior of user interface elements is specified in a dynamic programming language, such as JavaScript. The content of user interface elements is specified in a markup language, such as hypertext markup language (HTML) or XML User Interface Language (XUL). The layout of user interface elements is specified in a style sheet language, such as Cascading Style Sheets (CSS). Alternatively, interface102is specified in one or more other languages, such as Java, C, or C++.

In one or more embodiments, the system100may include more or fewer components than the components illustrated inFIG.1. The components illustrated inFIG.1may be local to or remote from each other. The components illustrated inFIG.1may be implemented in software and/or hardware. Each component may be distributed over multiple applications and/or machines. Multiple components may be combined into one application and/or machine. Operations described with respect to one component may instead be performed by another component.

Additional embodiments and/or examples relating to computer networks are described below in Section7, titled “Computer Networks and Cloud Networks.”

3. Graphical User Interface

FIG.2illustrates an example of a graphical user interface202as may be generated by the graphical user interface generator112. The graphical user interface202may be presented via interface102. As shown, the graphical user interface202is presenting four interface elements: a workstation configuration element204, a workstation configuration cost element205, a workstation configuration element206, a workstation configuration cost element207.

The workstation configuration element204represents and presents a cloud service workstation configuration210. The workstation configuration210comprises a set of resources that behave functionally as an individual computer. Workstation configuration210may include one or more compute resources212. A compute resource212includes one or more processing components, memory, and any other processing resources provided by the cloud service to the user of the cloud workstation212. The compute resources212may be reserved exclusively within the cloud service for the instance of the cloud workstation.

Workstation configuration210may include one or more network resources214. The network resources214may include one or more communication channels and network software and hardware that the workstation configuration210may use to send or receive data from other cloud workstations, other cloud infrastructures, or other networks.

Workstation configuration210may include one or more storage resources216. A storage resource216may include a dedicated amount of storage on a computer readable medium, for example, a 500 GB portion of a solid-state drive within the cloud service. Data used and generated by the compute resource(s)212may be stored in the storage resource216. A storage resource216may reside on a computer readable medium shared by other cloud workstations and/or other cloud infrastructures. A storage resource216may be associated with a cost tier. Some storage resources may have a higher cost of use while providing advantages such as speed of access, security, frequent backups, or other benefits, while other storage resources may be associated with a second, lower cost tier and may provide fewer or lesser benefits compared to storage resources in a higher cost tier. The workstation configuration cost element205represents a workstation configuration cost218associated with the workstation configuration210.

The workstation configuration element206represents and presents a cloud service workstation configuration220. The workstation configuration220comprises a different set of resources than those of workstation configuration210, for example, compute resources222, network resources224and storage resources226. The workstation configuration cost element207represents a workstation configuration cost228associated with the workstation configuration220.

The graphical user interface202also presents an interface element208that indicates that the interface element206, and the workstation configuration220that interface element206represents, has been selected. Interface element208is shown as a thicker border line, however, any graphical indication of selection can be used, e.g., a different shading pattern or color, or a check box.

The graphical user interface202also presents an interface element230that allows the user to accept and create the selected workstation configuration. When a user selects the interface element230, the cloud resource manager110may create a workstation according to the resources defined in the selected workstation configuration.

4. Interactive Cloud Workstation Creation

FIG.3illustrates an example set of operations for presenting a graphical user interface for selecting a workstation configuration in accordance with one or more embodiments. One or more operations illustrated inFIG.3may be modified, rearranged, or omitted all together. Accordingly, the particular sequence of operations illustrated inFIG.3should not be construed as limiting the scope of one or more embodiments. An example of the result of the operations illustrated inFIG.3is shown and described with respect toFIG.5below.

In one or more embodiments, the graphical user interface generator112displays a graphical user interface (GUI) having interface elements representing a plurality of workstation configurations and a cost associated with each respective workstation configuration (Operation302). In the absence of any user inputs, the graphical user interface generator112may select a plurality of workstation configurations to present that include a low-cost workstation configuration, a mid-cost workstation configuration, and a high-cost workstation configuration. In some embodiments, the graphical user interface generator112may select a default set of workstation configurations to present.

When one or more user inputs130are provided, the graphical user interface generator112may select workstation configurations that meet the requirements specified by the user input. In some embodiments, the graphical user interface generator112may request a recommended workstation configuration from the recommendation engine140.

In one or more embodiments, the graphical user interface generator112receives a user selection of one element representing one of the plurality of workstation configurations and display an element indicating the user selection (Operation304). The user may use a pointing device, keyboard, or touch on a touch-sensitive screen via the interface102to select one of the presented plurality of workstation configurations. The graphical user interface generator112may present an interface element that indicates which workstation configuration was selected.

In one or more embodiments, the graphical user interface generator112receives a second user selection of an element representing an additional component for implementing with the selected workstation configuration (Operation306). In addition to presenting interface elements representing the plurality of workstation configurations, or upon selection of one of the workstation configurations, the graphical user interface generator112may present interface elements that represent additional, optional, components that the user can add to the selected workstation configurations. The additional components may include, for example, additional storage resources, software applications for the workstation to execute, or other resources. The user may select an additional component with, for example, a pointing device, or a keyboard selection.

In one or more embodiments, the graphical user interface generator112updates a display of an estimated cost (Operation308). The graphical user interface generator112may provide an identifier for the selected additional component to the cost estimator118. The cost estimator118may retrieve cost information from resource cost data122and any negotiated cost information from customer information128and may determine an updated cost from the cost associated with the selected workstation configuration and the retrieved cost information. The graphical user interface generator112may then update the display of the associated cost for the selected workstation with the updated cost from the cost estimator118.

At any point during the display and update of the graphical user interface, the system may relocate icons or other interface elements on the graphical user interface based on the user input selecting one of the various cloud service workstation configurations. In an example, the system may display the selected cloud service workstation at a focal point (e.g., center) of the graphical user interface. The system may further rearrange other candidate cloud service workstations around the selected cloud service workstation based on a cartesian distance between a n-dimensional vector representing the selected cloud service workstation and n-dimensional vectors representing other candidate cloud service workstations. The interface elements for the other cloud service workstations associated with the smallest cartesian distance are presented closest to the interface element representing the selected cloud service workstation. The system may further change transparency, brightness, or other visual characteristics of the interface elements, for example to highlight a selected element or to obscure an unselected element.

FIG.4illustrates an example set of operations for presenting a graphical user interface for selecting a workstation configuration in accordance with one or more embodiments. One or more operations illustrated inFIG.4may be modified, rearranged, or omitted all together. Accordingly, the particular sequence of operations illustrated inFIG.4should not be construed as limiting the scope of one or more embodiments. An example of the result of the operations illustrated inFIG.4is shown and described with respect toFIG.6below.

In one or more embodiments, the graphical user interface generator112may receive a user selection of one interface element representing one of the plurality of workstation configurations and display another interface element indicating the user selection (Operation402). The user may use a pointing device, keyboard, or touch on a touch-sensitive screen via the interface102to select one of the presented plurality of workstation configurations. The graphical user interface generator112presents an interface element that indicates which workstation configuration was selected such as a larger border, a change in color, a change in shading, a checked box, or any other graphical indication of the selection.

In one or more embodiments, the graphical user interface generator112may receive a single user input to modify the selected workstation configuration (Operation404). The graphical user interface generator112may provide an interface element that allows the user to modify the selected workstation configuration with a single input. The single user input may be one of the user inputs130. The single user input allows the user to modify their selected workstation configuration without having to select specific components and/or resources to change within their selected workstation configuration.

In one or more embodiments, the graphical user interface generator112may determine what type of single user input was received (Operation406). The single user input may be a newly specified or modified target budget132. The single user input may be a newly specified or modified target performance134. The single user input may be a newly specified or modified target duration136.

In one or more embodiments, when the single user input is to change the performance level, the graphical user interface generator112may determine another workstation configuration or a change to one or more resources in the currently selected workstation configuration that satisfies the performance level input (Operation408). For example, the graphical user interface generator112may request a higher performance workstation configuration from the recommendation engine140, which may then add additional compute resources or may swap in a more powerful compute resource. The cost estimator118may also update the cost associated with the modified workstation configuration. The graphical user interface generator112may then present the modified workstation configuration and the updated cost.

In one or more embodiments, when the single user input is to change the duration, the graphical user interface generator112may determine another workstation configuration or a change to one or more resources in the currently selected workstation configuration that satisfies the duration input (Operation410). For example, the graphical user interface generator112may request a workstation configuration that can operate for longer within the constraints of a currently specified budget from the recommendation engine140, which may then swap in one or more less expensive resources. The cost estimator118may also update the cost associated with the modified workstation configuration. The graphical user interface generator112may then present the modified workstation configuration and the updated cost.

In one or more embodiments, when the single user input is to change the budget, the graphical user interface generator112may determine another workstation configuration or a change to one or more resources in the currently selected workstation configuration that satisfies the budget input (Operation412). For example, if the single user input increases an available budget, the graphical user interface generator112may request a workstation configuration that costs more from the recommendation engine140, which may then add additional resources or may swap in a more expensive resource. The cost estimator118may also update the cost associated with the modified workstation configuration. The graphical user interface generator112may then present the modified workstation configuration and the updated cost.

FIG.5illustrates an example of a GUI502that is presenting three interface elements504a,504b, and504crepresenting three different workstation configurations. The GUI502is also presenting three interface elements representing three respective optional components512,514, and516. Interface element508indicates that the user has selected interface element504a, corresponding to the “small” workstation configuration, which has a workstation configuration cost of $1.18 per day. The user has also selected optional component512, which has an associated cost of $0.47 per day. The cost associated with the selected workstation configuration and the optional component512is combined and displayed in the interface element505as $51.15 per month.

FIG.6illustrates an example of a GUI602that is presenting three interface elements604a,604b, and604crepresenting three different workstation configurations. The GUI602is also presenting three interface elements606a,660b, and606crepresenting three respective single user inputs. The user has entered a changed monthly budget in interface element606aof $116.00. Responsive to that input, the graphical user interface generator112has determined that the “medium” workstation configuration most closely meets the revised target budget. Interface element608indicates that the interface element604b, corresponding to the “medium” workstation configuration, is now selected. The cost associated with the selected workstation configuration is displayed in the interface element605as $110.05 per month.

FIG.7illustrates an example of a GUI702that is presenting three interface elements704a,704b, and704crepresenting three different workstation configurations. The GUI702is also presenting three interface elements706a,706b, and706crepresenting possible relationships between a user-specified target budget and the cost of a selected workstation configuration. The user has selected the interface element704c, as indicated by interface element708, representing the “large” workstation configuration. Responsive to that selection and assuming a user-specified budget of less than $443.30 per month, the graphical user interface generator112has determined that the cost associated with the “large” workstation configuration exceeds the user-specified budget. The graphical user interface generator112accordingly presents interface element706cto indicate that the selection is over budget. If all three interface elements706a, b, andcare concurrently displayed, the graphical user interface generator112may graphically emphasize the interface element706that corresponds with the determined cost-budget relationship, e.g., with a bold border, different color, different shading, or different size relative to the other interface elements706. Alternatively, the graphical user interface generator112may present only the interface element706that corresponds with the determined cost-budget relationship.

FIG.8illustrates an example of a GUI802that is presenting interface elements810a,810b,810cand810dfor selecting an application service domain. The user has selected the interface element810drepresenting the application service domain of “AI/ML” (artificial intelligence/machine learning) as indicated by the interface element808. Responsive to the selection, the recommendation engine140may generate a workstation configuration for the selected application service domain. In one or more embodiments, the recommendation engine140may use the machine learning model144applied to the selected application service domain and any provided user inputs130to generate a recommended workstation configuration. In one or more embodiments, the recommendation engine140may use one or more rules based on the selected application service domain and any provided user inputs130to generate a recommended workstation configuration. In the absence of any user inputs130, the recommendation engine140may look up a workstation configuration for the selected application service domain in the cloud service workstation configurations124. The graphical user interface generator112may present an interface element804to represent the recommended workstation configuration. In some embodiments, if the recommendation engine140generates more than one recommended workstation configuration, the graphical user interface generator112may present each of the recommended workstation configurations.

In one or more embodiments, the system100provides a simple way to select a cloud service workstation configuration without requiring that the selecting user have expert skills in provisioning a cloud working environment, while also respecting customer needs such as budget, timing and/or performance constraints. The system100provides the total expected cost of a workstation configuration prior to any creation of the workstation and prior to commitment from the user. The system100allows the user to modify a configuration without having to specify a requested set of particular resources. The system100can recommend a workstation configuration based on user inputs without requiring the user to select individual resource components for a workstation.

7. Computer Networks and Cloud Networks

8. Hardware Overview

For example,FIG.9is a block diagram that illustrates a computer system900upon which an embodiment of the invention may be implemented. Computer system900includes a bus902or other communication mechanism for communicating information, and a hardware processor904coupled with bus902for processing information. Hardware processor904may be, for example, a general purpose microprocessor.

Computer system900further includes a read only memory (ROM)908or other static storage device coupled to bus902for storing static information and instructions for processor904. A storage device910, such as a magnetic disk or optical disk, is provided and coupled to bus902for storing information and instructions.

Computer system900may be coupled via bus902to a display912, such as a cathode ray tube (CRT), for displaying information to a computer user. An input device914, including alphanumeric and other keys, is coupled to bus902for communicating information and command selections to processor904. Another type of user input device is cursor control916, such as a mouse, a trackball, or cursor direction keys for communicating direction information and command selections to processor904and for controlling cursor movement on display912. This input device typically has two degrees of freedom in two axes, a first axis (e.g., x) and a second axis (e.g., y), that allows the device to specify positions in a plane.

Computer system900can send messages and receive data, including program code, through the network(s), network link920and communication interface918. In the Internet example, a server930might transmit a requested code for an application program through Internet928, ISP926, local network922and communication interface918.

The received code may be executed by processor904as it is received, and/or stored in storage device910, or other non-volatile storage for later execution.