Machine learning models and interfaces for planning, predicting and implementing cloud resource systems

By providing cloud service workstation configuration selection and real-time cost updates in the graphical user interface, combined with the recommendation function of the machine learning model, it solves the problem that customers find it difficult to choose the appropriate cloud workstation configuration, and achieves efficient and cost-transparent cloud service configuration.

CN119907968APending Publication Date: 2025-04-29ORACLE INT CORP
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202380067407.3
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Priority Date
2023-06-30
Filing Date
2023-09-20
Publication Date
2025-04-29

AI Technical Summary

Technical Problem

It is difficult for customers to choose cloud workstation configurations that are consistent with their computing requirements and budgets, and it is difficult to estimate the impact of configuration selection on total cost.

Method used

Provides a graphical user interface that allows users to select cloud service workstation configurations and updates the costs associated with each configuration in real time. The system uses machine learning models to recommend suitable workstation configurations based on user input budget, performance, and duration requirements.

Benefits of technology

Enables non-technical users to easily configure cloud service workstations, ensuring configurations meet budget and performance requirements, and improving configuration efficiency and cost transparency.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119907968A_ABST
    Figure CN119907968A_ABST
Patent Text Reader

Abstract

Techniques for presenting a graphical user interface (GUI) for configuring a cloud service workstation are disclosed. The system presents a GUI prior to creation of the workstation, the GUI presenting a plurality of possible workstation configurations and costs associated with each respective workstation configuration. In response to receiving a selection from the user to modify the workstation configuration, the GUI updates a cost associated with the workstation configuration. A user may request different configurations based on a single user input without specifying which resources to modify. The GUI may recommend workstation configurations based on one or more user inputs, such as a budget, an application service domain, duration, or processing capability requirements.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] Incorporation by Reference; Disclaimer

[0002] The following applications are hereby incorporated by reference: U.S. Non-Provisional Patent Application No. 18 / 345,694, filed on June 30, 2023; Application No. 63 / 408,325, filed on September 20, 2022. Applicant hereby revokes any disclaimer of claim scope in the parent application(s) or its prosecution history, and informs the USPTO that the claims in this application may be broader than any claim in the parent application(s). Technical Field

[0003] 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 based on user input, and providing recommended workstation configurations. Background Art

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

[0005] The approaches described in this section are approaches that could be pursued, but are not necessarily approaches that have been previously conceived or pursued. Therefore, unless otherwise indicated, it should not be assumed that any of the approaches described in this section qualify as prior art merely by virtue of their inclusion in this section. BRIEF DESCRIPTION OF THE DRAWINGS

[0006] In the figures of the accompanying drawings, embodiments are illustrated by way of example and not by way of limitation. It should be noted that references to "an embodiment" or "one embodiment" in this disclosure do not necessarily refer to the same embodiment, and they mean at least one. In the drawings:

[0007] Figure 1 illustrates a system according to one or more embodiments;

[0008] Figure 2 illustrates an example of a graphical user interface according to one or more embodiments;

[0009] Figure 3 illustrates an example set of operations for presenting a graphical user interface for configuring a cloud services workstation in accordance with one or more embodiments;

[0010] Figure 4illustrates an example set of operations for presenting a graphical user interface for modifying a cloud service workstation in accordance with one or more embodiments;

[0011] Figure 5 illustrates an example of a graphical user interface according to one or more embodiments;

[0012] Figure 6 illustrates an example of a graphical user interface according to one or more embodiments;

[0013] Figure 7 illustrates an example of a graphical user interface according to one or more embodiments;

[0014] Figure 8 illustrates an example of a graphical user interface according to one or more embodiments; and

[0015] Fig. 9 A block diagram illustrating a computer system in accordance with one or more embodiments is shown. DETAILED DESCRIPTION

[0016] In the following description, for the purpose of explanation, many specific details are set forth in order to provide a thorough understanding. One or more embodiments may be practiced without these specific details. Features described in one embodiment may be combined with features described in different embodiments. In some examples, well-known structures and devices are described with reference to block diagram form to avoid unnecessarily obscuring the present invention.

[0017] 1. General Overview

[0018] 2. System Architecture

[0019] 3. Graphical User Interface

[0020] 4. Interactive cloud workstation creation

[0021] 5. Example Embodiments

[0022] 6. Practical applications, advantages and improvements

[0023] 7. Computer Networks and Cloud Networks

[0024] 8. Hardware Overview

[0025] 9. Other Matters; Extension

[0026] 1. General Overview

[0027] 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 computing resources, network resources, and storage resources. The graphical user interface also presents costs associated with each respective cloud service workstation configuration before creating the corresponding cloud service workstation. The graphical user interface accepts user input for selecting one of the various cloud service workstation configurations.

[0028] The system can reposition icons or other interface elements on a graphical user interface based on user input selecting one of the various cloud service workstation configurations. In an example, the system can display the selected cloud service workstation at the focus (e.g., center) of the graphical user interface. The system can also rearrange other candidate cloud service workstations around the selected cloud service workstation based on the Cartesian distance between the n-dimensional vector representing the selected cloud service workstation and the n-dimensional vector representing other candidate cloud service workstations. The interface elements of other cloud service workstations associated with the minimum Cartesian distance are presented as the interface elements closest to the selected cloud service workstation. This practical application proposes specific improvements relative to existing systems, resulting in an improved graphical user interface.

[0029] One or more embodiments display a graphical user interface that presents interface elements for modifying candidate cloud service workstation configurations. The system initially presents candidate cloud service workstation configurations concurrently with interface elements that accept user input for modifying parameters external to the cloud service workstation configuration. As mentioned herein, "external parameters" include parameters that do not specify or select components of the cloud service workstation by themselves. Instead, the external parameters are used as inputs for the system to select actual components of the cloud service workstation. Specifically, the system can apply a set of rules to 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 a cloud service workstation, an expected application service domain for a cloud service workstation, and an expected duration for operating a cloud service workstation. The system selects actual components of a cloud service workstation to generate an alternative cloud service workstation that is different from the cloud service workstation initially presented. In another example, the system can select the best match from a pre-configured set of cloud service workstation candidates based on the selected parameters. The system then presents the properties of the cloud service workstation configuration selected by the system or generated by the system.

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

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

