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

A graphical user interface with machine learning capabilities assists users in selecting cloud workstation configurations by presenting costs and recommending optimal setups based on user inputs, addressing the challenge of aligning configurations with computing needs and budget.

JP2025532087APending Publication Date: 2025-09-29ORACLE INT CORP
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
JP2025517112
Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Priority Date
2023-06-30
Filing Date
2023-09-20
Publication Date
2025-09-29

AI Technical Summary

Technical Problem

Customers face difficulties in selecting cloud workstation configurations that align with their computing needs and budget, as existing systems require technical expertise and do not provide clear cost projections or recommended configurations.

Method used

A graphical user interface that presents various cloud service workstation configurations, including compute, network, and storage resources, along with associated costs, allowing users to input parameters like budget and application domain, and utilizes a machine learning model to recommend optimal configurations based on user feedback and historical data.

Benefits of technology

Enables non-technical users to efficiently configure cloud workstations that meet performance and budget constraints, providing cost projections and recommended configurations without requiring specialized knowledge.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 2025532087000001_ABST
    Figure 2025532087000001_ABST
Patent Text Reader

Abstract

Techniques are disclosed for presenting a graphical user interface (GUI) for configuring cloud service workstations. The system presents a GUI that presents multiple possible workstation configurations and the associated costs for each workstation configuration before the workstation is created. The GUI updates the costs associated with the workstation configuration in response to receiving a selection from a user to change the workstation configuration. The user can request a different configuration based on a single user input without specifying which resources to change. The GUI can recommend workstation configurations based on one or more user inputs, such as budget, application service domain, time period, or processing capacity requirements.
Need to check novelty before this filing date? Find Prior Art

Description

[Technical Field]

[0001] Incorporation by Reference, Disclaimer The following applications are incorporated herein by reference: U.S. Non-Provisional Patent Application No. 18 / 345,694, filed June 30, 2023; and U.S. Non-Provisional Patent Application No. 63 / 408,325, filed September 20, 2022. Applicant hereby withdraws any abandonment of claims in the parent application or during prosecution thereof, and notifies the USPTO that the claims of this application may be broader in scope than the claims of the parent application.

[0002] Technical Field The present disclosure relates to a graphical user interface for creating 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 technology]

[0003] background Cloud-based services offer a convenient, cost-effective, and secure way for customers to configure and utilize computing resources without investing in and managing in-house hardware and software. However, it can be difficult for customers to know how the components selected 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 fits their particular computing needs and budget. Summary of the Invention [Problem to be solved by the invention]

[0004] The approaches described in this section are approaches that could be pursued, but not necessarily approaches that have been previously conceived or pursued. Thus, unless otherwise indicated, it should not be assumed that any approach described in this section qualifies as prior art merely by virtue of its inclusion in this section.

[0005] Embodiments are illustrated by way of example, and not by way of limitation, in the figures of the accompanying drawings, in which: Note that references to "an" embodiment or "one" embodiment in this disclosure do not necessarily refer to the same embodiment, but rather to at least one. [Brief explanation of the drawings]

[0006] [Figure 1] FIG. 1 illustrates a system according to one or more embodiments. [Figure 2] FIG. 1 illustrates an example of a graphical user interface according to one or more embodiments. [Figure 3] FIG. 1 illustrates an exemplary series of actions for presenting a graphical user interface for configuring a cloud service workstation, according to one or more embodiments. [Figure 4] FIG. 10 illustrates an exemplary series of operations for presenting a graphical user interface for modifying a cloud service workstation, according to one or more embodiments. [Figure 5] FIG. 1 illustrates an example of a graphical user interface according to one or more embodiments. [Figure 6] FIG. 1 illustrates an example of a graphical user interface according to one or more embodiments. [Figure 7] FIG. 1 illustrates an example of a graphical user interface according to one or more embodiments. [Figure 8]FIG. 1 illustrates an example of a graphical user interface according to one or more embodiments. [Figure 9] FIG. 1 is a block diagram illustrating a computer system according to one or more embodiments. DETAILED DESCRIPTION OF THE INVENTION

[0007] Detailed Description In the following description, for purposes of explanation, numerous 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 instances, well-known structures and devices are described with reference to block diagram form in order to avoid unnecessarily obscuring the present invention. 1. Overview 2. System Architecture 3. Graphical User Interface 4. Creating an Interactive Cloud Workstation 5. Exemplary Embodiments 6. Practical Applications, Benefits, and Improvements 7. Computer Networks and Cloud Networks 8. Hardware Overview 9. Other, Expansion 1. Overview One or more embodiments display a graphical user interface presenting various cloud service workstation configurations, each cloud service workstation configuration including a combination of compute, network, and storage resources. The graphical user interface further presents costs associated with each cloud service workstation configuration prior to creating the corresponding cloud service workstation. The graphical user interface accepts user input selecting one of the various cloud service workstation configurations.

[0008] The system can rearrange icons or other interface elements on a graphical user interface based on user input selecting one of various cloud service workstation configurations. In one example, the system can display the selected cloud service workstation at the center (e.g., center) of the graphical user interface. The system can further 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 the other candidate cloud service workstations. The interface elements of the other cloud service workstations associated with the smallest Cartesian distance are presented closest to the interface elements representing the selected cloud service workstation. This practical application represents a tangible improvement over conventional systems, resulting in an improved graphical user interface.

[0009] One or more embodiments display a graphical user interface presenting interface elements for modifying a candidate cloud service workstation configuration. The system initially presents the candidate cloud service workstation configuration simultaneously with interface elements that accept user input for modifying parameters external to the cloud service workstation configuration. As referred to herein, “external parameters” include parameters that do not themselves specify or select components of the cloud service workstation. Rather, the external parameters serve as input 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 the cloud service workstation, an intended application service domain for the cloud service workstation, and an intended time period for operating the cloud service workstation. The system selects actual components of the cloud service workstation to generate an alternative cloud service workstation that differs from the initially presented cloud service workstation. In another example, the system can select a best fit from a pre-configured candidate set of cloud service workstations based on the selected parameters. The system then presents attributes of the system-selected or system-generated cloud service workstation configuration.

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

[0011] 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 dataset that includes cloud service workstation configurations, application service domains, and performance measures corresponding to the performance of the cloud service workstation configurations 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 performance criteria. Applying the machine learning model to the target dataset computes a cloud service workstation configuration. The system can receive feedback from a user regarding 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. As 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.

[0012] One or more embodiments described and / or claimed herein may not be included in this summary section.

[0013] 2. System Architecture 1 illustrates a system 100 according to one or more embodiments. As shown in FIG. 1, the system 100 includes an interface 102, a cloud resource manager 110, and a data repository 120. The system 100 may be responsive to one or more user inputs 130. In one or more embodiments, the cloud resource manager 110 may 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.

[0014] In one or more embodiments, cloud resource manager 110 refers to hardware and / or software configured to perform the operations described herein to present a graphical user interface configured to present workstation configuration choices and their associated costs and to update the costs as the user changes the selection. Example operations for presenting a graphical user interface are described below with reference to FIG.

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

[0016] A cloud services workstation configuration 124 may define one or more sets of resources, including one or more types of resources that a workstation having that configuration uses during operation. The resources may include computational resources, network resources, and storage resources. The cloud workstation configuration 124 may include a metadata tag, label, or other identifier that indicates the particular application service domain for which the workstation configuration may be used. The cost estimator 118 may determine the cost associated with the workstation configuration 124, for example, by accessing resource cost data 122 for each resource included in the workstation configuration 124 and for any additional components selected by a user for use with the selected workstation configuration. The cost estimator 118 may also access and apply customer information 128, which may include negotiated costs for a particular customer that differ from the resource cost data.

[0017] A user may optionally provide one or more external parameters as user input 130 to system 100. For example, the user may provide target budget 132 as user input. Target budget 132 may specify the amount the user is willing to pay each month for use of the workstation, or the total amount the user is willing to pay over the lifetime of the workstation. The user may provide target performance 134 as user input. Target performance 134 may specify one or more performance parameters the user desires for their workstation, such as processing speed, number of operations per second, and / or throughput. The user may provide target duration 136 as user input. 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 available workstation configurations meet the user's specifications. For example, a high-performance workstation may shorten the duration of a processing task performed by the workstation, but may increase costs. In another example, a lower-cost workstation configuration may increase the duration required to complete a processing task.