[0032] One or more embodiments described in the specification and / or recited in the claims may not be included in this general summary.

[0033] 2. System Architecture

[0034] Figure 1 A system 100 is illustrated according to one or more embodiments. Figure 1 As shown in , the system 100 includes an interface 102, a cloud resource manager 110, and a data repository 120. The system 100 can respond to one or more user inputs 130. In one or more embodiments, the cloud resource manager 110 can include one or more functional components, such as a graphical user interface generator 112, a cost estimator 118, a recommendation engine 140, and a machine learning algorithm 142.

[0035] In one or more embodiments, cloud resource manager 110 refers to hardware and / or software configured to perform the 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 the selections. Figure 3 Examples of operations for presenting a graphical user interface are described.

[0036] The graphical user interface generator 112 may generate and / or select an interface element 114 and present it on the interface 102. The interface element 114 may include one or more elements representing a workstation configuration. The interface element 114 may include an element representing a cost associated with a workstation configuration. The interface element 114 may include an element indicating that another interface element has been selected. The interface element 114 may include an element presenting information about the relationship between the cost of the selected workstation configuration and the target budget 132. The interface element 114 may include an element that, when selected using a single user input, causes the recommendation engine 140 to recommend a workstation configuration to a user via another interface element.

[0037] The cloud service workstation configuration 124 can define a collection of one or more resources, including one or more types of resources that a workstation with the configuration will use when operating. Resources can include computing resources, network resources, and storage resources. The cloud workstation configuration 124 may include metadata tags, labels, or other identifiers that indicate a specific application service domain for which the workstation configuration can be used. The cost estimator 118 can determine the cost associated with the workstation configuration 124, for example, by accessing resource cost data 122 for each resource contained in the workstation configuration 124 and resource cost data 122 for any additional components selected by the user for use with the selected workstation configuration. The cost estimator 118 can also access and apply customer information 128, which can include any negotiated costs for a specific customer that differ from the resource cost data.

[0038] The user may selectively provide one or more external parameters to the system 100 as user input 130. For example, the user may provide a target budget 132 as user input. The target budget 132 may specify the amount of money the user is willing to spend per month for the use of the workstation or the total amount of money the user is willing to spend for the entire duration of the workstation. The user may provide a target performance 134 as user input. The target performance 134 may specify one or more performance parameters the user wants for his or her workstation, such as processing speed, operations per second, and / or throughput. The user may provide a target duration 136 as user input. The target duration 136 may specify the amount of time the workstation will be used. The target budget 132, target performance 134, and target duration 136 may affect what kind of workstation configuration is available to meet the user's specifications. For example, a high-performance workstation may shorten the duration of processing a task performed by the workstation, but may increase the cost. In another example, a lower-cost workstation configuration may increase the duration required to complete the processing task.

[0039] A user may provide an application service domain 138 as user input. An application service domain 138 may define a collection of resources, software, and other specific configurations for a class of applications. For example, there may be application service domains for life science applications, biological applications, geospatial applications, and / or machine learning / artificial intelligence applications.

[0040] The recommendation engine 140 can receive one or more user inputs 130 and can recommend a specific workstation configuration for the user based on the user input. For example, if a target budget 132 is provided, the recommendation engine 140 can search the cloud service workstation configurations 124 and can present any workstation configurations associated with costs at or below the target budget level. In another example, if an application service domain 138 is provided, the recommendation engine can use a machine learning model 144 to recommend a specific workstation configuration based on the application service domain 138 and any other provided user input.

[0041] The recommendation engine 140 may apply one or more rules to one or more user inputs 130 to recommend a workstation configuration. A rule may cause the recommendation engine 140 to select one or more specific resources or resource types based on the user input. For example, a rule may specify that if a target budget is below a threshold amount, then the recommendation engine 140 should select computing resources that cost less than another threshold amount. A rule may cause the recommendation engine 140 not to select specific resources or resource types. For example, a rule may specify that if a high performance input is specified, then the recommendation engine 140 should not select any computing resources that have a speed below a threshold, or that a specific storage resource should not be used in the same configuration as a specific computing resource.

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

[0043] The training data includes a data set and associated labels. The data set is associated with input variables for the target model 144. The data set may include, for example, one or more cloud service workstation configurations 124. The data set may include one or more application service domains 150 available at a cloud service provider. The data set may include customer requirements 152, such as security requirements and / or compliance requirements for a particular customer. The associated labels are associated with the output variables (e.g., a particular workstation configuration) of the target model 144. The training data may be updated based on, for example, feedback on the accuracy of the current target model 144. The feedback may include performance measurements 154 or customer feedback, for example, feedback from a survey. The updated training data is fed back into the machine learning algorithm, which in turn updates the target model 144.

[0044] The machine learning algorithm 142 generates a target model 144 such that the target model 144 best fits the dataset of training data to the labels of the training data. Additionally or alternatively, the machine learning algorithm 142 generates the target model 144 such that when the target model 144 is applied to the dataset of training data, a maximum number of results determined by the target model 144 match the labels of the training data. Different target models may be generated based on different machine learning algorithms and / or different training datasets.

[0045] Machine learning algorithms may include supervised and / or unsupervised components. Various types of algorithms may be used, such as linear regression, logistic regression, linear discriminant analysis, classification and regression trees, naive Bayes, k-nearest neighbors, learning vector quantization, support vector machines, bagging and random forests, boosting, back propagation, and / or clustering.