[0018] A user can provide an application services domain 138 as user input. The application services domain 138 can define a collection of resources, software, and other specific configurations for a certain type of application. For example, there may be application services domains for life science applications, biology applications, geospatial applications, and / or machine learning / artificial intelligence applications.

[0019] The recommendation engine 140 can receive one or more user inputs 130 and can recommend a particular workstation configuration to 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 present any workstation configurations associated with a cost at or below the target budget. In another example, if an application service domain 138 is provided, the recommendation engine can use a machine learning model 144 to recommend a particular workstation configuration based on the application service domain 138 and any other provided user input.

[0020] The recommendation engine 140 can apply one or more rules to one or more user inputs 130 to recommend workstation configurations. A rule can cause the recommendation engine 140 to select one or more particular resources or types of resources based on the user input. For example, a rule can specify that if a target budget is below a threshold, the recommendation engine 140 should select a computing resource whose cost is below another threshold. A rule can prevent the recommendation engine 140 from selecting a particular resource or type of resource. For example, a rule can specify that if a high performance input is specified, the recommendation engine 140 should not select a computing resource whose speed is below a threshold, or that a particular storage resource should not be used in the same configuration as a particular computing resource.

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

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

[0023] The machine learning algorithm 142 generates the target model 144 such that the target model 144 best matches 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, as 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 sets of training data.

[0024] 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, backpropagation, and / or clustering.

[0025] In one or more embodiments, 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). Furthermore, data repository 120 may 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. Furthermore, data repository 120 may be implemented or executed on the same computing system as cloud resource manager 110. Alternatively or additionally, data repository 120 may be implemented or executed on a computing system separate from cloud resource manager 110. Data repository 120 may be communicatively coupled to cloud resource manager 110 via a direct connection or via a network.

[0026] 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 measures 154 may be implemented across any of the components in system 100. However, this information is depicted in data repository 120 for purposes of clarity and explanation.

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

[0028] 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, toggles, text fields, date and time selectors, command lines, sliders, pages, and forms.

[0029] In one embodiment, different components of interface 102 are 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, interface 102 is specified in one or more other languages, such as Java, C, or C++.

[0030] In one or more embodiments, system 100 may include more or fewer components than those shown in Figure 1. The components shown in Figure 1 may be local or remote from one another. The components shown in Figure 1 may be implemented in software and / or hardware. Each component may be distributed across multiple applications and / or machines. Multiple components may be integrated into one application and / or machine. Operations described with respect to one component may instead be performed by another component.

[0031] Additional embodiments and / or examples relating to computer networks are described below in Section 7 entitled "Computer Networks and Cloud Networks."

[0032] 3. Graphical User Interface 2 illustrates an example of a graphical user interface 202 that may be generated by graphical user interface generator 112. Graphical user interface 202 may be presented via interface 102. As shown, graphical user interface 202 presents four interface elements: workstation component 204, workstation configuration cost element 205, workstation component 206, and workstation configuration cost element 207.

[0033] The workstation component 204 represents and presents a cloud service workstation configuration 210. The workstation configuration 210 includes a set of resources that functionally behave as an individual computer. The workstation configuration 210 may include one or more computational resources 212. The computational resources 212 include one or more processing components, memory, and any other processing resources provided by the cloud service to a user of the cloud workstation 212. The computational resources 212 may be reserved exclusively within the cloud service for the cloud workstation instance.

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

[0035] 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 500 GB portion of a solid-state drive in a cloud service. Data used and generated by the computational resources 212 may be stored on the storage resource 216. The storage resource 216 may reside on a computer-readable medium shared by other cloud workstations and / or other cloud infrastructure. The storage resource 216 may be associated with a cost tier. Some storage resources may offer advantages such as access speed, security, frequent backups, or other benefits while incurring higher usage costs, while other storage resources may be associated with a second, lower-cost tier and provide fewer or negligible benefits compared to storage resources in higher-cost tiers. The workstation configuration cost element 205 represents the workstation configuration cost 218 associated with the workstation configuration 210.

[0036] The workstation component 206 represents and presents a cloud service workstation configuration 220. The workstation configuration 220 includes a different set of resources than the workstation configuration 210, such as compute resources 222, network resources 224, and storage resources 226. The workstation configuration cost element 207 represents a workstation configuration cost 228 associated with the workstation configuration 220.

[0037] The graphical user interface 202 also presents an interface element 206 and an interface element 208 that indicates that the workstation configuration 220 represented by the interface element 206 has been selected. The interface element 208 is shown as having a thick border, although any graphical indication of selection can be used, for example, a different shading pattern or color, or a check box.

[0038] The graphical user interface 202 also presents an interface element 230 that allows the user to accept and create the selected workstation configuration. When the user selects the interface element 230, the cloud resource manager 110 can create the workstation according to the resources defined in the selected workstation configuration.

[0039] 4. Creating an Interactive Cloud Workstation 3 illustrates an exemplary sequence of operations for presenting a graphical user interface for selecting a workstation configuration, according to one or more embodiments. One or more of the operations illustrated in FIG. 3 may be modified, rearranged, or omitted altogether. Thus, the particular sequence of operations illustrated in FIG. 3 should not be construed as limiting the scope of one or more embodiments. Examples of the results of the operations illustrated in FIG. 3 are shown and described with respect to FIG. 5 below.

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

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

[0042] In one or more embodiments, the 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 can select one of the plurality of presented workstation configurations using a pointing device, a keyboard, or touching a touch-sensitive screen via the interface 102. The graphical user interface generator 112 can present an interface element indicating which workstation configuration was selected.

[0043] In one or more embodiments, the graphical user interface generator 112 receives a second user selection of an element representing an additional component for implementation in the selected workstation configuration (act 306). In addition to presenting interface elements representing multiple workstation configurations, or upon selecting one of the workstation configurations, the graphical user interface generator 112 may present interface elements representing additional optional components that the user can add to the selected workstation configuration. The additional components may include, for example, additional storage resources, software applications for the workstation to run, or other resources. The user may select the additional component using, for example, a pointing device or keyboard selection.

[0044] In one or more embodiments, the graphical user interface generator 112 updates the display of the estimated costs (operation 308). The graphical user interface generator 112 may provide identifiers of the selected additional components to the cost estimator 118. The cost estimator 118 may retrieve cost information from resource cost data 122 and any negotiated cost information from customer information 128, and may determine an updated cost from the costs 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 costs for the selected workstation with the updated costs from the cost estimator 118.

[0045] At any time during the display and updating of the graphical user interface, the system can rearrange icons or other interface elements on the graphical user interface based on user input selecting one of various cloud service workstation configurations. In one example, the system can display the selected cloud service workstation at the center (e.g., center) of the graphical user interface. The system can further 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 the other candidate cloud service workstations. The interface elements of the other cloud service workstations associated with the smallest Cartesian distance are presented closest to the interface elements representing the selected cloud service workstation. The system can further modify the transparency, brightness, or other visual characteristics of the interface elements, for example, to highlight the selected elements or obscure unselected elements.

[0046] 4 illustrates an exemplary sequence of operations for presenting a graphical user interface for selecting a workstation configuration, according to one or more embodiments. One or more of the operations illustrated in FIG. 4 may be modified, rearranged, or omitted altogether. Thus, the particular sequence of operations illustrated in FIG. 4 should not be construed as limiting the scope of one or more embodiments. Examples of the results of the operations illustrated in FIG. 4 are shown and described with respect to FIG. 6 below.

[0047] In one or more embodiments, the graphical user interface generator 112 may receive a user selection of one 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 presented plurality of workstation configurations using a pointing device, a keyboard, or touching a touch-sensitive screen via the interface 102. The graphical user interface generator 112 presents an interface element indicating which workstation configuration has been selected, for example, a thick border, a color change, a shading change, a check box, or any other graphical indication of the selection.

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

[0049] 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 changed target budget 132. The single user input may be a newly specified or changed target performance 134. The single user input may be a newly specified or changed target time period 136.

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