[0046] In one or more embodiments, the data repository 120 is any type of storage unit and / or device for storing data (e.g., a file system, a database, a collection of tables, or any other storage mechanism). In addition, the data repository 120 may include multiple different storage units and / or devices. Multiple different storage units and / or devices may or may not be of the same type or located at the same physical site. In addition, the data repository 120 may be implemented or executed on the same computing system as the cloud resource manager 110. Alternatively or additionally, the data repository 120 may be implemented or executed on a computing system separate from the cloud resource manager 110. The data repository 120 may be coupled to the cloud resource manager 110 via a direct connection or via a network communication.

[0047] Information describing resource cost data 122, cloud service workstation configurations 124, machine learning models 144, customer information 128, application service domains 150, customer requirements 152, and performance measurements 154 may be implemented across any component within system 100. However, for purposes of clarity and explanation, this information is shown within data repository 120.

[0048] In an embodiment, the cloud resource manager 110 is implemented on one or more digital devices. The term "digital device" generally refers to any hardware device including a processor. A digital device may refer to a physical device that executes an application or a virtual machine. Examples of digital devices include computers, tablet computers, laptop computers, desktop computers, netbooks, servers, web servers, network policy servers, proxy servers, general machines, function-specific hardware devices, hardware routers, hardware switches, hardware firewalls, hardware firewalls, hardware network address translators (NATs), hardware load balancers, mainframes, televisions, content receivers, set-top boxes, printers, mobile handsets, smart phones, personal digital assistants (PDAs), wireless receivers and / or transmitters, base stations, communication management devices, routers, switches, controllers, access points, and / or client devices.

[0049] In one or more embodiments, interface 102 refers to hardware and / or software configured to facilitate communication between a user and cloud resource manager 110. Interface 102 renders user interface elements and receives input via user interface elements. Examples of interfaces include graphical user interfaces (GUIs), command line interfaces (CLIs), tactile interfaces, and voice command interfaces. Examples of user interface elements include check boxes, radio buttons, drop-down lists, list boxes, buttons, switches, text fields, date and time selectors, command lines, sliders, pages, and forms.

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

[0051] In one or more embodiments, system 100 may include Figure 1 More or fewer components may be used than shown. Figure 1 The components shown in can be local to each other or remote from each other. Figure 1The components shown in the figure can be implemented in software and / or hardware. Each component can be distributed on multiple applications and / or machines. Multiple components can be combined into one application and / or machine. The operation described with respect to one component can be performed by another component instead.

[0052] Additional embodiments and / or examples related to computer networks are described below in Section 7 entitled “Computer Networks and Cloud Networks”.

[0053] 3. Graphical User Interface

[0054] Figure 2 An example of a graphical user interface 202 is illustrated as may be generated by the graphical user interface generator 112. The graphical user interface 202 may be presented via the interface 102. As shown, the graphical user interface 202 is presenting four interface elements: a workstation configuration element 204, a workstation configuration cost element 205, a workstation configuration element 206, and a workstation configuration cost element 207.

[0055] The workstation configuration element 204 represents and presents a cloud service workstation configuration 210. The workstation configuration 210 includes a collection of resources that functionally behave as a separate computer. The workstation configuration 210 may include one or more computing resources 212. The computing resources 212 include one or more processing components, memory, and any other processing resources that the cloud service provides to users of the cloud workstation 212. The computing resources 212 may be reserved within the cloud service specifically for an instance of a cloud workstation.

[0056] The workstation configuration 210 may include one or more network resources 214. The network resources 214 may include one or more communication channels and network software and hardware that the workstation configuration 210 may use to send or receive data from other cloud workstations, other cloud infrastructures, or other networks.

[0057] The workstation configuration 210 may include one or more storage resources 216. The storage resource 216 may include a dedicated amount of storage on a computer-readable medium, for example, a 500GB portion of a solid-state drive within a cloud service. Data used and generated by (one or more) computing resources 212 may be stored in the storage resource 216. The storage resource 216 may reside on a computer-readable medium shared by other cloud workstations and / or other cloud infrastructures. The storage resource 216 may be associated with a cost tier. Some storage resources may have a higher cost of use while providing advantages such as access speed, security, frequent backups, or other benefits, while other storage resources may be associated with a second, lower cost tier and may provide fewer or smaller benefits than storage resources in a higher cost tier. The workstation configuration cost element 205 represents a workstation configuration cost 218 associated with the workstation configuration 210.

[0058] Workstation configuration element 206 represents and presents cloud service workstation configuration 220. Workstation configuration 220 includes a different set of resources than that of workstation configuration 210, such as computing resources 222, network resources 224, and storage resources 226. Workstation configuration cost element 207 represents workstation configuration cost 228 associated with workstation configuration 220.

[0059] Graphical user interface 202 also presents interface element 208 indicating that interface element 206 and workstation configuration 220 represented by interface element 206 have been selected. Interface element 208 is shown as a thicker border line, however, any graphical indication of selection may be used, such as a different shading pattern or color, or a selection box.

[0060] Graphical user interface 202 also presents interface element 230 that allows the user to accept and create the selected workstation configuration. When the user selects interface element 230, cloud resource manager 110 may create a workstation based on the resources defined in the selected workstation configuration.

[0061] 4. Interactive cloud workstation creation

[0062] Figure 3 Illustrated are an example set of operations for presenting a graphical user interface for selecting a workstation configuration in accordance with one or more embodiments. Figure 3 One or more of the operations shown in may be modified, rearranged, or omitted altogether. Figure 3 The specific order of operations shown in the should not be construed as limiting the scope of one or more embodiments. Figure 5 Show and describe Figure 3 An example of the results of the operations shown in .