[0051] In one or more embodiments, if the single user input is to change the duration, the graphical user interface generator 112 can determine an alternative workstation configuration that satisfies the duration input, or can determine 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 from the recommendation engine 140 a workstation configuration that can operate longer within the currently specified budget constraints, and the recommendation engine 140 can replace it with one or more less expensive resources. The cost estimator 118 can also update the cost associated with the changed workstation configuration. The graphical user interface generator 112 can then present the changed workstation configuration and the updated cost.

[0052] In one or more embodiments, if the single user input is to change the budget, the graphical user interface generator 112 may determine another workstation configuration that meets the budget input or may determine 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 may request a more expensive workstation configuration from the recommendation engine 140, which may add additional resources or replace them with more expensive resources. The cost estimator 118 may also update the cost associated with the changed workstation configuration. The graphical user interface generator 112 may then present the changed workstation configuration and the updated cost.

[0053] 5. Exemplary Embodiments For clarity, detailed examples are described below. The components and / or operations described below should be understood as specific examples that may not be applicable to a particular embodiment. Therefore, the components and / or operations described below should not be construed as limiting the scope of any of the claims.

[0054] 5 shows an example GUI 502 presenting three interface elements 504a, 504b, and 504c representing three different workstation configurations. GUI 502 also presents three interface elements representing three respective optional components 512, 514, and 516. Interface element 508 indicates that the user selected interface element 504a, which corresponds to the "small" workstation configuration, which has a cost of $1.18 per day. The user 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 added together and displayed in interface element 505 as $51.15 per month.

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

[0056] 7 shows an example GUI 702 presenting three interface elements 704a, 704b, and 704c representing three different workstation configurations. The GUI 702 also presents three interface elements 706a, 706b, and 706c representing possible relationships between a user-specified target budget and the cost of the selected workstation configuration. The user selects interface element 704c representing the “large” workstation configuration, as indicated by interface element 708. In response to this selection, and assuming the user-specified budget is less than $443.30 per month, the graphical user interface generator 112 determines that the cost associated with the “large” workstation configuration exceeds the user-specified budget. The graphical user interface generator 112 accordingly presents interface element 706c to indicate that the selection is over budget. When all three interface elements 706a, b, and c are displayed simultaneously, the graphical user interface generator 112 may graphically highlight the interface element 706 that corresponds to the determined cost-budget relationship, for example, with a thicker border, a different color, a different shading, or a different size relative to the other interface elements 706. Alternatively, the graphical user interface generator 112 may present only the interface element 706 that corresponds to the determined cost-budget relationship.

[0057] FIG. 8 shows an example GUI 802 presenting interface elements 810a, 810b, 810c, and 810d for selecting an application service domain. A user has selected interface element 810d, which represents an application service domain of “AI / ML” (artificial intelligence / machine learning), as indicated by interface element 808. In response to this selection, recommendation engine 140 can generate a workstation configuration for the selected application service domain. In one or more embodiments, recommendation engine 140 can generate the 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, recommendation engine 140 can generate the 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 user input 130, recommendation engine 140 can search cloud service workstation configurations 124 for workstation configurations for the selected application service domain. Graphical user interface generator 112 can present interface element 804 representing the recommended workstation configuration. In some embodiments, if the recommendation engine 140 generates more than one recommended workstation configuration, the graphical user interface generator 112 may present each of the recommended workstation configurations.

[0058] 6. Practical Applications, Benefits, and Improvements In one or more embodiments, system 100 provides a simple method for selecting a cloud services workstation configuration without requiring the selecting user to have specialized skills in provisioning a cloud work environment, while also respecting customer needs such as budget, timing, and / or performance constraints. System 100 provides the total projected cost of the workstation configuration prior to creation of the workstation and prior to commitment from the user. System 100 allows the user to change the configuration without having to specify a specific set of required resources. System 100 can recommend workstation configurations based on user input without requiring the user to select individual resource components of the workstation.

[0059] 7. Computer Networks and Cloud Networks In one or more embodiments, a computer network provides connectivity between a set of nodes. The nodes may be local and / or remote from one another. The nodes are connected by a set of links. Examples of links include coaxial cable, unshielded twisted cable, copper cable, optical fiber, and virtual links.