[0063] In one or more embodiments, the graphical user interface generator 112 displays a graphical user interface (GUI) having interface elements representing a plurality of workstation configurations and a cost associated with each respective workstation configuration (operation 302). Without any user input, the graphical user interface generator 112 may select a plurality of workstation configurations including a low-cost workstation configuration, a medium-cost workstation configuration, and a high-cost workstation configuration for presentation. In some embodiments, the graphical user interface generator 112 may select a default set of workstation configurations for presentation.

[0064] When one or more user inputs 130 are provided, the graphical user interface generator 112 may select a workstation configuration that meets the requirements specified by the user inputs. In some embodiments, the graphical user interface generator 112 may request a recommended workstation configuration from the recommendation engine 140 .

[0065] In one or more embodiments, graphical user interface generator 112 receives a user selection of an element representing one of the plurality of workstation configurations and displays an element indicating the user selection (operation 304). The user may select one of the plurality of workstation configurations presented using a pointing device, a keyboard, or touch on a touch-sensitive screen via interface 102. Graphical user interface generator 112 may present an interface element indicating which workstation configuration was selected.

[0066] In one or more embodiments, the graphical user interface generator 112 receives a second user selection of an element representing an additional component to be implemented with the selected workstation configuration (operation 306). In addition to presenting interface elements representing multiple workstation configurations, or after selecting one of the workstation configurations, the graphical user interface generator 112 may also present interface elements representing additional, optional components that the user may add to the selected workstation configuration. The additional components may include, for example, additional storage resources, software applications to be executed by the workstation, or other resources. The user may select the additional component using, for example, a pointing device or keyboard selection.

[0067] In one or more embodiments, the graphical user interface generator 112 updates the display of the estimated cost (operation 308). The graphical user interface generator 112 may provide the identifier of the selected additional component to the cost estimator 118. The cost estimator 118 may retrieve the cost information from the resource cost data 122 and any negotiated cost information from the customer information 128, and may determine an updated cost based on the cost associated with the selected workstation configuration and the retrieved cost information. The graphical user interface generator 112 may then update the display of the associated cost of the selected workstation using the updated cost from the cost estimator 118.

[0068] At any time during the display and update of the graphical user interface, the system can reposition icons or other interface elements on the graphical user interface based on user input that selects one of the various cloud service workstation configurations. In an example, the system can display the selected cloud service workstation at the focus (e.g., center) of the graphical user interface. The system can also rearrange other candidate cloud service workstations around the selected cloud service workstation based on the Cartesian distance between the n-dimensional vector representing the selected cloud service workstation and the n-dimensional vector representing other candidate cloud service workstations. The interface elements of other cloud service workstations associated with the minimum Cartesian distance are presented as the interface elements closest to the selected cloud service workstation. The system can also change the transparency, brightness, or other visual characteristics of the interface elements, such as to highlight the selected elements or blur the unselected elements.

[0069] Figure 4 Illustrated are an example set of operations for presenting a graphical user interface for selecting a workstation configuration in accordance with one or more embodiments. Figure 4 One or more of the operations shown in may be modified, rearranged, or omitted altogether. Figure 4 The specific order of operations shown in the should not be construed as limiting the scope of one or more embodiments. Figure 6 Show and describe Figure 4 An example of the results of the operations shown in .

[0070] In one or more embodiments, graphical user interface generator 112 may receive a user selection of an interface element representing one of a plurality of workstation configurations and display another interface element indicating the user selection (operation 402). The user may select one of the plurality of workstation configurations presented using a pointing device, a keyboard, or touch on a touch-sensitive screen via interface 102. Graphical user interface generator 112 presents an interface element indicating 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.

[0071] In one or more embodiments, the graphical user interface generator 112 may receive a single user input to modify the selected workstation configuration (operation 404). The graphical user interface generator 112 may provide an interface element that allows the user to modify the selected workstation configuration using a single input. The single user input may be one of the user inputs 130. The single user input allows the user to modify their selected workstation configuration without having to select specific components and / or resources to be changed within their selected workstation configuration.

[0072] In one or more embodiments, the graphical user interface generator 112 may determine what type of single user input was received (operation 406). The single user input may be a newly specified or modified target budget 132. The single user input may be a newly specified or modified target performance 134. The single user input may be a newly specified or modified target duration 136.

[0073] In one or more embodiments, when the single user input is to change the performance level, the graphical user interface generator 112 can determine another workstation configuration that satisfies the performance level input or a change to one or more resources in the currently selected workstation configuration (operation 408). For example, the graphical user interface generator 112 can request a higher performance workstation configuration from the recommendation engine 140, which can then add additional computing resources or can swap in more powerful computing resources. The cost estimator 118 can also update the cost associated with the modified workstation configuration. The graphical user interface generator 112 can then present the modified workstation configuration and the updated cost.

[0074] In one or more embodiments, when the single user input is to change the duration, the graphical user interface generator 112 can determine another workstation configuration that satisfies the duration input or a change to one or more resources in the currently selected workstation configuration (operation 410). For example, the graphical user interface generator 112 can request a workstation configuration from the recommendation engine 140 that can operate for a longer time within the constraints of the currently specified budget, and the recommendation engine 140 can then swap in one or more cheaper resources. The cost estimator 118 can also update the cost associated with the modified workstation configuration. The graphical user interface generator 112 can then present the modified workstation configuration and the updated cost.

[0075] In one or more embodiments, when the single user input is to change the budget, the graphical user interface generator 112 can determine another workstation configuration that satisfies the budget input or a change to one or more resources in the currently selected workstation configuration (operation 412). For example, if the single user input increases the available budget, the graphical user interface generator 112 can request a more costly workstation configuration from the recommendation engine 140, which can then add additional resources or can swap in more expensive resources. The cost estimator 118 can also update the cost associated with the modified workstation configuration. The graphical user interface generator 112 can then present the modified workstation configuration and the updated cost.

[0076] 5. Example Embodiments