[0060] A subset of nodes implements computer networks. Examples of such nodes include switches, routers, firewalls, and network address translators (NATs). Another subset of nodes uses computer networks. Such nodes (also called "hosts") can run client processes and / or server processes. A client process requests a computing service (such as running a particular application and / or storing a particular amount of data). A server process responds by performing the requested service and / or returning corresponding data.

[0061] A computer network may be a physical network including physical nodes connected by physical links. A physical node may be 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 run various virtual machines and / or applications that perform respective functions. A physical link is a physical medium connecting two or more physical nodes. Examples of links include coaxial cable, unshielded twisted cable, copper cable, and optical fiber.

[0062] A computer network may be an overlay network. An overlay network is a logical network implemented on top of another network (e.g., a physical network). Each node in the overlay network corresponds to a node in the underlying network. Thus, each node in the overlay network is associated with both an overlay address (for addressing the overlay node) and an underlay address (for addressing the underlay node that implements the overlay node). Overlay nodes may be digital devices and / or software processes (e.g., virtual machines, application instances, or threads). Links connecting overlay nodes are implemented as tunnels through the underlying network. The overlay nodes at each end of the tunnel treat the underlying multi-hop path between them as a single logical link. Tunneling is performed through encapsulation and decapsulation.

[0063] In one embodiment, a client may be local and / or remote to a computer network. A client may access the computer network through a private network or another computer network, such as the Internet. A client may communicate a request to the computer network using a communication protocol, such as the Hypertext Transfer Protocol (HTTP). The request is communicated through an interface, such as a client interface (e.g., a web browser), a program interface, or an application programming interface (API).

[0064] In one embodiment, a computer network provides connectivity between clients and network resources. The network resources include hardware and / or software configured to run server processes. Examples of network resources include processors, data storage, virtual machines, containers, and / or software applications. The network resources are shared among multiple clients. The clients request computing services from the computer network independently of one another. The network resources are dynamically allocated on demand to requests and / or clients. The network resources allocated to each request and / or client may be scaled up or down based on, for example, (a) the computing services requested by a particular client, (b) the aggregated computing services requested by a particular tenant, and / or (c) the aggregated computing services requested from the computer network. Such a computer network may be referred to as a "cloud network."

[0065] In one embodiment, a service provider offers a cloud network to one or more end users. Various service models can be implemented by the cloud network, 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 offers end users the ability to use the service provider's applications running on the network resources. In PaaS, the service provider offers end users the ability to deploy custom applications on the network resources. The custom applications can be created using programming languages, libraries, services, and tools supported by the service provider. In IaaS, the service provider offers end users the ability to provision the processing, storage, network, and other basic computing resources provided by the network resources. Any application, including an operating system, can be deployed on the network resources.

[0066] In one embodiment, a computer network can implement various deployment models, including, but not limited to, private clouds, public clouds, and hybrid clouds. In a private cloud, network resources are provisioned for exclusive use by a specific group of one or more entities (as used herein, the term "entity" refers to a business, organization, person, or other entity). The network resources may be local and / or remote to the facilities of the specific group of entities. In a public cloud, cloud resources are provisioned for multiple entities (also called "tenants" or "customers") that are independent of each other. The computer network and its network resources are accessed by clients corresponding to different tenants. Such a computer network is sometimes referred to as a "multi-tenant computer network." Multiple tenants can use the same specific network resources at different times and / or simultaneously. The network resources may be local and / or remote to the tenant's facilities. In a hybrid cloud, the computer network includes a private cloud and a public cloud. An interface between the private cloud and the public cloud enables data and application portability. Data stored in the private cloud and the public cloud may be exchanged via the interface. Applications implemented in a private cloud and applications implemented in a public cloud may have dependencies on each other. Calls from applications in a private cloud to applications in a public cloud (and vice versa) may be made through interfaces.

[0067] In one embodiment, tenants of a multi-tenant computer network are independent of one another. For example, the business or operations of one tenant may be separate from the business or operations of another tenant. Different tenants may require different network requirements from the computer network. Examples of network requirements include processing speed, amount of data storage, security requirements, performance requirements, throughput requirements, latency requirements, resilience 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.

[0068] In one or more embodiments, tenant isolation is implemented in a multi-tenant computer network to prevent applications and / or data of different tenants from being shared with each other. Various tenant isolation approaches can be used.