[0077] For the sake of clarity, detailed examples will be described below. The components and / or operations described below should be understood as a specific example that may not be applicable to certain embodiments. Therefore, the components and / or operations described below should not be interpreted as limiting the scope of any claim.

[0078] Figure 5 An example of GUI 502 is illustrated, which is presenting three interface elements 504a, 504b, and 504c representing three different workstation configurations. GUI 502 is also presenting three interface elements representing three corresponding optional components 512, 514, and 516. Interface element 508 indicates that the user has selected interface element 504a, corresponding to a "small" workstation configuration, which has a workstation configuration cost of $1.18 per day. The user has also selected optional component 512, which has an associated cost of $0.47 per day. The costs associated with the selected workstation configuration and optional component 512 are combined and displayed in interface element 505 as $51.15 per month.

[0079] Figure 6 An example of a GUI 602 is illustrated, which is presenting three interface elements 604a, 604b, and 604c representing three different workstation configurations. The GUI 602 is also presenting three interface elements 606a, 606b, and 606c representing three corresponding single user inputs. The user has entered a changed monthly budget of $116.00 in interface element 606a. In response to this input, the graphical user interface generator 112 has determined that the "medium" workstation configuration most closely meets the revised target budget. Interface element 608 indicates that the interface element 604b corresponding to the "medium" workstation configuration is now selected. The cost associated with the selected workstation configuration is displayed as $110.05 per month in interface element 605.

[0080] Figure 7An example of a GUI 702 is illustrated, which is presenting three interface elements 704a, 704b, and 704c representing three different workstation configurations. The GUI 702 is also presenting three interface elements 706a, 706b, and 706c representing possible relationships between a user-specified target budget and the costs of the selected workstation configurations. The user has selected interface element 704c representing a "large" workstation configuration, as indicated by interface element 708. In response to this selection and assuming that the user-specified budget is less than $443.30 per month, the graphical user interface generator 112 has determined that the costs associated with the "large" workstation configuration exceed the user-specified budget. Therefore, the graphical user interface generator 112 presents interface element 706c to indicate that the selection exceeds the budget. If all three interface elements 706a, 706b, and 706c are displayed concurrently, then GUI generator 112 may graphically emphasize interface element 706 corresponding to the determined cost-budget relationship, for example, using a thick border, a different color, a different shading, or a different size relative to other interface elements 706. Alternatively, GUI generator 112 may present only interface element 706 corresponding to the determined cost-budget relationship.

[0081] Figure 8 An example of a GUI 802 is illustrated, which is presenting interface elements 810a, 810b, 810c, and 810d for selecting an application service domain. The user has selected interface element 810d representing the application service domain of "AI / ML" (artificial intelligence / machine learning), as indicated by interface element 808. In response to the selection, the recommendation engine 140 can generate a workstation configuration for the selected application service domain. In one or more embodiments, the recommendation engine 140 can generate a recommended workstation configuration using a machine learning model 144 applied to the selected application service domain and any provided user input 130. In one or more embodiments, the recommendation engine 140 can generate a recommended workstation configuration using one or more rules based on the selected application service domain and any provided user input 130. In the absence of any user input 130, the recommendation engine 140 can look up a workstation configuration for the selected application service domain in the cloud service workstation configuration 124. The graphical user interface generator 112 can present an interface element 804 to represent the recommended workstation configuration. In some embodiments, if recommendation engine 140 generates more than one recommended workstation configuration, graphical user interface generator 112 may present each recommended workstation configuration.

[0082] 6. Practical applications, advantages and improvements

[0083] In one or more embodiments, the system 100 provides a simple way to select a cloud service workstation configuration without requiring the user making the selection to have specialized skills in provisioning a cloud work environment, while also respecting customer requirements, such as budget, timing, and / or performance constraints. The system 100 provides the total expected cost of the workstation configuration prior to any creation of the workstation and prior to submission from the user. The system 100 allows the user to modify the configuration without specifying a specific set of resources requested. The system 100 can recommend a workstation configuration based on user input without requiring the user to select individual resource components for the workstation.

[0084] 7. Computer Networks and Cloud Networks

[0085] In one or more embodiments, a computer network provides connections between a set of nodes. The nodes may be local to each other and / or remote from each other. The nodes are connected via a set of links. Examples of links include coaxial cables, unshielded twisted wires, copper cables, optical fibers, and virtual links.

[0086] A subset of nodes implements a computer network. Examples of such nodes include switches, routers, firewalls, and network address translators (NATs). Another subset of nodes uses a computer network. Such nodes (also referred to as "hosts") can execute client processes and / or server processes. A client process makes a request for a computing service (such as the execution of a particular application and / or the storage of a particular amount of data). The server process responds by performing the requested service and / or returning corresponding data.

[0087] A computer network may be a physical network, comprising physical nodes connected by physical links. A physical node is any digital device. A physical node may be a function-specific hardware device, such as a hardware switch, a hardware router, a hardware firewall, and a hardware NAT. Additionally or alternatively, a physical node may be a general-purpose machine configured to execute various virtual machines and / or applications that perform corresponding functions. A physical link is a physical medium that connects two or more physical nodes. Examples of links include coaxial cables, unshielded twisted wires, copper cables, and optical fibers.

[0088] A computer network may be an overlay network. An overlay network is a logical network implemented on top of another network (such as a physical network). Each node in the overlay network corresponds to a corresponding node in the underlying network. Therefore, each node in the overlay network is associated with both an overlay address (for addressing the overlay node) and an underlying address (for addressing the underlying node that implements the overlay node). An overlay node may be a digital device and / or a software process (such as a virtual machine, an application instance, or a thread). The link connecting the overlay nodes is implemented as a tunnel through the underlying network. The overlay nodes at either end of the tunnel treat the underlying multi-hop path between them as a single logical link. Tunneling is performed by encapsulation and decapsulation.

[0089] In an embodiment, the client may be local to the computer network and / or remote from the computer network. The client may access the computer network through other computer networks, such as a private network or the Internet. The client may transmit the request to the computer network using a communication protocol, such as the Hypertext Transfer Protocol (HTTP). The request is transmitted through an interface, such as a client interface, such as a web browser, a program interface, or an application programming interface (API).

[0090] In an embodiment, a computer network provides a connection between a client and a network resource. The network resource includes hardware and / or software configured to execute a server process. Examples of network resources include processors, data storage devices, virtual machines, containers, and / or software applications. Network resources are shared between multiple clients. Clients request computing services from a computer network independently of each other. Network resources are dynamically allocated to requests and / or clients on an on-demand basis. The network resources allocated to each request and / or client can be scaled up or down based on, for example, (a) computing services requested by a specific client, (b) aggregate computing services requested by a specific tenant, and / or (c) the requested aggregate computing services of the computer network. Such a computer network may be referred to as a "cloud network".

[0091] In an embodiment, a service provider provides a cloud network to one or more end users. The cloud network can implement various service models, including but not limited to software as a service (SaaS), platform as a service (PaaS), and infrastructure as a service (IaaS). In SaaS, the service provider provides the end user with the ability to use the service provider's applications that are being executed on network resources. In PaaS, the service provider provides the end user with the ability to deploy customized applications on network resources. Customized applications can be created using programming languages, libraries, services, and tools supported by the service provider. In IaaS, the service provider provides the end user with the ability to supply processing, storage, network, and other basic computing resources provided by network resources. Any arbitrary application, including an operating system, can be deployed on network resources.

[0092] In an embodiment, a computer network can implement various deployment models, including but not limited to private cloud, public cloud and hybrid cloud. In a private cloud, network resources are supplied to a specific group of one or more entities (the term "entity" as used herein refers to a company, organization, person or other entity) for exclusive use. Network resources can be local to a specific group of entities and / or away from a specific group of entities. In a public cloud, cloud resources are supplied to multiple entities (also referred to as "tenants" or "customers") that are independent of each other. A computer network and its network resources are accessed by clients corresponding to different tenants. Such a computer network may be referred to as a "multi-tenant computer network". Several tenants may use the same specific network resources at different times and / or at the same time. Network resources may be local to a tenant's place and / or away from a tenant's place. In a hybrid cloud, a computer network includes a private cloud and a public cloud. The interface between a private cloud and a public cloud allows portability of data and applications. Data stored at a private cloud and data stored at a public cloud may be exchanged through an interface. Applications implemented at a private cloud and applications implemented at a public cloud may have dependencies on each other. Calls from an application at the private cloud to an application at the public cloud (and vice versa) may be performed through the interface.

[0093] In an embodiment, the tenants of a multi-tenant computer network are independent of each other. For example, the business or operation of one tenant can be separated from the business or operation of another tenant. Different tenants may need different network requirements for the computer network. Examples of network requirements include processing speed, data storage capacity, security requirements, performance requirements, throughput requirements, latency requirements, elasticity requirements, quality of service (QoS) requirements, tenant isolation and / or consistency. The same computer network may need to implement different network requirements required by different tenants.

[0094] In one or more embodiments, in a multi-tenant computer network, tenant isolation is implemented to ensure that applications and / or data of different tenants are not shared with each other. Various tenant isolation methods can be used.

[0095] In an embodiment, each tenant is associated with a tenant ID. Each network resource of the multi-tenant computer network is marked with the tenant ID. Only when the tenant and the specific network resource are associated with the same tenant ID, the tenant is allowed to access the specific network resource.

[0096] In an embodiment, each tenant is associated with a tenant ID. Each application implemented by the computer network is tagged with the tenant ID. Additionally or alternatively, each data structure and / or data set stored by the computer network is tagged with the tenant ID. A tenant is allowed to access a particular application, data structure, and / or data set only if the tenant and the particular application, data structure, and / or data set are associated with the same tenant ID.

[0097] As an example, each database implemented by a multi-tenant computer network can be marked with a tenant ID. Only the tenant associated with the corresponding tenant ID can access the data of a particular database. As another example, each entry in a database implemented by a multi-tenant computer network can be marked with a tenant ID. Only the tenant associated with the corresponding tenant ID can access the data of a particular entry. However, a database can be shared by multiple tenants.

[0098] In an embodiment, the subscription list indicates which tenants have authorization to access which applications. For each application, a list of tenant IDs of tenants authorized to access the application is stored. Only when the tenant ID of a tenant is included in the subscription list corresponding to a specific application, the tenant is allowed to access the specific application.

[0099] In an embodiment, network resources corresponding to different tenants (such as digital devices, virtual machines, application instances, and threads) are isolated to tenant-specific overlay networks maintained by a multi-tenant computer network. As an example, packets from any source device in a tenant overlay network can only be transmitted to other devices within the same tenant overlay network. Encapsulation tunnels are used to prohibit any transmission from a source device on a tenant overlay network to devices in other tenant overlay networks. Specifically, a packet received from a source device is encapsulated in an outer packet. The outer packet is transmitted from a first encapsulation tunnel endpoint (communicating with a source device in the tenant overlay network) to a second encapsulation tunnel endpoint (communicating with a destination device in the tenant overlay network). The second encapsulation tunnel endpoint decapsulates the outer packet to obtain the original packet transmitted by the source device. The original packet is transmitted from the second encapsulation tunnel endpoint to a destination device in the same specific overlay network.

[0100] 8. Hardware Overview