[0069] In one embodiment, each tenant is associated with a tenant ID. Each network resource in the multi-tenant computer network is tagged with a tenant ID. A tenant is granted access to a particular network resource only if the tenant and the particular network resource are associated with the same tenant ID.

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

[0071] As one example, each database implemented by a multi-tenant computer network may be tagged with a tenant ID. Only the tenant associated with the corresponding tenant ID may access the data in the particular database. As another example, each entry in a database implemented by a multi-tenant computer network may be tagged with a tenant ID. Only the tenant associated with the corresponding tenant ID may access the data in the particular entry. However, a database may be shared by multiple tenants.

[0072] In one embodiment, the subscription list indicates which tenants are authorized to access which applications. For each application, a list of tenant IDs of tenants authorized to access that application is stored. A tenant is granted access to a particular application only if that tenant's tenant ID is included in the subscription list corresponding to that particular application.

[0073] In one embodiment, network resources (such as digital devices, virtual machines, application instances, and threads) corresponding to different tenants are separated into 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 sent to other devices in the same tenant overlay network. An encapsulation tunnel is used to prohibit 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 sent from a first encapsulation tunnel endpoint (communicating with the 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 sent by the source device. The original packet is sent from the second encapsulation tunnel endpoint to a destination device in the same specific overlay network.

[0074] 8. Hardware Overview According to one embodiment, the techniques described herein are implemented by one or more special-purpose computing devices. The special-purpose computing devices may be hardwired to execute the techniques, or may include digital electronic devices such as one or more application-specific integrated circuits (ASICs), field-programmable gate arrays (FPGAs), or network processing units (NPUs) permanently programmed to execute the techniques, or may include one or more general-purpose hardware processors programmed to execute the techniques according to program instructions in firmware, memory, other storage, or a combination thereof. Such special-purpose computing devices may also achieve these techniques by combining custom hardwired logic, ASICs, FPGAs, or NPUs with custom programming. The special-purpose computing devices may be desktop computer systems, portable computer systems, handheld devices, networking devices, or any other devices incorporating hardwired and / or program logic to implement these techniques.

[0075] 9 is a block diagram illustrating a computer system 900 in 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.

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

[0077] Computer system 900 further 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 disk or optical disk, is provided and coupled to bus 902 for storing information and instructions.

[0078] Computer system 900 may be coupled via 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 bus 902 for communicating information and command selections to processor 904. Another type of user input device is a cursor control device 916, such as a mouse, trackball, or cursor direction keys, for communicating directional information and command selections to processor 904 and for controlling cursor movement on display 912. 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), allowing the device to specify a position in a plane.

[0079] Computer system 900 can implement the techniques described herein using customized hardwired logic, one or more ASICs or FPGAs, firmware, and / or program logic that, in combination with the computer system, configures or programs computer system 900 as a special-purpose machine. According to one embodiment, the techniques described herein are performed by computer system 900 in response to processor 904 executing one or more sequences of one or more instructions contained in main memory 906. Such instructions may be read into main memory 906 from another storage medium, such as storage device 910. Execution of the sequences of instructions contained in main memory 906 causes 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.

[0080] 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 specific manner. Such storage media may include non-volatile media and / or volatile media. Non-volatile media include, for example, optical or magnetic disks, such as storage device 910. Volatile media include dynamic memory, such as main memory 906. Common forms of storage media include, for example, floppy disks, flexible disks, hard disks, solid-state drives, magnetic tape, or any other magnetic data storage medium, CD-ROMs, any other optical data storage medium, any physical medium with a pattern of holes, RAM, PROMs, and EPROMs, FLASH-EPROMs, NVRAMs, any other memory chips or cartridges, content addressable memories (CAMs), and ternary content addressable memories (TCAMs).

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

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

[0083] Computer system 900 also includes a communication interface 918 coupled to bus 902. The communication interface 918 provides a two-way data communication coupling to a network link 920 that is connected to a local network 922. For example, communication interface 918 may be an Integrated Services Digital Network (ISDN) card, a cable modem, a satellite modem, or a modem to provide a data communication connection to a corresponding type of telephone line. As another example, communication interface 918 may be a local area network (LAN) card to provide a data communication connection to a compatible LAN. A wireless link may also be implemented. In any such implementation, communication interface 918 sends and receives electrical, electromagnetic or optical signals that carry digital data streams representing various types of information.

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