[0101] According to one embodiment, the technology described herein is implemented by one or more special-purpose computing devices. The special-purpose computing device can be hard-wired to perform the present technology, or can include a digital electronic device (such as one or more application-specific integrated circuits (ASICs), field programmable gate arrays (FPGAs), or network processing units (NPUs)) that is permanently programmed to perform the present technology, or can include one or more general-purpose hardware processors that are programmed to perform the present technology according to program instructions in firmware, memory, other storage devices, or combinations. Such special-purpose computing devices can also combine customized hard-wired logic, ASICs, FPGAs, or NPUs with customized programming to implement the present technology. The special-purpose computing device can be a desktop computer system, a portable computer system, a handheld device, a networking device, or any other device that implements the present technology in combination with hard-wired and / or program logic.

[0102] For example, Fig. 9 900 is a block diagram illustrating a computer system 900 on which embodiments of the present invention may be implemented. Computer system 900 includes a bus 902 or other communication mechanism for communicating information and a hardware processor 904 coupled to bus 902 for processing information. Hardware processor 904 may be, for example, a general purpose microprocessor.

[0103] The computer system 900 also includes a main memory 906, such as a random access memory (RAM) or other dynamic storage device, coupled to the bus 902 for storing information and instructions to be executed by the processor 904. The main memory 906 may also be used to store temporary variables or other intermediate information during execution of instructions to be executed by the processor 904. When such instructions are stored in a non-transitory storage medium accessible to the processor 904, such instructions cause the computer system 900 to become a special-purpose machine customized to perform the operations specified in the instructions.

[0104] Computer system 900 also includes a read only memory (ROM) 908 or other static storage device coupled to bus 902 for storing static information and instructions for processor 904. A storage device 910, such as a magnetic or optical disk, is provided and coupled to bus 902 for storing information and instructions.

[0105] The computer system 900 may be coupled via the bus 902 to a display 912, such as a cathode ray tube (CRT), for displaying information to a computer user. An input device 914, including alphanumeric and other keys, is coupled to the bus 902 for communicating information and command selections to the processor 904. Another type of user input device is a cursor control 916, such as a mouse, trackball, or cursor direction keys, for communicating directional information and command selections to the processor 904 and for controlling cursor movement on the display 912. Such input devices typically have two degrees of freedom in two axes, a first axis (e.g., x) and a second axis (e.g., y), which allows the device to specify a position in a plane.

[0106] The computer system 900 may implement the techniques described herein using custom hardwired logic, one or more ASICs or FPGAs, firmware, and / or program logic that, in combination with the computer system, makes the computer system 900 a special purpose machine or programs the computer system 900 to be a special purpose machine. According to one embodiment, the computer system 900 performs the techniques herein in response to the processor 904 executing one or more sequences of one or more instructions contained in the main memory 906. Such instructions may be read into the main memory 906 from another storage medium, such as the storage device 910. Executing the sequences of instructions contained in the main memory 906 causes the processor 904 to perform the process steps described herein. In alternative embodiments, hardwired circuitry may be used in place of or in combination with software instructions.

[0107] The term "storage medium" as used herein refers to any non-transitory medium that stores data and / or instructions that cause a machine to operate in a particular manner. Such storage media may include non-volatile media and / or volatile media. For example, non-volatile media include optical or magnetic disks, such as storage device 910. Volatile media include dynamic memory, such as main memory 906. For example, common forms of storage media include floppy disks, flexible disks, hard disks, solid-state drives, tapes or any other magnetic data storage media, CD-ROMs, any other optical data storage media, any physical media with hole patterns, RAM, PROM and EPROM, FLASH-EPROM, NVRAM, any other memory chip or cassette, content addressable memory (CAM), and ternary content addressable memory (TCAM).

[0108] Storage media are distinct from but may be used in conjunction with transmission media. Transmission media participate in the transfer of information between storage media. For example, transmission media include coaxial cables, copper wire, and optical fiber, including the wires that comprise bus 902. Transmission media may also take the form of acoustic or light waves, such as those generated during radio wave and infrared data communications.

[0109] Carrying one or more sequences of one or more instructions to the processor 904 for execution may involve various forms of media. For example, the instructions may initially be carried on a disk or solid-state drive of a remote computer. The remote computer may load the instructions into its dynamic memory and send the instructions over a telephone line using a modem. A modem local to the computer system 900 may receive the data on the telephone line and use an infrared transmitter to convert the data into an infrared signal. An infrared detector may receive the data carried in the infrared signal, and appropriate circuitry may place the data on the bus 902. The bus 902 carries the data to the main memory 906, from which the processor 904 retrieves and executes the instructions. The instructions received by the main memory 906 may optionally be stored on the storage device 910 before or after execution by the processor 904.

[0110] Computer system 900 also includes a communication interface 918 coupled to bus 902. Communication interface 918 provides a two-way data communication coupled to a network link 920, which is connected to a local network 922. For example, communication interface 918 can be an integrated services digital network (ISDN) card, a cable modem, a satellite modem, or a modem for providing a data communication connection with a telephone line of a corresponding type. As another example, communication interface 918 can be a LAN card for providing a data communication connection with a compatible local area network (LAN). Wireless links can also be implemented. In any such implementation, communication interface 918 sends and receives electrical signals, electromagnetic signals, or optical signals that carry digital data streams representing various types of information.

[0111] The network link 920 typically provides data communication to other data devices through one or more networks. For example, the network link 920 can provide a connection to a host computer 924 or to data equipment operated by an Internet Service Provider (ISP) 926 through a local network 922. The ISP 926 in turn provides data communication services through a worldwide packet data communication network now commonly referred to as the "Internet" 928. Both the local network 922 and the Internet 928 use electrical, electromagnetic, or optical signals that carry digital data streams. The signals through the various networks and the signals on the network link 920 and through the communication interface 918 are example forms of transmission media that carry digital data to and from the computer system 900.

[0112] Computer system 900 can send messages and receive data, including program code, through the network(s), network link 920, and communication interface 918. In the Internet example, server 930 can transmit the requested code for an application program through Internet 928, ISP 926, local network 922, and communication interface 918.

[0113] The received code may be executed by processor 904 as it is received, and / or stored in storage device 910 or other non-volatile storage for later execution.

[0114] 9. Other Matters; Extension

[0115] Embodiments are directed to a system having one or more devices comprising a hardware processor and configured to perform any of the operations described herein and / or recited in any of the following claims.

[0116] In an embodiment, a non-transitory computer-readable storage medium comprises instructions that, when executed by one or more hardware processors, cause performance of any of the operations described herein and / or recited in any of the claims.

[0117] According to one or more embodiments, any combination of the features and functions described herein may be used. In the foregoing description, embodiments have been described with reference to many specific details that may vary depending on the implementation. Therefore, the description and drawings should be viewed in an illustrative rather than a restrictive sense. The only and exclusive indication of the scope of the present invention and what the applicant intends to be the scope of the present invention is the literal and equivalent scope of the issued claims in the specific form of a set of claims issued by this application, including any subsequent amendments.

Claims

1. A non-transitory computer readable medium comprising instructions that, when executed by one or more hardware processors, cause operations to be performed, the operations comprising: Displaying a graphical user interface (GUI), the graphical user interface (GUI) comprising: a first interface element, the first interface element representing a first cloud service workstation configuration, the first cloud service workstation configuration defining at least two of the following: a first set of computing resources, a first set of network resources, and a first set of storage resources for a cloud environment; a second interface element, the second interface element representing a first cost associated with the first cloud service workstation; a third interface element, the third interface element representing a second cloud service workstation configuration, the second cloud service workstation configuration defining at least two of the following: a second set of computing resources, a second set of network resources, and a second set of storage resources for the cloud environment; a fourth interface element, the fourth interface element representing a second cost associated with the second cloud service workstation; wherein the GUI includes functionality for receiving a selection of any cloud service workstation configuration; receiving user input selecting a first cloud-service workstation configuration; and A fifth user interface element is displayed, the fifth user interface element indicating a selection of the first cloud services workstation configuration.

2. The medium of claim 1, wherein the operations further comprise: receiving a second user input selecting one or more optional components for implementation with the first cloud services workstation configuration; as well as In response to receiving the second user input, a display of the estimated cost within the GUI is updated, the estimated cost reflecting both (a) the first cloud service workstation configuration and (b) the one or more optional components selected via the second user input.

3. The medium of claim 1, wherein the operations further comprise: receiving user input selecting a third cloud service workstation configuration; concurrently presenting a third cloud services workstation configuration and a third cost associated with the third cloud services workstation configuration, the third cloud services workstation configuration defining at least two of: a third set of computing resources, a third set of network resources, and a third set of storage resources; receiving a single user input to modify a configuration of a third cloud service workstation, wherein the single user input does not specify a requested set of computing resources, a requested set of network resources, or a requested set of storage resources; A fourth cloud service workstation configuration is determined, the fourth cloud service workstation configuration defining at least two of: a fourth set of computing resources, a fourth set of network resources, and a fourth set of storage resources, wherein the third set of computing resources is different from the fourth set of computing resources, and wherein the third set of storage resources is different from the fourth set of storage resources.

4. The medium of claim 3, wherein the single user input specifies a new target budget that is different than a current target budget.

5. The medium of claim 3, wherein the single user input specifies a new desired performance level that is different from a current desired performance level.

6. The medium of claim 3, wherein the single user input specifies a new desired duration for the cloud environment that is different than a current desired duration for the cloud environment.

7. The medium of claim 1, wherein the GUI further comprises a sixth user element indicating a relationship between (a) a first cost associated with the first cloud service workstation and (b) a user-identified budget.

8. The medium of claim 1, wherein the cost associated with the cloud service workstation comprises a negotiated cost for a specific user.

9. The medium of claim 1, wherein the operations further comprise: displaying a seventh user interface element representing the first application service domain and an eighth user interface element representing the second application service domain; receiving user input selecting a first application service domain; In response to receiving a selection of a first application service domain, generating a recommended workstation configuration; as well as A ninth user interface element representing a recommended workstation configuration is displayed.

10. A non-transitory computer readable medium comprising instructions that, when executed by one or more hardware processors, cause operations to be performed, the operations comprising: Obtain a historical training data set, each of which includes: a first cloud service workstation configuration, the first cloud service workstation configuration defining at least two of: a first set of computing resources, a first set of network resources, and a first set of storage resources for a cloud environment; an application service domain corresponding to an application using the first cloud service workstation; a performance measurement corresponding to the performance of the first cloud service workstation; Train a machine learning model for recommending cloud service workstation configurations based on historical training datasets; receiving a user selection of a target application service domain; applying the machine learning model to a target application service domain to generate a recommended cloud service workstation configuration; and Presents recommended cloud service workstation configurations in a graphical user interface.

11. The medium of claim 10, the operations further comprising: iteratively applying the machine learning model to additional training data sets; updating the machine learning model based on results generated by iteratively applying the machine learning model to the additional training data set; applying the updated machine learning model to a second target application service domain to generate a second recommended cloud service workstation configuration; as well as A second recommended cloud service workstation configuration is presented in the graphical user interface.

12. The medium of claim 10, the operations further comprising: receiving at least one of a performance measurement or feedback regarding a recommended workstation configuration; applying the machine learning model to an additional training data set including the received performance measures or feedback; updating the machine learning model based on results generated by applying the machine learning model to the additional training data set; applying the updated machine learning model to a third target application service domain to generate a third recommended cloud service workstation configuration; as well as A third recommended cloud service workstation configuration is presented in the graphical user interface.

13. A system comprising: one or more processors; as well as A memory storing instructions, which, when executed by the one or more processors, cause the system to perform the operations recited in any one of claims 1-12.

14. A system comprising means for performing the operations recited in any one of claims 1-12.

15. A method comprising the operations as recited in any one of claims 1-12.