[0085] 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, a server 930 might transmit a requested code for an application program through Internet 928, ISP 926, local network 922 and communication interface 918.

[0086] 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.

[0087] 9. Other, Expansion Embodiments are directed to systems comprising one or more devices that include a hardware processor and are configured to perform any of the operations described herein and / or recited in any of the claims below.

[0088] In one embodiment, a non-transitory computer-readable storage medium includes instructions that, when executed by one or more hardware processors, cause any of the operations described and / or claimed herein to be performed.

[0089] Any combination of the features and functions described herein may be used in accordance with one or more embodiments. In the foregoing specification, embodiments have been described with reference to numerous specific details that may vary from implementation to implementation. Accordingly, the specification and drawings should be interpreted in an illustrative rather than a limiting sense. The sole and exclusive indication of the scope of the invention, and what the applicant intends to be the scope of the invention, is the literal equivalents of the series of claims issuing from this application, the specific form in which such claims are issued, including any subsequent amendments.

Claims

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

2. The operation is receiving a second user input selecting one or more optional components for implementation in the first cloud service workstation configuration; updating a display of estimated costs in the GUI in response to receiving the second user input; further comprising 2. The medium of claim 1, wherein the estimated cost reflects both (a) the first cloud service workstation configuration and (b) the one or more optional components selected via the second user input.

3. The operation is receiving user input selecting a third cloud service workstation configuration; simultaneously presenting the third cloud service workstation configuration and a third cost associated with the third cloud service workstation configuration; further comprising the third cloud service workstation configuration defines at least two of a third set of computational resources, a third set of network resources, and a third set of storage resources; The operation is receiving a single user input to change the third cloud service workstation configuration; further comprising the single user input does not specify a set of requested computational resources, a set of requested network resources, or a set of requested storage resources; The operation is Determining a fourth cloud service workstation configuration further comprising 2. The medium of claim 1, wherein the fourth cloud service workstation configuration defines 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 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 from 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 from a current desired duration for the cloud environment.

7. 10. The medium of claim 1, wherein the GUI further includes a sixth user element that indicates a relationship between (a) the first cost associated with the first cloud service workstation and (b) a user-specified budget.

8. The medium of claim 1 , wherein the costs associated with a cloud services workstation include a negotiated cost for a particular user.

9. The operation is 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 the first application service domain; generating a recommended workstation configuration in response to receiving the selection of the first application service domain; displaying a ninth user interface element representing the recommended workstation configuration; and The medium of claim 1 further comprising:

10. A non-transitory computer-readable medium containing instructions that, when executed by one or more hardware processors, cause operations to be performed, the operations including: obtaining a set of past training data; Each set of past training data is a first cloud service workstation configuration defining at least two of a first set of computational resources, a first set of network resources, and a first set of storage resources for the cloud environment; an application service domain corresponding to an application using the first cloud service workstation; a performance measure corresponding to the performance of the first cloud service workstation; and Including, The operation is training a machine learning model to recommend a cloud service workstation configuration based on the set of historical training data; receiving a user selection of a target application service domain; applying the machine learning model to the target application service domain to generate a recommended cloud service workstation configuration; presenting the recommended cloud services workstation configuration in a graphical user interface; and 10. A non-transitory computer-readable medium, further comprising:

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

12. The operation is receiving at least one of performance measurements or feedback regarding the recommended workstation configuration; applying the machine learning model to an additional set of training data that includes the received performance measures or feedback; updating the machine learning model based on results generated by applying the machine learning model to additional sets of the training data; applying the updated machine learning model to a third target application service domain to generate a third recommended cloud service workstation configuration; and presenting the third recommended cloud service workstation configuration in a graphical user interface; and The medium of claim 10 further comprising:

13. one or more processors; a memory storing instructions that, when executed by the one or more processors, cause the system to perform the operations of any one of claims 1 to 12; A system comprising:

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

15. A method comprising the operations of any one of claims 1 to 12.