User Interface for Cloud Lifecycle Management
A user interface system addresses the challenge of managing DRCC lifecycle by providing tools for tracking and visualizing DRCC hardware components, enhancing customer control and operational efficiency.
Patent Information
- Application Number
- JP2025512736
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2023-08-25
- Filing Date
- 2023-08-28
- Publication Date
- 2025-09-25
AI Technical Summary
Traditional cloud management systems lack the ability to effectively manage the lifecycle of cloud infrastructure components hosted on customer premises, particularly in Dedicated Region Clouds (DRCCs), which require increased user insight and responsibility for physical infrastructure.
A user interface system is developed to track and manage the lifecycle of DRCC hardware components, providing tools for deployment, validation, workload identification, and visual representation of deployment statuses, enabling customers to maintain and operate DRCCs with enhanced visibility and control.
Enables customers to efficiently manage DRCCs with improved visibility into infrastructure operations, reducing operational costs and meeting regulatory and latency requirements while maintaining public cloud functionality and security.
Smart Images

Figure 2025531721000001_ABST
Abstract
Description
[Technical Field]
[0001] CROSS-REFERENCE TO RELATED APPLICATIONS This application claims priority to U.S. Provisional Patent Application No. 63 / 402,026, filed August 29, 2002, entitled "Dedicated Cloud Regions at Customer Premises," U.S. Provisional Patent Application No. 63 / 379,427, filed October 13, 2022, entitled "Dedicated Cloud Regions at Customer Premises," and U.S. Non-Provisional Patent Application No. 18 / 456,443, filed August 25, 2023, entitled "User Interfaces for Cloud Lifecycle Management," the contents of which are incorporated herein by reference in their entireties for all purposes. [Background technology]
[0002] FIELD OF THE INVENTION The present disclosure generally relates to user interface technologies associated with managing data associated with Dedicated Region Clouds at Customer (DRCCs) at one or more Customers. The DRCCs host infrastructure components and services provided by Cloud Service Providers (CSPs) (also referred to as "cloud providers" for simplicity) that are deployed and run on computing devices physically located in the cloud Customer's data centers. The disclosed systems, methods, devices, and services enable the procurement and lifecycle management of these infrastructure components by the cloud provider. Summary of the Invention [Problem to be solved by the invention]
[0003] background In cloud computing, processing and storage are generally performed by one or more service providers implemented at a centralized location. Data can be received from customers at the centralized location, processed there, and then the processed (or other) data can be transmitted back to the customers. However, having a centralized location for cloud infrastructure components is not ideal for all users. Some users may prefer to host cloud infrastructure components on hardware located on their own premises. Such users can generally be referred to as "cloud owners." Traditional systems lack the ability to manage the lifecycle of the hardware that hosts these cloud infrastructure components. The techniques discussed herein are intended to address these aspects of cloud management.
[0004] Quick Overview In the following description, for purposes of explanation, specific details are set forth in order to provide a thorough understanding of some embodiments. However, it will be apparent that various embodiments may be practiced without these specific details. The illustrations and description are not intended to be limiting. [Means for solving the problem]
[0005] Some embodiments may include a method. The method may include an application in a cloud computing environment obtaining deployment data corresponding to a dedicated cloud via a plurality of user interfaces. In some embodiments, the dedicated cloud may be associated with a plurality of cloud infrastructure components that provide corresponding cloud services associated with a cloud service provider. In some embodiments, the plurality of cloud infrastructure components are hosted by one or more computing devices located at a third-party location. In some embodiments, the third-party location may be associated with a third-party entity different from the cloud service provider. The method may include the application tracking deployment data based at least in part on input provided via the plurality of user interfaces. The method may include the application transitioning a deployment state associated with deploying hardware for the dedicated cloud. In some embodiments, the deployment state may transition from a first state to a second state based at least in part on the tracking. The first state and the second state may each be one of a plurality of states of an order associated with the deployment of the dedicated cloud. The method may include the application presenting information indicating the transition of the deployment state from the first state to the second state in one or more user interfaces of the plurality of user interfaces.
[0006] The method may include validating the deployment data based, at least in part, on the application performing one or more validation operations on the deployment data provided via one or more user interfaces.
[0007] In some embodiments, at least one of the plurality of user interfaces is configured to obtain workload data identifying one or more workloads to be executed by the plurality of cloud infrastructure components of the dedicated cloud. The method may further include identifying one or more hardware components for the dedicated cloud based, at least in part, on the identified one or more workloads. In some embodiments, the one or more hardware components may be identified from a plurality of available hardware components.
[0008] The method may include the application presenting one or more user interface elements presenting hardware data specifying one or more hardware components. The method may further include 1) the application tracking a plurality of deployment statuses corresponding to the deployment of each of the plurality of dedicated host regions, 2) the application generating one or more visual representations based, at least in part, on tracking the plurality of deployment statuses corresponding to the respective deployments, and 3) presenting the one or more visual representations within at least one user interface of the plurality of user interfaces.
[0009] The method may include the application transitioning a region state associated with provisioning hardware for the dedicated cloud. In some embodiments, the region state can transition from a third state to a fourth state based at least in part on the tracking. In some embodiments, the third state and the fourth state can each be one of a second plurality of states of a second predefined order associated with provisioning the regional cloud hardware. The method may include the application presenting an indication in one or more user interfaces that the region state has transitioned from the third state to the fourth state.
[0010] Systems, computing devices, and computer-readable media are disclosed, each of which may include one or more memories capable of storing instructions corresponding to the methods disclosed herein. The instructions are executable by one or more processors of the disclosed systems and devices to perform the methods disclosed herein. One or more computer programs may be configured to perform operations corresponding to the described methods by including instructions that, when executed by one or more processors, cause the one or more processors to perform those operations.
[0011] To easily identify the discussion of any particular element or act, one or more of the most significant digits of a reference number will refer to the figure number in which that element is first introduced. [Brief explanation of the drawings]
[0012] [Figure 1] 1 is a block diagram of an environment in which a dedicated region cloud ("DRCC") is hosted at a customer, according to at least one embodiment. [Figure 2] FIG. 10 is a block diagram illustrating an example flow for obtaining operational data corresponding to a DRCC, in accordance with at least one embodiment. [Figure 3] FIG. 1 is a block diagram illustrating an overview of a number of software tools available to various entities serving cloud providers and / or customers, according to at least one embodiment. [Figure 4] 1 is a block diagram illustrating an example user interface (e.g., landing page) of a DRCC deployment management application in accordance with at least one embodiment. [Figure 5] FIG. 1 is a block diagram illustrating an example user interface (e.g., a customer page) of a DRCC deployment management application in accordance with at least one embodiment. [Figure 6] 1 is a block diagram illustrating an example user interface (e.g., a deployment page) of a DRCC deployment management application in accordance with at least one embodiment. [Figure 7] 1 is a block diagram illustrating an example user interface (e.g., a deployment details page) of a DRCC deployment management application in accordance with at least one embodiment. [Figure 8] FIG. 1 is a block diagram illustrating interface elements for managing regions via a deployment details page of a DRCC deployment management application, according to at least one embodiment. [Figure 9] 1 is a block diagram illustrating an example user interface (e.g., a region details page) of a DRCC deployment management application in accordance with at least one embodiment. [Figure 10] 1 is a block diagram illustrating example user interface elements of a region details page of a DRCC deployment management application in accordance with at least one embodiment. [Figure 11] 10 is a block diagram illustrating example user interface elements corresponding to the exceptions tab of a region details page in accordance with at least one embodiment. [Figure 12] 1 is a block diagram illustrating example user interface elements corresponding to a capacity forecast tab of a region details page of a DRCC deployment management application in accordance with at least one embodiment. [Figure 13] 1 is a block diagram illustrating an example user interface (e.g., capacity forecast details page) of a DRCC deployment management application in accordance with at least one embodiment. [Figure 14] FIG. 1 is a block diagram illustrating an example user interface (e.g., configuration and margin analysis page) of a DRCC deployment management application in accordance with at least one embodiment. [Figure 15] FIG. 1 is a block diagram illustrating an example user interface (e.g., a dashboard) of a DRCC deployment management application in accordance with at least one embodiment. [Figure 16] FIG. 1 is a block diagram illustrating an example user interface (e.g., a cutover calendar page) of a DRCC deployment management application in accordance with at least one embodiment. [Figure 17] 1 is a block diagram illustrating an example user interface (e.g., a deployment tracker page) of a DRCC deployment management application in accordance with at least one embodiment. [Figure 18] FIG. 1 is a block diagram illustrating an example user interface (e.g., a hardware forecasting page) of a DRCC deployment management application in accordance with at least one embodiment. [Figure 19] 1 is a block diagram illustrating an example user interface (e.g., hardware and networking information page) of a DRCC deployment management application in accordance with at least one embodiment. [Figure 20]1 is a block diagram illustrating a number of user interface elements presented in a user interface (e.g., an exception approval mapping page) of a DRCC deployment management application in accordance with at least one embodiment. [Figure 21] FIG. 1 is a block diagram illustrating an example method for managing the lifecycle of a DRCC and its corresponding hardware components, in accordance with at least one embodiment. [Figure 22] FIG. 1 illustrates a high-level structure of an exemplary 12-rack base footprint on which an IaaS / DRCC architecture is hosted. [Figure 23] FIG. 1 is a block diagram illustrating a pattern for implementing a cloud infrastructure system as a service that includes a dedicated region operating as part of a DRCC, according to at least one embodiment. [Figure 24] FIG. 1 is a block diagram illustrating one pattern for implementing a cloud infrastructure system as a service, in accordance with at least one embodiment. [Figure 25] FIG. 1 is a block diagram illustrating another pattern for implementing a cloud infrastructure system as a service, in accordance with at least one embodiment. [Figure 26] FIG. 1 is a block diagram illustrating another pattern for implementing a cloud infrastructure system as a service, in accordance with at least one embodiment. [Figure 27] FIG. 1 is a block diagram illustrating another pattern for implementing a cloud infrastructure system as a service, in accordance with at least one embodiment. [Figure 28] FIG. 1 is a block diagram illustrating an example computer system according to at least one embodiment. DETAILED DESCRIPTION OF THE INVENTION
[0013] Detailed Description In the following description, various embodiments are described. For purposes of explanation, specific configurations and details are set forth in order to provide a thorough understanding of the embodiments. However, it will be apparent to one skilled in the art that the embodiments may be practiced without the specific details. Furthermore, well-known features may be omitted or simplified so as not to obscure the embodiments being described.
[0014] introduction Infrastructure as a Service (IaaS) is a type of cloud computing. IaaS can be configured to provide virtualized computing resources over a public network (e.g., the Internet). In the IaaS model, a cloud computing provider can host infrastructure components (e.g., servers, storage devices, network nodes (e.g., hardware), deployment software, platform virtualization (e.g., hypervisor layer), etc.). In some cases, an IaaS provider can also offer various services (e.g., billing, monitoring, logging, security, load balancing, clustering, etc.) that accompany those infrastructure components. Accordingly, these services can be policy-driven, allowing IaaS users to implement policies that drive load balancing to maintain application availability and performance.
[0015] In some cases, IaaS customers can access resources and services over a wide area network (WAN) like the Internet and use the cloud provider's services to install the remaining elements of their application stack. For example, a user can log into an IaaS platform to create virtual machines (VMs), install an operating system (OS) on each VM, deploy middleware like a database, create storage buckets for workloads and backups, and even install enterprise software on the VMs. The customer can then use the provider's services to perform a variety of functions, including distributing network traffic, troubleshooting application issues, monitoring performance, and managing disaster recovery.
[0016] In most cases, the cloud computing model requires the participation of a cloud provider. A cloud provider can be, but is not required to be, a third-party service that specializes in providing (e.g., offering, renting, selling) IaaS. In some embodiments, an entity can deploy a private cloud and become its own provider of infrastructure services.
[0017] In some examples, IaaS deployment is the process of placing a new application, or a new version of an application, onto a prepared application server, etc. IaaS deployment may also include the process of preparing the server (e.g., installing libraries, daemons, etc.), which is often managed by the cloud provider below the hypervisor layer (e.g., server, storage, network hardware, and virtualization). Thus, the customer may be responsible for handling the deployment of the (OS), middleware, and / or application (e.g., in self-service virtual machines (e.g., that can be spun up on demand)). IaaS provisioning may refer to obtaining the computers or virtual hosts to be used and also installing the necessary libraries or services on those computers or virtual hosts. In most cases, deployment does not include provisioning, which must be performed first.
[0018] In some examples, the infrastructure can have many interconnected elements. For example, there can be one or more virtual private clouds (VPCs) (e.g., potential on-demand pools of configurable and / or shared computing resources), also known as a core network. In some examples, there can also be one or more security group rules and one or more virtual machines (VMs) provisioned to define how the network is secured. Other infrastructure elements, such as load balancers, databases, etc., can also be provisioned. The infrastructure can evolve over time as more infrastructure elements are desired and / or added.
[0019] In some cases, continuous deployment techniques can be employed to enable deployment of infrastructure code across various virtual computing environments. Additionally, the described techniques can enable infrastructure management within these environments. In some examples, a service team may write code that is desired to be deployed to one or more, but often many, different production environments (e.g., across various different geographic locations, sometimes across the globe). However, in some examples, the infrastructure onto which the code will be deployed must first be set up. In some cases, provisioning can be done manually, and provisioning tools may be utilized to provision the resources, and / or deployment tools may be utilized to deploy the code once the infrastructure is provisioned.
[0020] Dedicated regional cloud in customer environment This disclosure relates to lifecycle management of components of a customer Dedicated Region Cloud (DRCC) (also referred to as a "dedicated cloud" for simplicity). The DRCC hosts infrastructure and services provided by a Cloud Service Provider (CSP) (also referred to as a "cloud provider" for simplicity) that are deployed and run on computing devices physically located in the customer's (e.g., "cloud owner") own data center. The DRCC enables enterprises to easily consolidate mission-critical database systems, with applications traditionally deployed on expensive hardware being deployed on the CSP's highly available and secure infrastructure, thereby providing operational efficiencies and modernization opportunities.
[0021] The DRCC framework provides full public cloud functionality on-premises, allowing enterprises to reduce infrastructure and operational costs, upgrade legacy applications with modern cloud services, and meet the most stringent regulatory, data residency, and latency requirements, all on the CSP's infrastructure, which provides improved performance and the highest levels of security. Customers gain the choice and flexibility to run all of the CSP's cloud services in their own data centers. Customers can choose from all public cloud services offered by the CSP, including VMware Cloud, Autonomous Database, Container Engine for Kubernetes, Bare Metal Servers, and Exadata Cloud Service, and pay only for the services they consume. The DRCC framework is designed to keep data and customer operations completely isolated from the internet (control and data plane operations remain on-premises), helping customers meet the most stringent compliance and latency requirements. The DRCC framework provides cloud-scale security, resiliency, and scalability, as well as support for mission-critical workloads, with tools to incrementally modernize legacy workloads with a fully managed experience and access to new capabilities the moment they become available in the public cloud.
[0022] A DRCC can provide services and functionality similar to those available in a centralized cloud environment that is more traditionally managed by a cloud provider on the cloud provider's premises. One example of a centralized cloud (referred to herein as a "central cloud," "OCI cloud," or "public cloud") may be an IaaS environment that is publicly available to many customers and is hosted, for example, on Oracle Cloud Infrastructure (OCI). Similar techniques discussed herein can also be applied to a private label cloud. A "private label cloud" (PLC) refers to a cloud environment that is managed by a cloud provider (e.g., Oracle) but branded as if it were provided by a third party (e.g., a customer). Examples herein are discussed with reference to a DRCC, but any reference to functionality or features provided in a DRCC may similarly be provided in a PLC.
[0023] Hosting the cloud at a customer's location creates unique needs for the cloud owner (e.g., a DRCC customer). DRCC customers differ from standard public cloud customers because they assume increased responsibility for the facilities in which the DRCC operates. DRCC customers may act more like partners with the cloud provider than typical public cloud consumers. While the cloud provider may manage much of the DRCC's infrastructure, customers have substantial responsibility and a stake in ensuring their DRCC functions effectively. This responsibility requires customers to have a different level of insight into the physical infrastructure running in their data centers than public cloud customers.
[0024] Customers can be provided with the tools to effectively manage their DRCC while maintaining the same public cloud (e.g., OCI) experience. DRCC customers require a rich set of tools to manage various aspects of the DRCC (e.g., operations and capacity). The technology disclosed herein differs from the public cloud experience in terms of increased visibility into the DRCC infrastructure and its operational activities, allowing users to access data (via the user interfaces of Figures 4-22 discussed herein) that was previously unavailable and / or inaccessible to the customer.
[0025] FIELD OF THE INVENTION The disclosed technology is directed to managing the lifecycle of a DRCC and its corresponding hardware components. The technology described herein enables a user (e.g., a user associated with a CSP) to manage and track various aspects of a DRCC, such as customer data, deployments, deployment status, regions, capacity, hardware, and various metrics and metadata associated with the DRCC and / or DRCC customers. User input can be provided via interfaces discussed in connection with FIGS. 4-20. Utilizing various attributes of the user input, the system can track various additional metrics associated with the deployment of the DRCC's hardware components along with the deployment status of the DRCC.
[0026] Turning to the figures, FIG. 1 is a block diagram of an environment 100 in which a dedicated region cloud (“DRCC” or “dedicated cloud”) is hosted on customer premises and interacts with a cloud provider's public cloud infrastructure, according to at least one embodiment. The region 102 can be one of many DRCCs or private-label clouds (e.g., DRCC / PLC 104). In a DRCC, the customer can own the hardware that hosts the region 102. The region 102 can be managed by a cloud service provider. In a PLC, the hardware owner (e.g., a cloud customer) can utilize the region 102 to offer cloud services to its customers under its own brand.
[0027] Region 1002 may include DRCC resources 106, including, but not limited to, Exadata 108, file system services 110, object storage services 112, block storage services 114, compute services 116, and services 118, which may include any suitable number of services configured to provide cloud services similar to those accessible in a public cloud. OC1 120 may be an example of a public cloud.
[0028] The region 102 may include a DRCC Horizon service 120, which may be configured to obtain capacity and utilization data associated with hardware hosting the region 102. The capacity and utilization data may include any suitable data related to compute, block storage, object storage, file storage, database resources, physical space, server resources, network resources, power consumption, etc. Specific examples of such data are presented and discussed in further detail below with respect to FIGS. 4-22. In some embodiments, the DRCC Horizon service 120 may be configured to communicate with any suitable combination of DRCC resources 106 to obtain any suitable information corresponding to capacity management, growth management, health and performance tracking, change management, etc.
[0029] In some embodiments, DRCC Horizon service 120 may be a lightweight version of central Horizon service 121 of OC1 120 and may be configured to provide a subset of the functionality provided by central Horizon service 121. By way of example, in some embodiments, DRCC Horizon service 120 may be configured to retrieve only capacity management data, while central Horizon service 121 may be configured to retrieve any suitable combination of capacity management data, expansion management data, health and performance tracking data, and / or change management data.
[0030] The DRCC Horizon service 120 may store any suitable combination of the retrieved data in object storage 122 in a dedicated bucket (e.g., a Horizon bucket) associated with that service. In some embodiments, as discussed in more detail in connection with FIG. 30 , the DRCC Horizon service 120 may run in a tenancy separate from any suitable components of the DRCC resources 106 and / or region 102, as shown in FIG. 1 .
[0031] The region 102 may host an Oracle Control Center (OCC) service 124. The OCC service 124 may be configured to retrieve any suitable data collected by the DRCC Horizon service 120 from object storage 122 (e.g., from a bucket specific / dedicated to the DRCC Horizon service 120) and store the retrieved data in an autonomous data warehouse (e.g., ADW 126). The ADW 126 may be an example of any suitable data store (e.g., an object storage bucket accessible to and managed by the OCC service 124). In some embodiments, the DRCC Horizon service 120 may be configured to store the data it collects directly in the ADW 126, as shown in FIG. 1 . Data retrievable by the DRCC Horizon service 120 may pertain only to the region 102. The DRCC Horizon service 120 of a given region may not be communicatively connected to any other DRCCs / PLCs of the DRCCs / PLCs 104.
[0032] The OCC service 124 can retrieve any suitable portion of the data stored in the ADW 126 and provide it to the DRCC OCC console 128. In some embodiments, the DRCC OCC console 128 can be configured to present any suitable portion of that data via any suitable number of user interfaces. Examples of such user interfaces are discussed in further detail below with respect to FIGS. 4-22. Using these interfaces, owners of the hardware hosting the region 102 can view the data collected by the DRCC Horizon service 120. The data presented by the DRCC OCC console 128 may be specific to the region 102. Data corresponding to other DRCCs and / or PLCs is collected and presented via the respective components of those environments and may not be accessible to the DRCC OCC console 128 of the region 102.
[0033] At 130 (e.g., according to a predefined schedule or at any suitable time), any suitable portion of the data in object storage 122 can be imported into a corresponding object storage bucket associated with central Horizon service 121. Central Horizon service 121 can be configured to retrieve data from this bucket and store the data in Horizon ADW 132, a data store within OC1 120. In some embodiments, Horizon ADW 132 can be a public cloud object storage bucket dedicated to storing data collected by DRCC Horizon service 120. Central Horizon service 121 can be configured to retrieve any suitable data from any suitable number of DRCC PLCs 104 for storage in Horizon ADW 132 in this manner. At 134, any suitable portion of the data stored in Horizon ADW 132 can be provided via one or more data visualizations. By way of example, the data visualizations can be presented to a user (e.g., a public cloud operator) via any suitable user interface.
[0034] OC1 120 may execute a DRCC cloud card web application 136. At 138, the DRCC cloud card web application may export any suitable data from the Horizon ADW 132 to an object storage bucket associated with the central Horizon service 121. By way of example, this data may be presented using the user interfaces discussed below in connection with FIGS. 4-22.
[0035] At 140, DRCC values and forecast data 142 may be imported into an object storage bucket associated with central Horizon service 121. DRCC values and forecast data 142 may include any suitable data provided from any external source, including, without limitation, forecast values corresponding to capacity, usage, costs, orders, revenue, etc. associated with any suitable combination of DRCC / PLC 104. In some embodiments, this information may be provided via any suitable interface (e.g., by DRCC Cloud Card web application 136 and / or DRCC Lifecycle Management Apex application 144).
[0036] In some embodiments, OC1 120 may include a DRCC lifecycle management Apex application 144 that may be configured to retrieve and present data stored in MXP ADW 146. In some embodiments, the data presented by DRCC lifecycle management Apex application 144 may relate to any suitable component of DRCC / PLC 104.
[0037] At 148, data may be exported from the Horizon ADW 132 (e.g., a bucket in object storage associated with the central Horizon service 121) and stored in the MXP ADW 146. Such data may be viewable in the DRCC lifecycle management Apex application 144. In some embodiments, any suitable data (e.g., user input provided via a user interface hosted by the DRCC lifecycle management Apex application 144) may be stored in the MXP ADW 146. At 150, any suitable data stored in the MXP ADW 146 may be imported into an object storage bucket (e.g., the Horizon ADW 132) associated with the central Horizon service 121.
[0038] 1 may be performed any suitable number of times to make data collected at the DRCC / PLC 104 viewable by users of the public cloud via applications in OCI 120. Data collected by each DRCC Horizon service (e.g., the DRCC Horizon service 120 in region 102) may be viewable at any suitable time using the DRCC OCC console 128. In some embodiments, the DRCC OCC console 128 may be configured to provide user interfaces and / or data visualizations (e.g., the data visualizations shown at 134) that may be similar to those provided by the DRCC Cloud Card web application 136 and / or the DRCC Lifecycle Management Apex application 144 and / or the data visualizations 134. However, those user interfaces, data, and / or data visualizations may be DRCC / PLC-specific and may not pertain to other DRCC / PLCs 104.
[0039] Figure 2 is a block diagram illustrating an example flow 200 for obtaining operational data corresponding to a DRCC, according to at least one embodiment. Figure 2 shows a number of components of a DRCC, such as the DRCC corresponding to region 102 of Figure 1. The following components and flow 200 may be applied to a private label cloud as well.
[0040] The DCC 204 may be a software component configured (e.g., by a timer and / or via a predetermined schedule or frequency) to trigger the collection of metrics obtained by the DRCC Horizon service 206. The DRCC Horizon service 206 may be an example of the DRCC Horizon service 120 of FIG. 1. In some embodiments, the DRCC Horizon service 206 may collect capacity and / or usage data associated with the hosting region 102. The capacity and / or usage data may be associated with any suitable combination of compute resources, object storage, block storage, file storage, database resources, physical space, server devices, networking devices, and / or power consumption. The DRCC Horizon service 206 may be configured to communicate with any suitable combination of the DRCC resources 106 of FIG. 1 to obtain any suitable information corresponding to capacity management (e.g., capacity and usage data), growth management, health and performance tracking, change management, etc. This data may collectively be referred to as “metric data.” The DRCC Horizon service 206 may perform data collection operations according to its own internal schedule or a predefined periodicity. The collected data may be stored (e.g., via a PUT command, etc.) by the DRCC Horizon service 206 in an object storage bucket (e.g., an object storage bucket dedicated to the Horizon service, such as an object storage bucket ("Horizon bucket," not shown)). In some embodiments, data storage and retrieval may be performed by issuing requests to an object storage service 208, which may be configured to manage object storage (including the Horizon bucket).DCC204 can trigger DataFlow service 210 to retrieve (e.g., read using object storage service 208) the metric data stored in the object storage bucket at any suitable time or according to any suitable predetermined frequency and / or schedule.
[0041] In some embodiments, the DRCC Horizon service 206 may include an event adapter 212, which may be configured to similarly invoke the DataFlow service 210 to retrieve metric data from object storage buckets (e.g., utilizing a REST API corresponding to the object storage service 208). In some embodiments, any suitable combination of the DCC 204 and / or the event adapter 212 may be utilized to invoke the functionality of the DataFlow service 210.
[0042] In some embodiments, multiple (e.g., two, three, etc.) instances of DCC 204 can be utilized for multi-node arbitration and redundancy. That is, each DCC 204 instance can attempt to perform a lock (e.g., a daily lock) on ADW 216. If the lock is successful, the corresponding instance can proceed to invoke the dataflow application. Otherwise (because another instance of DCC 204 has already locked ADW 216), the instance can stop execution.
[0043] The DataFlow service 210 may run any suitable number of jobs (e.g., Spark jobs 214) to collect and / or transform data from object storage buckets (utilizing a REST API associated with the object storage service 208). In some embodiments, the Spark jobs 214 may perform any suitable pre-defined transformations on the collected data and may be configured to write the transformed data to the ADW 216 (and example ADW 126 in FIG. 1).
[0044] A console plug-in user interface (UI) 218 can be utilized at any suitable time to request and / or display any suitable portion of the metric data. In some embodiments, the console plug-in UI 218 is an example of the DRCC OCC console 128 of FIG. 1. Input provided via the console plug-in UI 218 can be submitted as a query via a REST API 220 (e.g., directly or via the OCC service 124 of FIG. 1). The REST API 220 can be configured to provide access to region-specific metric data within the ADW 216. In some embodiments, queries can pass through a DB abstraction layer 222. The DB abstraction layer 222 can be a read-only layer that shields the REST API 220 from the details of how data is stored in the underlying database (e.g., the ADW 216).
[0045] Canary service 224 (an example of a health collection service) may be configured to perform health checks 226 of various services and / or components (e.g., DCC 204, DataFlow service 210, DRCC Horizon service 206, object storage service 208, etc.). Health checks 226 (e.g., collection of metrics related to the health of the aforementioned services) may be performed at any suitable time with any suitable frequency and / or according to a predetermined schedule.
[0046] The ADW lifecycle management application 228 may be a software component configured to manage the lifecycle of an ADW database, including, but not limited to, managing changes to the schema, scheduling SQL jobs, etc. In some embodiments, the ADW lifecycle management application 228 may utilize Liquibase to manage these aspects of the ADW 216. The lifecycle management operations of the ADW lifecycle management application 228 may be determined, at least in part, based on reading the Liquibase change log data 230 corresponding to the ADW 216.
[0047] Another computing component of the DRCC may perform operations to install / setup / patch the DataFlow service 210 at 232. For example, instructions to perform the operations may be stored in the DataFlow service 210 as part of the installation performed at 232. In some embodiments, the operations performed at 232 may include installing and / or rotating credentials for the ADW 216 stored in the Vault service 234.
[0048] The flow 200 may begin at step 1, where credentials for the ADW 216 are installed in the Vault service 234. In step 2, instructions for the DataFlow service 210 and credentials for the ADW 216 may be installed.
[0049] In step 3, functionality in the DCC 204 may be invoked (e.g., by a function call initiated in the event adapter 212, or via a timer, according to a predetermined schedule or frequency, etc.) In some embodiments, functionality in the DCC 204 may be invoked using a REST API corresponding to the DCC 204.
[0050] In step 4, the DCC 204 may attempt to perform a lock on the ADW 216. If unsuccessful, the DCC 204 may stop processing and the flow may be stopped. Otherwise, in step 5, the DCC 204 may invoke the DataFlow Application of the DataFlow Service 210.
[0051] The DRCC Horizon service 206 may have previously collected metric data and stored this data in a dedicated bucket (not shown) associated with the service by executing a PUT data command on the object storage service 208. These operations are shown in step 6 and may occur at any suitable time.
[0052] In step 7, DataFlow service 210 may read (or otherwise obtain from object storage service 208) the metrics data collected by DRCC Horizon service 206 and previously stored in a Horizon bucket by object storage service 208 according to the instructions installed in step 2. DataFlow service 210 may run Spark job 214 to collect and / or transform that data. In step 8, Spark job 214 may be configured to read and / or obtain a password (or other credential) for ADW 216 from Vault service 234. In step 9, Spark job 214 may write the collected and / or transformed data to ADW 216 (e.g., using the previous credentials installed in DataFlow service 210 or the credentials obtained in step 8).
[0053] At step 10 (or at any suitable time), input may be received at the console plug-in UI 218 to access metric data stored in the ADW 216. In some embodiments, this input may be obtained from one of the user interfaces of Figures 4-22 presented by the console plug-in UI 218. At step 11, the user input may be passed through the REST API 220 and DB abstraction layer 222 to query the ADW 216 for the requested metric data.
[0054] At any suitable point, ADW lifecycle management application 228 may read Liquibase change log data 230 in step 12 to identify and implement changes to ADW 216. Canary service 224 (an example of a service or application that performs health checks and / or collects health-related data for one or more other components) may perform health check 226 in step 13 to collect health-related data corresponding to other components in Figure 2. In some embodiments, canary service 224 requests metric data (e.g., via REST API 220 and DB abstraction layer 222) to identify the health of other components in Figure 2 (e.g., DRCC Horizon service 206, DataFlow service 210, etc.) and / or components of the DRCC (e.g., DRCC resources 106 of Figure 1).
[0055] 8 illustrates an example user interface (e.g., user interface 800, one of user interfaces 308 in FIG. 3). As shown, user interface 800 presents data regarding live customers, signed customers, and pipeline customers corresponding to multiple DRCCs / PLCs (each an example of DRCC / PLC 104 in FIG. 1). As shown, user interface 800 displays the customer identifier, status, region, country, quantity, and status details of the DRCC / PLC. Although provided in a tabular format, the data presented in user interface 800 may be formatted differently.
[0056] 3 is a block diagram 300 outlining a number of software tools available to various cloud provider and / or customer-facing entities, according to at least one embodiment. The service provider tools (e.g., tools 302) may include a management dashboard 305. In some embodiments, management dashboard 305 may be used to display lifecycle management data and financial information related to any suitable number of DRCCs (and / or PLCs), such as DRCC / PLC 104 of FIG. 1.
[0057] The tools 302 may include any suitable number of deployment management tools 306 (e.g., portals) to support end-to-end tracking of the deployment or expansion of a DRCC / PLC (e.g., DRCC / PLC 104 of FIG. 1). In some embodiments, the deployment management tools 306 may be available to, among others, region teams, service teams, and account teams of the DRCC / PLC.
[0058] The tools 302 may include a user interface 308. The user interface 308 (e.g., FIGS. 5-24) may be utilized for any suitable combination of order tracking, incident management, equipment management, consumption reporting, capacity planning, change management, and alerts, to name a few. In some embodiments, the user interface 308 may be utilized by, among others, the DRCC / PLC's region teams, service teams, and account teams.
[0059] The tools 302 may include an application programming interface (API) 310. The API 310 may be utilized to access metric data and / or data used by cloud lifecycle management tools (e.g., the ADW lifecycle management application 228 of FIG. 2). In some embodiments, the API 310 may be utilized by, among other things, the DRCC / PLC's regional and service teams.
[0060] The tools 304 may include a DRCC console 312 (an example of the DRCC OCC console 128 of FIG. 1 ). The DRCC console 312 may be utilized to access metric data and / or data used for facilities management, consumption reporting, capacity planning, change management, and alerts, among other uses. In some embodiments, the DRCC console 312 may be utilized by, among other things, DRCC / PLC regional and service teams. The DRCC console 312 may present any suitable combination of this data in any suitable combination of user interfaces.
[0061] 4 is a block diagram illustrating an example user interface (UI) 400 (e.g., a landing page) of a DRCC deployment management application according to at least one embodiment. UI 400 may be a landing page of a DRCC management application (e.g., DRCC lifecycle management application 144 of FIG. 1, example lifecycle management application 228 of FIG. 2, etc.). UI 400 may include any suitable data associated with managing hardware, customers, deployments, management tasks, or any suitable aspect of the DRCC or DRCC components.
[0062] As shown, UI 400 includes shortcuts 402, which may include any suitable number of links to any suitable number of user interfaces of the DRCC management application. By way of example, FIG. 4 includes a home link 404, a deployment link 406, a dashboard link 408, a customers link 410, a cutover calendar link 412, a reports link 414, and an administration link 416. In some embodiments, UI 400 may include a quick links area 418. Quick links area 418 may include any suitable number of user interface elements, such as UI elements 420-442. Each UI element may include any suitable combination of a page name, a description, and an icon, among other attributes not shown. By way of example, UI element 420 may correspond to a customers page (e.g., UI 500 of FIG. 5). In some embodiments, UI 420 includes the page name "Customers," a description (e.g., add, delete, or modify customer details), and an icon 421. In some embodiments, UI 420 corresponds to Customers link 410. Selecting either UI 420 or customer link 420 may cause the user to be navigated to UI 500 of FIG.
[0063] As an illustrative example, UI 422 may correspond to the deployment link 406. Selecting either UI 422 or the deployment link 406 may cause the user to be navigated to UI 600 of FIG. 6. UI element 424 may correspond to the dashboard link 408. Selecting either UI 424 or the dashboard link 408 may cause the user to be navigated to UI 1500 of FIG. 15. Selecting UI 426 may cause the user to be navigated to UI 1700 of FIG. 17. Selecting UI 428 may cause the user to be navigated to an executive management page corresponding to link 1702 of FIG. 17. UI element 430 may correspond to the cutover calendar link 412. Selecting either UI 430 or the cutover calendar link 412 may cause the user to be navigated to UI 1600 of FIG. 16. Selecting UI 432 may cause the user to be navigated to a customer survey page corresponding to link 1704 of FIG. 17. Selecting UI 434 may cause the user to be navigated to UI 1800 of FIG. 18. Selecting UI 436 may cause the user to be navigated to an exceptions page corresponding to UI element 2002 in Figure 20. Selecting UI 438 may cause the user to be navigated to an exception mappings page corresponding to UI element 2004 in Figure 20. Selecting UI 440 may cause the user to be navigated to UI 1900 in Figure 19. Selecting UI 442 may cause the user to be navigated to an administration page where UI elements 2002-2008 in Figure 20 can be accessed.
[0064] UI 400 may include region 450. Any suitable information may be presented in region 450. As shown, region 450 may include links 452, 454, 456, and 458. In some embodiments, selecting link 452 may cause a user to be navigated to an internal software documentation page. Selecting link 454 may navigate a user to a user interface where a number of questions and answers associated with the deployment management application may be presented. Selecting link 456 may navigate a user to another application and / or web page where the user can view service desk information (e.g., to open and / or view tickets related to software bugs). In some embodiments, selecting link 458 may navigate a user to another application or launch another application where the user can conduct a chat session with one or more other users.
[0065] UI 400 may include region 460, which may display any suitable data related to DRCC management, as shown. In the example shown in Figure 4, region 460 presents version history data, showing implemented / applied version numbers and corresponding patch / bug fixes. In some embodiments, the version history includes the date (as shown at 462) that the patch / bug fix was applied.
[0066] The data presented in user interface 400 may be formatted differently, may include additional data, or may lack some of the data shown in FIG.
[0067] FIG. 5 is an illustrative block diagram of an example user interface (UI) 500 (e.g., a Customers page) of a DRCC deployment management application, according to at least one embodiment. A user can navigate to UI 500 by selecting Customers link 502 (e.g., Customers link 410 in FIG. 4 ). UI 500 can include various UI elements and options for adding, deleting, and modifying customer data. By way of example, selecting UI element 504 can cause an additional entry in area 506 to appear, as shown at 508. A new entry, including any suitable customer data attribute values, can be typed into the new entry. By way of example, a user can select point at 508 and enter the name of the customer to be represented by the newly added row. Rows 510 may present any suitable customer data attribute names (e.g., name, geographic area / georegion, address 1, address 2, city, state, country, vertical market, number of employees, annual revenue, annual information technology (IT) data center (DC) budget, creation date (e.g., the date the entry was created), creator (e.g., an indication of the person who created the entry, etc.). Values corresponding to the customer data attribute names in rows 510 may be provided in corresponding positions in rows presented in area 506. Although FIG. 5 provides a particular number of customer data attribute names and attributes and particular combinations thereof, any suitable number of customer data names and / or attributes and any combination thereof may be utilized and not necessarily those presented in FIG. 5.
[0068] Region 506, and any suitable portions of the UIs of FIGS. 4-20, may be scrollable (e.g., horizontally and / or vertically). UI elements within region 514 present a scrolled view of region 506. For example, customer data may be presented within region 514 as being in the leftmost position of region 506. Region 512 is intended to present additional customer data attributes / values of the same row when scrolled to the rightmost position of the scrollable region in the overlapping portion of regions 506 and 512. In some embodiments, data and / or UI elements presented on the left side of partition 516 may remain fixed as the content of the right side of partition 516 changes due to scrolling actions / inputs.
[0069] Any suitable changes to the data in region 506 / 512 may be saved / persisted based, at least in part, on selecting UI element 516. Similar UI elements in FIGS. 5-20 may perform the same functions (e.g., to save newly added and / or modified data in the corresponding data field to which the UI element was applied) and, for simplicity, will not be specifically discussed again. In some embodiments, an entry may be selected based, at least in part, on selecting UI element 518. Alternatively, each of the UI elements similar to UI element 518 in a row of region 506 / 512 may be selected based, at least in part, on selecting UI element 520. While UI elements 518 and 520 are represented as checkboxes, any suitable UI elements (e.g., radio buttons, edit boxes, etc.) may similarly be utilized to select an entry. In some embodiments, multiple entries may be selected simultaneously. Selecting UI element 522 may make any suitable data field corresponding to the selected entry in region 506 / 512 editable. Actions menu 524 may be selected to provide a drop-down menu with additional actions (e.g., a delete action). Actions selected via the drop-down menus can be applied to any suitable selected entry. By way of example, selecting a delete action via the actions menu 524 can delete any selected row within the region 506 / 512. The rows of the region 506 / 512 can be rearranged based, at least in part, on selecting a UI element 526 and dragging the row to a desired position within the region 506 / 512. When a selected row is moved, the other rows of the region 506 / 512 can be rearranged according to the current position of the selected row. To scroll horizontally within the region 506 / 512, the UI element 528 can be selected and dragged (or otherwise moved) within the region 530. To scroll vertically within the region 506 / 512, the UI element 536 can be selected and dragged or otherwise moved within the region 538.UI element 536 can also operate, at least in part, based on keyboard inputs such as page up / page down for scrolling vertically and left arrow / right arrow for scrolling horizontally. UI elements 528 and 536 can be positioned with regions 530 and 538, respectively, based on these keyboard inputs and their positions within regions 506 / 512.
[0070] UI 500 may include UI element 532 (e.g., a search bar). Within UI element 532, a search query can be entered. Selecting UI element 534 submits the search query entered via UI element 532 and can be used to identify matching values of customer data. Any matching attribute values can be highlighted to visually distinguish them from other non-matching values. By default, the search scope can be set to search all columns in region 506 / 512. UI element 533 can be selected to present a drop-down menu that can present one or more options for various search scopes. As an example, within the drop-down menu corresponding to UI element 522, an option can be provided to search only selected rows (e.g., rows selected via UI element 518, or a similar UI element). Any text provided via UI 532 can then be executed taking into account the scope selected via UI element 533.
[0071] Any user interface discussed herein can include UI elements 516-538, which can be used within the corresponding user interface in a manner similar to that described above in connection with Figure 5. Such UI elements will not be discussed again for simplicity. The data presented in user interface 500 may be formatted differently, may include additional data, or may lack some of the data shown in Figure 5.
[0072] FIG. 6 is an illustrative block diagram of an example user interface (UI) 600 (e.g., a deployment page) of a DRCC deployment management application, according to at least one embodiment. A user can navigate to UI 600 by selecting a deployment link 602 (e.g., deployment link 406 in FIG. 4 ) or UI 422 in FIG. 4 . UI 600 can include various UI elements and options for adding, deleting, and modifying deployment data. By way of example, selecting UI element 604 can cause an additional entry in area 606 to appear, as shown at 608. A new entry, including any suitable deployment data attribute values, can be typed into the new entry. By way of example, a user can select points at 608 and enter a customer's name in the newly added row. Rows 610 may present any suitable deployment data attribute names (e.g., deployment identifier (ID), customer name, deployment type, deployment status, active, deployment years, georegion / geographic area, opportunity (opp) ID, overlap contact, creation date (e.g., the date the entry was created), creator (e.g., an indication of the person who created the entry), etc.). Values corresponding to the deployment data attribute names in rows 610 may be provided in corresponding positions in the rows presented in area 606. Although FIG. 6 provides a particular number of deployment data attribute names and attributes and particular combinations thereof, any suitable number of deployment data names and / or attributes and any combination thereof may be utilized, not necessarily those presented in FIG. 6. Any suitable portion of UI 600 (e.g., area 606) may be scrollable (e.g., horizontally and / or vertically).
[0073] In at least one embodiment, the system can automatically generate a deployment ID (e.g., deployment ID 622) for a newly added entry. Each entry in area 606 can be associated with a deployment type (e.g., onboarding, expansion, expansion, etc.). In some embodiments, the deployment type “onboarding” can refer to a deployment that is not yet operational within a data center but rather is in the planning stages leading to operational use. “Expansion” refers to a deployment type that expands an already-existing DRCC to operate at a customer's premises for an extended period of time (e.g., a longer period than originally agreed upon). “Expansion” refers to a deployment type associated with expanding hardware components at a customer's premises to provide greater capacity for the customer's DRCC. The “deployment status” attribute can be any suitable value for indicating the status of a deployment (e.g., pre-prospect, prospect, in qualification, qualified, approval 1, approval 2, deployed). A value corresponding to the data attribute “active” can be used to toggle or otherwise hide the row corresponding to that attribute. The deployment years attribute is intended to refer to an attribute that indicates the number of years that the DRCC is expected to be in operation at the customer's premises. The geographic area attribute can be used to indicate the geographic area in which the DRCC is located (or will be located).
[0074] In some embodiments, UI 600 may include UI element 612, which may include a drop-down menu from which one or more reports may be selected. Selecting UI element 612 may cause the data presented in region 606 to update to present any suitable data corresponding to the selected report.
[0075] In some embodiments, UI 600 may include UI element 614 that can be used to select one or more filters and / or sort parameters from a set of predefined filter / sort parameters. By way of example, UI element 614 may be selected to present a set of filters from which UI element 616 and UI element 618 can be selected. UI element 614 may be selected again to display only the selected filter / sort parameters, in this case corresponding to UI elements 616 and 618. In some embodiments, the selected filter / sort parameters may be utilized separately or together. As a non-limiting example, UI element 616 may be presented to indicate that a filter has been applied to attribute “Deployment Status,” which corresponds to column 620. UI element 618 may indicate particular values of the attribute indicated in UI 616, including “Provisioned,” “Pending,” and “Rejected.” Selecting UI elements 616 and 618 may result in filtering, such that rows in region 606 (and any currently non-visible portions of region 606) having the values “Provisioned,” “Pending,” and “Rejected” for column 620 are not presented. Filtering is illustrated in other figures below in a manner similar to that described above in connection with FIG. 6 above.
[0076] The data presented in user interface 600 may be formatted differently, may include additional data, or may lack some of the data shown in Figure 6. A user can navigate to UI 700 by selecting a deployment ID (e.g., deployment ID 622).
[0077] 7 is a block diagram illustrating an example user interface (UI) 700 (e.g., a deployment details page) of a DRCC deployment management application, according to at least one embodiment. The UI 700 can be presented in response to selecting a link associated with a deployment ID (e.g., deployment ID 622). The UI 700 can include various UI elements and options for adding, deleting, viewing, and modifying deployment details (e.g., attributes and corresponding values, documents, etc.) corresponding to a particular deployment (e.g., the deployment corresponding to deployment ID 1621, as shown).
[0078] In some embodiments, UI 700 includes region 702. Region 702 may present any suitable deployment data corresponding to a particular deployment (e.g., Customer A's deployment associated with deployment ID 1621). In some embodiments, the deployment data may include, but is not limited to, a deployment identifier, a customer identifier, a deployment type, age, a deployment owner (PM owner), an overlay contact (POC), a creation date, a creation due date, etc. Any suitable portion of the deployment data may be presented in region 702. In some embodiments, the deployment data in region 702 may remain fixed as the user navigates to and / or interacts with other UI elements of UI 700. In some embodiments, region 702 may remain fixed to persistently present the deployment data when the user scrolls vertically within UI 700, or region 702 may scroll (e.g., potentially off-screen) based, at least in part, on any suitable scrolling action or input.
[0079] Area 704 may include additional deployment details and a sequence representation. As shown in FIG. 7 , area 704 includes a sequence representation showing all possible values and a sequential ordering of those values representing the progression of the deployment state from a pre-prospect to a deployment-provisioned state. Area 704 may include a graphical element 706 representing a second state (e.g., prospect) of the sequence representation 708, where the second state corresponds to the “prospect” state. The DRCC deployment management application can track deployment data (including any suitable updates to the deployment data provided via the UIs 400-1900 or as a result of inputs provided via the UIs 400-1900) to identify one or more conditions that, when met, indicate a state transition is warranted. Based on this indication, the DRCC deployment management application can transition the deployment from one state to another based on tracking the deployment state and the indication that the transition is warranted. In some embodiments, the graphical element (e.g., graphical element 710) representing the current state of the deployment (e.g., pre-prospect) may be colored or otherwise visually distinguished from graphical elements corresponding to other possible deployment states. The coloring (or other visual distinction) may indicate to a user the current state of the deployment at a glance.
[0080] Region 712 may include any suitable number of tabs corresponding to respective sections of UI 700, as shown. Region 714 may present any suitable number of options corresponding to selections provided in region 712. By way of example, selecting tab 716 corresponding to "Customer Questions" may cause multiple options to be provided in region 714. Options provided in region 714 may include "Cloud Strategy" (corresponding to option 716), Competing Events, Use Cases, Competition, Workloads, and Information and Timeline. Data provided in region 720 may be updated to correspond to selections made in regions 712 and 714. By default, tab 716 ("Customer Questions") and option 718 may be selected, making multiple customer questions corresponding to cloud strategy accessible. By way of example, a first question (e.g., question 722, "What is your customer's cloud public / private strategy?"), among others, may be presented in region 720. By selecting other options in region 714, additional customer questions corresponding to each option may be presented in region 720, replacing any previous questions displayed corresponding to the different options. The user may select UI element 724 and subsequently select UI element 726 to make the attribute values for the row corresponding to UI element 724 editable. The user may select 728 to save the changes made in 726 and 728. Attribute value 732 may be used to indicate whether a particular question is required for the deployment request to be submitted. In some embodiments, the DRCC deployment management application may be configured to perform a number of predefined validation operations to verify and confirm all required answers corresponding to any of the options provided in region 714 (e.g., before allowing a DRCC deployment request (e.g., a DRCC hardware order) to be submitted for review and approval).
[0081] Customer questions corresponding to a compelling event may include any suitable questions (e.g., questions selected from a predefined set of questions associated with the compelling event question category), including, but not limited to:
[0082] Are customers deploying new applications (e.g., AI applications)? Is the customer deploying a brand new data center? Do you have a data center / app modernization initiative? Will there be a private cloud refresh? Will there be a refresh of Exadata / OCC1? Is this due to compliance / security obligations? Do customers have existing workloads on OCI? A number of compelling event questions may be selected from a set of predefined questions (e.g., selected at least in part based on being associated, at least in part, with a compelling event question category) and presented upon selection of the compelling event question option.
[0083] The use case questions (e.g., questions associated with a use case question category) may pose any suitable question related to how the customer intends to use the DRCC (e.g., "Is the user intending to use the DRCC for low latency applications?", "Is the OCI public region an option for the customer's workload?", "What is the customer's disaster recovery strategy?", etc.). Numerous use case questions may be selected from a set of predefined questions (e.g., selected at least in part based on being associated with a use case question category) and presented upon selection of the user case question option.
[0084] A customer question associated with the competitive question category may ask any suitable question regarding competitors of the customer's public cloud and / or private cloud (e.g., "Who are my public cloud competitors?", "Who are my private cloud competitors?", etc.). A number of competitive questions may be selected from a set of predefined questions (e.g., selected based at least in part on being associated with the competitive question category) and presented upon selection of the competitive question option.
[0085] In some embodiments, customer questions associated with the workload question category may include any suitable question directed to ascertaining any suitable aspect of the customer's workload. For example, a workload question may include, "What are the customer's primary workloads for the DRCC?" (e.g., names of workloads, mapping of customer workloads to corresponding OCI services, etc.). A number of workload questions may be selected from a set of predefined questions (e.g., selected based at least in part on being associated with the workload question category) and presented upon selection of the workload question option.
[0086] In some embodiments, the information and technology question category may include any suitable question selected from a set of predefined questions corresponding to the information and technology question category. Some example questions include, "Who are the key decision makers on the customer side?", "What is the customer's budget for the DRCC?", "Describe the customer's sales cycle?", "What is the application migration timeline?", "Does the customer require migration services?", etc. A number of information and technology questions may be selected from the set of predefined questions (e.g., selected based at least in part on being associated with the information and technology question category) and presented upon selection of the information and technology question option.
[0087] The data presented in user interface 700 may be formatted differently, may include additional data, or may not include some of the data shown in Figure 7. A user can navigate to UI 800 by selecting tab 734.
[0088] FIG. 8 is a block diagram illustrating user interface elements for managing regions via a deployment details page (e.g., user interface (UI) 800) of a DRCC deployment management application, according to at least one embodiment. UI 800 may be an example of UI 700 of FIG. 7. Region 802 may correspond to region 720 of FIG. 7 and may update, at least in part, based on the selection of tab 804 (e.g., tab 734 of FIG. 7). UI 800 may include various UI elements and options for adding, deleting, and modifying region data corresponding to one or more regions. By way of example, selecting UI element 806 may cause an additional entry in region 808 to appear, as shown by row 811 in 810. While the new entry is inserted at the top of the entry in region 512 of FIG. 5, it should be understood that the new entry may be inserted at any suitable location, such as at the bottom of the entry, as shown in FIG. 8.
[0089] Any suitable region data attribute value may be provided in the new entry (e.g., via text entry) or selected from user interface elements, menus, and options provided in the attribute area. In one example, a user can select a point in 810 and enter the name of the region represented by the newly added row. Row 812 can present any suitable customer data attribute name of the region data (e.g., data center ID, name, geographic area / georegion, address 1, address 2, etc.). Values corresponding to the region data attribute names in row 812 can be provided in corresponding positions of the rows presented in area 806. While FIG. 8 provides a specific number of region data attribute names and attributes and specific combinations thereof, any number of customer data names and / or attributes and any combinations thereof may be utilized, not necessarily those presented in FIG. 5. The system and / or DRCC deployment management application can generate a data center ID for the newly entered data upon selection of UI element 822. Generating the data center ID may rely on performing a number of predefined validation operations to validate the attribute value provided in row 811 against a predefined set of protocols associated with validating attribute values corresponding to region data.
[0090] A UI element 816 may be provided for submitting a deployment request. In some embodiments, the UI element 816 may be disabled until some predefined condition is met. By way of example, the UI element 816 may remain disabled until at least one region has been defined and answers to all required customer questions have been provided (e.g., via UI elements presented upon selection of tab 818, which is an example of tab 716 in FIG. 7).
[0091] The data presented in user interface 800 may be formatted differently, may include additional data, or may lack some of the data shown in Figure 8. A user may navigate to UI 900 by selecting data center ID 820.
[0092] 9 is a block diagram illustrating an example user interface (UI) 900 (e.g., a region details page) of a DRCC deployment management application, according to at least one embodiment. The UI 900 can be presented upon selecting the data center ID 820 of FIG. 8.
[0093] In some embodiments, UI 900 includes region 902. Region 902 may present any suitable regional data corresponding to a particular region (e.g., a region associated with data center ID 1661) and / or deployment data associated with that region. In some embodiments, the data presented in region 902 may include, but is not limited to, a deployment identifier, a customer identifier, a deployment type, a deployment status, age, hardware order date, a PM owner and / or contact information therefor, a creation date, a creation due date, etc. Any suitable combination of deployment data and / or regional data may be presented in region 902. In some embodiments, the deployment data in region 902 may remain fixed as a user navigates to and / or interacts with other UI elements of UI 900. In some embodiments, when a user scrolls vertically within UI 900, region 902 may remain fixed to persistently present deployment data, or region 902 may scroll (e.g., potentially off-screen) based, at least in part, on any suitable scrolling action or input.
[0094] Area 904 may include additional region details and a sequence representation. As shown in FIG. 9 , area 904 includes a sequence representation that visually illustrates all possible values and the sequential ordering of those values, representing the progression of the region state from an initial state (e.g., a site unprovisioned state), through any suitable number of intermediate states (e.g., through a subscription order reserved state and a hardware reserved state, as shown), to a final state (e.g., a site provisioned state). The number and specific states presented are not intended to limit this disclosure, and a different number of states and / or different combinations of states may similarly be utilized. Area 904 may include a graphical element 906 that represents a second state (e.g., a subscription order reserved) in sequence representation 908, where the second state corresponds to the “subscription order reserved” state. The DRCC deployment management application may track region data (including any suitable updates of region data provided via UIs 900-1400) to identify one or more conditions that, when met, indicate a state transition is warranted. Based on this indication, the DRCC deployment management application can track the state of the region and transition the region from one state to another based on the indication that the transition is legal. In some embodiments, the graphical element (e.g., graphical element 910) representing the current state of the region (e.g., pre-prospect) can be colored or otherwise visually distinguished from graphical elements corresponding to other possible region states. The coloring (or other visual distinction) can provide a user with an at-a-glance indication of the current state of the region.
[0095] Region 912 may include any suitable number of tabs corresponding to respective sections of UI 900, as shown. Region 914 may present any suitable data and / or UI elements corresponding to a selection provided in region 912. By way of example, selecting tab 916 corresponding to “Annual Minimum Commitment” may present the data and / or UI elements shown in region 914. The number of entries presented in region 918 may be fixed and determined, at least in part, based on one or more attribute values of the region data. By way of example, four entries may be presented in region 918 based, at least in part, on an attribute value (e.g., “4”) associated with the age attribute of deployment data associated with the region, as shown in 920. The data provided in region 914 may be updated to correspond to a selection made in region 912. By default, tab 916 (“Annual Minimum Commitment”) may be selected, and multiple entries (e.g., four) may be presented via region 918. Attribute values for some of the attributes presented in area 918 (e.g., year number, 1, 2, 3, and 4) may be pre-filled and unchanged regardless of the selection made in UI element 922.
[0096] To edit the data attributes of an entry in region 918, a user can select UI element 924 and then select UI element 922 to make the attribute values for the row corresponding to UI element 924 editable. In the example provided, the attribute value corresponding to the annual minimum commit can be editable, while the attribute value "1" corresponding to the year value is not editable. The user can provide a value (e.g., 1,000,000) at 926 and select 928 to save the changes.
[0097] In some embodiments, a user can select UI element 930, from which any suitable filter, sort parameter, and / or function can be selected. As shown in UI element 932, a selected function (e.g., the sum of the values of the column associated with the attribute "Annual Minimum Commit") can be selected. Selecting this function can cause an additional UI element (e.g., UI element 934) to be presented (e.g., adjacent to region 916 as shown). UI element 934 can indicate the function to be applied (e.g., Sum). When the user makes an entry in region 938 corresponding to the attribute value of the attribute to which the function should be applied, value 940 can be updated to reflect the value resulting from applying the function to the attribute value in region 938. If desired, UI element 934 can be removed by selecting UI element 942.
[0098] Selecting tab 944 may navigate the user to a UI similar to UI 700 of Figure 7, but which may be configured to present customer questions that are region-scoped rather than deployment-scoped as described above in connection with Figure 7. Selecting tab 946 may navigate the user to UI 1000 of Figure 10.
[0099] The data presented in user interface 900 may be formatted differently, may include additional data, or may lack some of the data shown in FIG.
[0100] 10 is a block diagram illustrating example user interface (UI) elements of a region details page (e.g., user interface (UI) 1000) of a DRCC deployment management application, according to at least one embodiment. UI 1000 may be an example of UI 900 of FIG. 9.
[0101] Region 1002 may correspond to region 912 of FIG. 9 and, as shown, may include any suitable number of tabs corresponding to respective sections of UI 900. Region 1004 may present any suitable number of options corresponding to selections provided in region 1002. By way of example, selecting tab 1006 corresponding to “Document Upload” may cause options corresponding to “Order Documents,” “Region Assessment Questionnaire,” and “Statement of Work” to be presented in 1004. Data provided in region 1008 may be updated to correspond to selections made in regions 1002 and / or 1004. By default, selecting tab 1006 may select option 1010, which corresponds to the “Order Documents” option. Selecting other options in region 1004 may cause data and / or UI elements corresponding to each option to be presented, replacing any previous presentation of data and / or UI elements corresponding to the different options. A user may select UI element 1014 to display an additional UI element (e.g., a pop-up window and / or a button, text field, edit box, etc.) through which the user can initiate uploading one or more documents. In some embodiments, each of the options in area 1004 may be associated with a predefined storage location, naming convention, etc., or documents uploaded in UI element 1014 for a given option (e.g., option 1010) may be related to each other and / or distinguishable from documents uploaded in association with different options. As a non-limiting example, documents uploaded in association with option 1010 (e.g., the "Order Documents" option) may be stored in a different location than documents uploaded in association with option 1016 (e.g., the "Region Assessment Survey" option).Documents uploaded in connection with option 1010 may be presented in area 1018 when option 1010 is selected, and documents uploaded in connection with option 1016 may be presented in area 1018 when option 1016 is selected.
[0102] The data presented in user interface 1000 may be formatted differently, may include additional data, or may lack some of the data shown in FIG.
[0103] FIG. 11 is a block diagram illustrating an example user interface (UI) element corresponding to an exceptions tab (e.g., user interface (UI) 1100) of a region details page, according to at least one embodiment. UI 1100 may be an example of UI 900 of FIG. 9. In some embodiments, at least some of the options provided in area 1102 (corresponding to area 912 of FIG. 9) may be unavailable / not presented until the deployment transitions to a particular state (e.g., a certified state corresponding to UI element 830 of FIG. 8) after the user submits the deployment request via UI element 816 of FIG. 8. In some embodiments, the system may be configured to perform one or more validation procedures and / or actions on any suitable combination of deployment data and / or region data presented and / or discussed above in connection with FIGS. 6-10. In some embodiments, submitting a deployment request may cause the system to send an electronic communication to the PM owner (e.g., Bob Vance). Once the PM owner reviews and approves the deployment request (which may be provided via a user interface hosted by the DRCC deployment management application), the deployment status associated with this deployment may transition to a "certified" state. The DRCC deployment management application may track deployment data (including any suitable updates to the deployment data provided via UI 400-1900) to identify one or more conditions that, when met, indicate that a state transition is warranted. Based on this indication, the DRCC deployment management application may transition the deployment from one state to another based on the indication that the state transition is warranted.
[0104] Tabs 1104 and 1106 may be presented after the deployment transitions to a particular state (e.g., a “certified” state). The content presented in the regions may be updated based, at least in part, on selections made in region 1102. As presented, region 1108 includes data and / or UI elements corresponding to tab 1104. UI elements 1111 and 1112 may be initially hidden. In some embodiments, a user may wish to request a hardware exception (e.g., a hardware request that deviates from the DRCC's standard hardware configuration). To do so, the user may select UI element 1110. In some embodiments, this selection may update region 1108 to include line 1113 in which any suitable attribute values for the exception may be provided. Alternatively, in some embodiments, selecting UI element 1110 may cause UI element 1111 (e.g., a pop-up window overlaying UI 1100) to be presented. UI element 1111 may include any suitable number of additional UI elements (e.g., check boxes, edit boxes, radio buttons, drop-down menus, etc.) that can provide any suitable number of attributes corresponding to the exception. UI element 1111 may be scrollable horizontally and / or vertically. Upon selection of UI element 1115, the system may perform a number of validation procedures and / or operations to validate the input provided in UI element 1111 (e.g., to verify that the input provided in UI element 1111 matches a set of allowable attribute values, to verify that attribute values have been provided for each of a set of required attributes, etc.). In some embodiments, if at least one validation procedure / operation fails, presentation of UI element 1111 may continue. Alternatively, if all validation procedures / operations pass, an entry corresponding to row 1113 may be presented in region 1108. In some embodiments, the user may select UI element 1116 to display the attribute values in another UI element similar to UI element 1111 (e.g., a popup titled "View Exceptions," not shown).
[0105] Exceptions may be associated with costs. In some embodiments, a user can select UI element 1118 (or a corresponding UI element in UI element 1111) to present UI element 1120. UI element 1120 may be a pop-up window, or the data and / or UI element of UI element 1120 may be presented in region 1108. In some embodiments, corresponding costs associated with one or more exceptions may be viewable from UI element 1120. UI element 1120 may include any suitable number of entries (e.g., one entry for each year associated with the deployment). Each entry may include a value that quantifies the total cost of all exceptions corresponding to that entry. As an example, $1,000,000 may be presented at 1122 and used to indicate the total cost of all exceptions corresponding to year 1 of this deployment (e.g., the deployment associated with deployment ID 1621). Any suitable number and types of exceptions may be defined within UI 1100. Each change / addition may cause the associated total cost for the year and / or overall cost to be updated, regardless of whether the annual / overall cost is currently displayed.
[0106] The data presented in user interface 1100 may be formatted differently, may include additional data, or may lack some of the data shown in FIG.
[0107] FIG. 12 is a block diagram illustrating an example user interface (UI) element corresponding to a capacity forecast tab of a region details page (e.g., user interface (UI) 1200) of a DRCC deployment management application, according to at least one embodiment. UI 1200 may be an example of UI 900 of FIG. 9. In some embodiments, UI 1200 may be presented in response to receiving a selection of tab 1202 (e.g., tab 1106 of FIG. 11). In some embodiments, a user may select UI element 1204 to add a capacity forecast. In response to this selection, the system may be configured to generate a capacity forecast based, at least in part, on any suitable responses provided with respect to any suitable number / combination of questions presented via tab 1206. In some embodiments, selecting UI element 1204 may present the user with an additional UI element (e.g., a pop-up window) that allows the user to specify parameters for generation of the capacity forecast. In some embodiments, simply selecting UI element 1204 generates a capacity forecast according to a predefined set of parameters. The capacity forecast can be associated with a capacity forecast ID (eg, presented in UI element 1212).
[0108] Once generated, the capacity forecast may be accessible via row 1208 of region 1210. By way of example, the capacity forecast may be presented in response to receiving an indication that UI element 1210 has been selected. Selecting UI 1212 may navigate the user to UI 1300 of FIG. 13 .
[0109] The data presented in user interface 1200 may be formatted differently, may include additional data, or may lack some of the data shown in FIG.
[0110] FIG. 13 is an illustrative block diagram of an example user interface (UI) 1300 (e.g., a capacity forecast details page) of a DRCC deployment management application, according to at least one embodiment. UI 1300 can be presented in response to receiving an indication that UI element 1212 of FIG. 12 has been selected. UI 1300 can include an area 1302 having a number of options (e.g., options corresponding to the number of years specified in 1304 in the deployment data corresponding to the capacity forecast). Each option can correspond to a particular year of the number of years presented in 1304. As shown, area 1306 presents capacity forecast details for year 1 because option 1308 is selected by default. Selecting any of the options in area 1302 can transition area 1306 to present capacity forecast details corresponding to the selected option. The capacity forecast details can include any suitable number of entries for capacity forecasts. The capacity forecast may show one or more entries corresponding to components (e.g., hardware, software, or networking components) needed (or at least predicted to be needed) for deployment, based at least in part on responses provided via UI 700 and / or any suitable data provided via UIs 4-12. In some embodiments, rows 1308 may show any suitable attributes of the capacity forecast, including, but not limited to, a SKU number (e.g., any suitable identifier that uniquely identifies a hardware, networking, or software component), a required quantity, a metric associated with the component, a commercial listing annual price (or any suitable cost associated with the component), a creation date, and / or a creator identifier (e.g., indicating the entity that created the data corresponding to each entry).
[0111] Area 1306 may further include entries 1310, which may correspond to a function (e.g., a sum of attribute values corresponding to the attribute "Commercial Listing Annual Price"), as shown at 1312. The sum function may be selected and applied by default, or the sum function may be selected via UI element 1314. At 1316, a sum of attribute values for the "Commercial Listing Annual Price" attribute may be provided. The user may rearrange and / or edit the entries as desired within area 1306 until the capacity forecast is accurate / as desired.
[0112] In some embodiments, UI element 1318 can be used to generate a configuration and margin analysis. In some embodiments, UI element 1318 can be disabled by default and enabled only if the total for a given year (e.g., presented at 1316) equals or exceeds the minimum commit amount specified via area 918 of FIG. 9 . As long as the total presented at 1316 is less than the minimum commit specified for year 1, informational text 1320 can be presented. If the total is equal to or greater than the minimum commit for the year, informational text 1320 can be removed from UI 1300 and UI element 1318 can be enabled. If disabled, selecting UI element 1318 can do nothing. If enabled, selecting UI element 1318 can cause the system to generate a configuration and margin analysis according to a predefined set of protocols. Once generated, a link can be generated by the system and presented via UI 1200 at 1214. Selecting the UI element at 1214 can navigate the user to UI 1400 of FIG. 14 .
[0113] The data presented in user interface 1300 may be formatted differently, may include additional data, or may lack some of the data shown in FIG.
[0114] FIG. 14 is a block diagram illustrating an example user interface (UI) 1400 (e.g., a configuration and margin analysis page) of a DRCC deployment management application, according to at least one embodiment. The UI 1400 can be presented in response to receiving an indication that the UI element at 1214 of FIG. 12 has been selected. The UI 1400 can include a region 1402 having multiple tabs. As shown, the region 1402 presents a configuration tab 1404, a configuration totals tab 1406, a yearly margin tab 1408, and a total margin tab 1410. The data and UI elements presented in the region 1412 can correspond to the selected tab. By default, the configuration tab 1404 can be selected, and the region 1412 can present the data and UI elements shown in FIG. 14 .
[0115] When the configuration tab 1404 is selected, area 1412 may include configuration data, including, but not limited to, configuration version, hardware type, base footprint (e.g., the default number of components included in a predefined base DRCC footprint), launch footprint (e.g., the number of components required for the currently configured DRCC / region based on the workload specified in UI 700 of FIG. 7), and power (in kilowatts) per rack type.
[0116] Area 1412 may include UI element 1414 that, when selected, provides an expanded view of a number of entries corresponding to the number of different types of racks to be provided in the DRCC / region. When provided in an expanded view, the entries may appear in area 1416. When provided in a collapsed view, the entries presented in area 1416 may be hidden, with only row 1418 visible. As shown, the entries may be grouped (e.g., by year, by category, etc.). UI element 1420 may likewise be selected to expand area 1412 to include a corresponding area in which entries corresponding to year 2 may be presented.
[0117] Although not shown, when configuration totals tab 1406 is selected, area 1412 may include configuration totals data, which may include, but is not limited to, configuration version, year, total number of base racks (e.g., the sum of the number of racks in the base footprint from the collective entries of the configuration data), total number of launch racks (e.g., the sum of the number of racks in the launch footprint from the collective entries of the configuration data), square footage (e.g., the number of square feet required for the racks plus 30% additional square footage), amount of square meters (e.g., the space in square meters required for the racks plus 30% additional square meters), total power in kilowatts (e.g., the sum of the power from the collective entries of the configuration data).
[0118] Although not shown, if the annual margin tab 1408 is selected, area 1412 may include annual margin data. The annual margin data may include, but is not limited to, the configuration version, the year, the annual minimum commit (e.g., the minimum number of commits from FIG. 9), the margin for each year (e.g., -23.06, 25.1, etc.), the annual exception cost (e.g., the sum of the costs of all exceptions in FIG. 11 for each year), the annual total cost, the margin percentage excluding amortization, and the annual total cost excluding amortization.
[0119] Although not shown, when the total margin tab 1410 is selected, area 1412 may include total margin data, which may include, but is not limited to, the configuration version, the total cost for the DRCC / region (e.g., $8,160,334), the total exception cost (e.g., the total exception cost for the year), the total revenue (e.g., $11,000,000), the total margin (e.g., a percentage such as 25.80), the percentage of the overall margin excluding amortization (e.g., 39), and the total cost excluding amortization (e.g., $6,709,214).
[0120] The data presented in user interface 1400 may be formatted differently, may include additional data, or may lack some of the data shown in FIG.
[0121] 15 is an illustrative block diagram of an example user interface (UI) 1500 (e.g., a dashboard) of a DRCC deployment management application, according to at least one embodiment. The UI 1500 may be presented in response to receiving an indication that a UI element 1502 (an example of UI element 408 in FIG. 4 ) has been selected. The UI 1500 may include a region 1504. The region 1504 may present any suitable number of graphs, bar charts, etc. corresponding to one or more deployments (e.g., all of the deployments, a subset of the deployments, etc.). As shown, the UI 1500 includes a pie chart 1506. The pie chart 1506 indicates corresponding portions of a circle attributable to deployments of a particular status. Pie chart 1506 shows that 10% of the submitted deployments are in a "pending" state, 15% are in a "prospect" state, 5% are in a "rejected" state, 29% are in a "certified" state, 9% are in an "approved" state, 22% are in a "preprospect" state, and 10% are in a "provisioned" state.
[0122] Any suitable deployment data may be summarized and / or depicted using one or more graphs, charts, counts, or any suitable visual data representation. Region 1504 may be horizontally and / or vertically scrollable.
[0123] The data presented in user interface 1500 may be formatted differently, may include additional data, or may lack some of the data shown in FIG.
[0124] FIG. 16 is an illustrative block diagram of an example user interface 1600 (e.g., a cutover calendar page) of a DRCC deployment management application, according to at least one embodiment. The UI 1600 can be presented in response to receiving an indication that a UI element 1602 (an example of UI element 412 in FIG. 4 ) has been selected. The UI 1600 can include a region 1604 that can be configured to present a calendar (e.g., a yearly calendar, a monthly calendar, a daily calendar). In some embodiments, options 1606 and 1608 are provided for moving forward and backward (e.g., by month) through the calendar. The region 1604 can be updated to present data corresponding to the navigation actions provided via the options 1606 and 1608. When option 1610 is selected, the month corresponding to the current data can be displayed, and the current day can be highlighted or visually distinguished.
[0125] UI 1600 may include option 1612. Receiving a selection indicating that option 1612 is selected may cause a month list to be presented. Selecting a month from the list may cause region 1604 to be updated to present data corresponding to the selected month. Selecting option 1614 may cause region 1604 to be updated to present a list of events (e.g., events 1616) in order (e.g., chronological) within region 1604, replacing process grid 1618. Selecting option 1612 again may cause the list to be replaced with grid 1618 within region 1604.
[0126] The data presented in user interface 1600 may be formatted differently, may include additional data, or may lack some of the data shown in FIG.
[0127] 17 is an illustrative block diagram of an example user interface 1700 (e.g., a deployment tracker page) of a DRCC deployment management application, according to at least one embodiment. The UI 1700 can be presented in response to receiving an indication that a UI element 1702 has been selected. To select the UI element 1702, a user can select UI element 1704 (e.g., an example of UI element 414 in FIG. 4 ). In some embodiments, selecting the UI element 1704 can cause an enlarged view of a number of additional UI elements (e.g., UI element 1706) to be presented. Selecting the UI 1702 of the UI element 1706 can present corresponding data on the deployment tracker page.
[0128] UI 1700 may include regions 1708 and 1710. Region 1708 may be configured to present any suitable data, such as executive summary data. An entry corresponding to region 1708 may be added by selecting UI element 1716. An empty entry may be added to region 1708, and attribute values (e.g., corresponding to attributes “Customer” and “Update”) may be added based on selecting corresponding fields in the newly added entry. A previously provided entry may be edited based, at least in part, on selecting UI element 1717, subsequently selecting UI element 1718, and providing modified attribute values in the row being edited. Region 1708 may expand as entries are added. Region 1708 may expand to any suitable size to encapsulate any suitable number of entries.
[0129] Area 1710 may include any suitable deployment data. By way of example, as shown, area 1710 may include area 1712, which may present any suitable number of visual representations (e.g., graphs, charts, pie charts, bar graphs, etc.). By way of example, visual representation 1713 may be utilized to present data indicating the percentage of deployments by geographic region that are currently in an "approved" state. Visual representation 1715 may present data indicating the percentage of deployments by geographic region that are currently in a "certified" state. Visual representation 1717 may present data indicating the percentage of deployments by geographic region that are currently in a "certification in progress" state. Visual representation 1719 may present data indicating the total number of deployments by geographic region.
[0130] Area 1714 may include any suitable number of entries corresponding to any suitable number of regions. By way of example, the presented data corresponding to geographic area "REG23" may indicate that there are two deployments in an "approved" state, five deployments in a "certified" state, and two deployments in a "certification in progress" state. The count values provided in area 1714 may be provided in association with any suitable state (e.g., pre-prospect, prospect, in qualification, certified, P1 approved, P2 approved, deployment provisioned, etc.).
[0131] The data presented in user interface 1700 may be formatted differently, may include additional data, or may lack some of the data shown in Figure 17. Selecting UI element 1720 may navigate the user to UI 1800 of Figure 18. Selecting UI element 1722 may navigate the user to UI 1900 of Figure 19.
[0132] FIG. 18 is a block diagram illustrating an example user interface 1800 (e.g., a hardware forecast page) of a DRCC deployment management application, according to at least one embodiment. UI 1800 can be presented in response to receiving an indication that UI element 1802 (e.g., an example of UI element 1720 of FIG. 17 ) is selected. UI 1800 can be configured to present hardware forecast data in region 1804. Column 1806 can present customer data (e.g., customer name, country, region, etc.). Column 1808 can present deployment data (e.g., status, configuration version, cutover date, etc.). Columns 1812-1824 can present data indicating the number of DRCCs for a customer. Each of columns 1812-1824 can present the corresponding number of racks for the hardware component shown in row 1826. Columns 1812-1824 in row 1828 can correspond to hardware parameters such as a launch footprint (the number of racks required for the launch footprint). Although not shown, row 1828 may include other hardware parameters such as a base footprint (e.g., a number indicating the number of corresponding hardware components included in the base footprint of the DRCC). Row 1830 may include attribute values for each of columns 1806-1824 for a customer (e.g., Customer A), and row 1832 may include attribute values for each of columns 1806-1824 for a different customer (e.g., Customer C).
[0133] Any suitable number of rows and columns may be utilized in region 1804, depending on the number of known customers (e.g., customers provided via UI 500 of FIG. 5) and / or the number of hardware components required for launch. In some embodiments, region 1804 may be horizontally and / or vertically scrollable. While not shown, in FIG. 18 and any suitable combination of FIGS. 4-20, UI elements similar to UI elements 528, 530, 536, and 538 of FIG. 5 may be utilized to enable the corresponding UI to be scrolled horizontally and / or vertically.
[0134] The data presented in user interface 1800 may be formatted differently, may include additional data, or may lack some of the data shown in FIG.
[0135] FIG. 19 is an illustrative block diagram of an example user interface 1900 (e.g., a hardware and networking information page) of a DRCC deployment management application, according to at least one embodiment. UI 1900 can be presented, at least in part, based on selecting UI element 1902. Selecting UI element 1904 can present UI element 1906. UI 1900 can include region 1908 that can present hardware rack data or network rack data corresponding to tab 1910 or 1912, depending on which tab is selected. As shown in FIG. 19 , when tab 1910 is selected, region 1908 can present hardware rack data. The hardware rack data can include, but is not limited to, configuration version, model family description, general resource type, rack type, standard cost, etc. Each entry in region 1908 can be associated with a cost, as shown in column 1914. In some embodiments, a total cost for the hardware rack can be shown in 1916. When tab 1912 is selected, similar data can be presented for one or more network racks.
[0136] The data presented in user interface 1900 may be formatted differently, may include additional data, or may not include some of the data shown in Figure 19. Selecting UI element 1920 may navigate the user to the exception approval mapping page where UI element 2008 of Figure 20 is presented.
[0137] 20 includes a block diagram illustrating a number of user interface elements (e.g., UI elements 2002-2008) presented in a user interface (e.g., exception approval mapping page) of a DRCC deployment management application (e.g., DRCC lifecycle management application 144 of FIG. 1 or 228 of FIG. 2) according to at least one embodiment. The exception approval mapping page may generally appear similar to the rack cost page of FIG. 19, but may be configured to present different data.
[0138] By way of example, by default, the exception approval mapping page may present UI element 2008. UI element 2008 may correspond to a "Products" tab. UI element 2008 may provide any suitable UI elements for searching, editing, saving, and adding entries corresponding to products within area 2010. In some embodiments, UI element 2012 may be selected to add an entry to area 2010, and the entry may be edited to update attribute values of the entry in a manner similar to that described above in FIGS. 4-19.
[0139] UI element 2006 may correspond to a "Features" tab. UI element 2006 may provide any suitable UI elements for searching, editing, saving, and adding entries corresponding to features within area 2014. In some embodiments, UI element 2016 may be selected to add an entry to area 2014, and the entry may be edited to update attribute values of the entry in a manner similar to that described above in FIGS. 4-19.
[0140] UI element 2002 may correspond to an "Exceptions" tab. UI element 2002 may provide any suitable UI elements within region 2014 for searching, editing, saving, and adding entries corresponding to exceptions. In some embodiments, UI element 2018 may be selected to add an entry to region 2020, where the entry may be edited and attribute values updated in a manner similar to that described above in FIGS. 4-19. UI element 2002 may include region 2024 in which multiple entries corresponding to exception subcategories may be searched, edited, added, saved, etc. In some embodiments, UI element 2022 may be selected to add an entry to region 2024, where the entry may be edited and attribute values updated in a manner similar to that described above in FIGS. 4-19.
[0141] UI element 2002 may correspond to a "Mapping" tab. UI element 2002 may provide any suitable UI elements for searching, editing, adding, saving, and mapping between any suitable combination of products (e.g., specified in UI element 2008), features (e.g., specified in UI element 2006), exceptions (e.g., specified in UI element 2002), and / or subcategories (e.g., specified in UI element 2002). In some embodiments, UI element 2026 may be selected to add an entry to area 2028. Once added, a value corresponding to any suitable combination of products, features, categories, and / or subcategories may be selected from the values provided via UI elements 2008, 2006, and 2002.
[0142] In some embodiments, the mapping of region 2028 may be utilized to identify one or more entities for which approval and / or review of deployment data and / or region data corresponding to the DRCC is required (e.g., to determine whether to transition a deployment and / or region from one state to another).
[0143] The data presented in UI elements 2002-2008 may be formatted differently, may include additional data, or may lack some of the data shown in FIG.
[0144] 21 is a block diagram illustrating an example method 2100 for managing the lifecycle of a DRCC, according to at least one embodiment. Method 2100 may be performed by one or more components of each of DRCC lifecycle management applications 114 and / or 228 of FIGS. 1 and 2. The operations discussed in connection with method 2100 may be performed in any suitable order. Method 2100 may include more or fewer operations than those discussed in connection with FIG. 21.
[0145] Method 2100 may begin at 2102, where deployment data corresponding to a dedicated cloud (e.g., deployment data obtained in region 606 of FIG. 6) may be obtained via any suitable combination of multiple user interfaces (e.g., UIs 400-1900). In some embodiments, the dedicated cloud (e.g., example DRCC / PLC region 102 of FIG. 1) may be associated with multiple cloud infrastructure components that provide corresponding cloud services associated with a cloud service provider. In some embodiments, the multiple cloud infrastructure components may be hosted by one or more computing devices located at a third-party location. By way of example, the third-party location may be associated with a third-party entity (e.g., a DRCC owner) that is different from the cloud service provider (e.g., OCI).
[0146] At 2104, deployment data can be tracked (e.g., by a DRCC deployment management application) based, at least in part, on inputs provided via a plurality of user interfaces. In some embodiments, at least one of the plurality of user interfaces is configured to obtain workload data (e.g., workload data obtained via a workload tab in area 714 of FIG. 7). In some embodiments, the workload data identifies one or more workloads to be executed by a plurality of cloud infrastructure components of the dedicated region cloud. In some embodiments, one or more hardware components can be identified from a plurality of available hardware components based, at least in part, on the workload data.
[0147] At 2106, a deployment state associated with deploying the dedicated cloud may be transitioned from a first state to a second state based at least in part on the tracking. In some embodiments, the region data may be validated based at least in part on performing one or more validation operations on the region data provided via one or more user interfaces. In some embodiments, the first state (e.g., a “prospect” state) and the second state (e.g., a “certification in progress” state) are individually one of a plurality of states of a predefined order associated with the dedicated cloud deployment. The transition may be based at least in part on identifying that the validation operation was successfully performed. In some embodiments, the region data may alternatively or additionally be tracked, and a region state associated with provisioning hardware for the dedicated cloud may alternatively or additionally be transitioned. In some embodiments, the region state may be transitioned from a third state to a fourth state based at least in part on the tracking. The third state and the fourth state may individually be one of a second plurality of states of a second predefined order associated with provisioning regional cloud hardware.
[0148] At 2108, information indicating a transition of the deployment state from a first state to a second state may be presented in one or more user interfaces of the plurality of user interfaces (e.g., in region 704 of FIG. 7 , in region 902 of FIG. 9 , etc.). One or more visual representations (e.g., the visual representation presented in region 704 of FIG. 7 ) may be presented based, at least in part, on tracking multiple deployment statuses corresponding to respective deployments. In some embodiments, a separate visual representation of the region state (e.g., sequence representation 908 of FIG. 9 ) may be generated and presented (e.g., via UI 900 in region 904). In some embodiments, one or more user interfaces (e.g., UI 1800 of FIG. 18 ) may additionally or alternatively present hardware data specifying one or more hardware components.
[0149] FIG. 22 illustrates a high-level structure of an exemplary 12-rack-based footprint on which an IaaS / DRCC architecture (e.g., the IaaS / DRCC architecture of FIG. 22) is hosted. Each of the 12 racks can be configured to hold 18 servers. Six servers can be utilized to provide key management services and can be configured according to a predefined X9 configuration. These six servers can be distributed across three racks (e.g., racks 1-3) for fault tolerance. Eighteen servers can be utilized to provide object storage resources according to an X9 bitstore configuration. These 18 servers can be distributed across three racks (e.g., racks 1-3) for fault tolerance and can be utilized to provide 1818 TiB of capacity, as shown in FIG. 22. Four servers across four racks (e.g., racks 1-4) can be utilized to provide board storage according to an X9 bitstore configuration and can be utilized to provide 288 virtual CPUs and 864 TiB of capacity. Forty-five servers distributed across four racks (e.g., racks 1-4) can be used to provide board compute resources according to the E4 platform using 1U servers. These 45 servers can be used to provide 11,520 virtual CPUs and 1,080 TiB of Non-Volatile Memory Express (NVMe) capacity. Four servers in a single rack (e.g., rack 4) can be used to provide board compute resources according to the E3 platform using 1U servers. Eight servers in a single rack (e.g., rack 4) can be used to provide additional board compute resources according to the El Paso, E4 platform. Sixteen servers distributed across four racks (e.g., racks 1-4) can be used to provide block storage resources according to the E4 platform. These servers can be used to provide 1,280 TiB of capacity.Thirty-six servers distributed across three racks (e.g., racks 5-7) can be used to provide customer enclaves according to an E4 regular platform (e.g., using standard AMD processors) and provide 4608 OCPUs of computing power. Eighteen servers distributed across three racks (e.g., racks 5-7) can be used to provide customer enclaves according to an E4 high-density platform (e.g., using E4 AMD high-density processors) and provide 2304 OCPUs of computing power. Eighteen servers in a single rack (e.g., rack 8) can be used to host Exadata X9M database (DB) nodes (e.g., 18 nodes). Another 18 servers in another rack (e.g., rack 9) can be used to host Exadata X9M high-capacity (HC) nodes (e.g., 15 HC nodes). Racks 10 and 11, with their corresponding 36 servers, can be used for network core resources (e.g., to provide 32 to 128 standard racks).
[0150] As shown, service enclave 2202 may be implemented using servers in racks 1-4, customer service enclave 2204 may be implemented using servers in racks 5-7, Exadata resources may be implemented using servers in racks 8 and 9, and network resources may be implemented using servers in racks 10-12.
[0151] 23 is a block diagram 2300 illustrating an example pattern of an IaaS architecture (e.g., a DRCC architecture) according to at least one embodiment. A service operator 2302 may be communicatively coupled to a secure host tenancy 2304, which may include a virtual cloud network (VCN) 2306 and a secure host subnet 2308. In some examples, the service operator 2302 may employ one or more client computing devices, which may be portable handheld devices (e.g., iPhone®, mobile phone, iPad®, computing tablet, personal digital assistant (PDA)), or wearable devices (e.g., Google® Glass head-mounted display) running software such as Microsoft Windows Mobile® and / or various mobile operating systems such as iOS, Windows Phone, Android, BlackBerry 8, Palm OS, and supporting the Internet, email, short message service (SMS), Blackberry®, or other communication protocols. Alternatively, the client computing devices may be general-purpose personal computers, including, by way of example, personal and / or laptop computers running various versions of the Microsoft Windows operating system, the Apple Macintosh operating system, and / or the Linux operating system. The client computing devices may be workstation computers running any of a variety of commercially available UNIX or UNIX-like operating systems, including, without limitation, various GNU / Linux operating systems, such as Google Chrome OS.Alternatively or additionally, the client computing device may be any other electronic device, such as a thin client computer, an Internet-enabled gaming system (e.g., a Microsoft Xbox gaming console with or without a Kinect® gesture input device), and / or a personal messaging device, that can communicate over a network that has access to the VCN 2306 and / or the Internet.
[0152] VCN 2306 may include a local peering gateway (LPG) 2310, which may be communicatively coupled to a secure shell (SSH) VCN 2312 via the LPG 2310 included in the SSH VCN 2312. SSH VCN 2312 may include an SSH subnet 2314, which may be communicatively coupled to a control plane VCN 2316 via the LPG 2310 included in the control plane VCN 2316. SSH VCN 2312 may also be communicatively coupled to a data plane VCN 2318 via the LPG 2310. The control plane VCN 2316 and the data plane VCN 2318 may be included in a service tenancy 2319, which may be owned and / or operated by the IaaS provider.
[0153] Data plane VCN 2318 may include data plane app layer 2346, data plane DMZ layer 2348, and data plane data layer 2350. Data plane DMZ layer 2348 may include LB subnet 2322, which may be communicatively coupled to app subnet 2326 of data plane app layer 2346 and gateway 2334 of data plane VCN 2318. Gateway 2334 may be an example of an Internet gateway, a service gateway, a NAT gateway, etc. Data plane data layer 2350 may also include DB subnet 2330, which may be communicatively coupled to app subnet 2326 of data plane app layer 2346.
[0154] Gateway 2334 of data plane VCN 2318 may be communicatively coupled to proxy computer 2352 (e.g., Splat proxy), which may be communicatively coupled to public Internet 2354. Public Internet 2354 may be communicatively coupled to gateway 2334 of data plane VCN 2318. Gateway 2336 (e.g., service gateway of gateway 2336) of data plane VCN 2318 may be communicatively coupled to cloud services 2356. In some embodiments, cloud services 2356 can operate within a DRCC on hardware provided by the customer. Cloud services 2356 may include any suitable services, such as ADW 2374 (an example of ADW 126 of FIG. 1 ), service 2357 (an example of one of services 118 of FIG. 1 ), object storage 2372 (an example of object storage managed by object storage service 112 of FIG. 1 ), telemetry and logging service 2360 (an example of service 118 of FIG. 1 ), although any suitable services, including those discussed in connection with FIG. 1 , may be included in cloud services 2356. A dataflow job (e.g., an example of Spark job 214 of FIG. 2 ) may be configured to pull collected data from object storage (e.g., from object storage bucket (Horizon bucket) 122 of FIG. 2 ) and transform and / or write the data to an ADW (e.g., ADW 126 of FIGS. 1 and 2 ).
[0155] Service provider tenancy 2362 may include Horizon service 2364 (an example of the Horizon service in FIGS. 1 and 2 ) that can be communicatively connected to cloud services 2356 via gateway 2366. As described above, Horizon service 2364 may be configured to perform data collection operations to obtain any suitable operational data for the DRCC, such as any suitable data related to capacity management, growth management, health and performance tracking, change management, etc. As a non-limiting example, Horizon service 2364 may be configured to obtain capacity and usage data such as the number of CPUs, the total amount and usage of block storage, the total amount and usage of object storage, the total amount and usage of file storage, or any suitable data shown in FIGS. 4-22 . In some embodiments, this may include interacting with one or more of cloud services 2356. Horizon service 2364 may be configured to store any suitable data described above in a dedicated bucket (e.g., a Horizon bucket) in object storage 2372 (e.g., object storage bucket (Horizon bucket) 122 in FIG. 1 ).
[0156] In some examples, the gateway 2334 (e.g., a service gateway) of the data plane VCN 2318 can make application programming interface (API) calls to the cloud services 2356 (e.g., using the data plane API 2355) without traversing the public internet 2354. The API calls from the gateway 2334 to the cloud services 2356 can be one-way. That is, the gateway 2334 can make API calls to the cloud services 2356 (e.g., using the data plane API 2355), and the cloud services 2356 can send the requested data to the gateway 2334. However, the cloud services 2356 cannot initiate API calls to the service gateway 2336.
[0157] In some examples, secure host tenancy 2304 can be directly connected to service tenancy 2319, which may otherwise be isolated. Secure host subnet 2308 can communicate with SSH subnet 2314 through LPG 2310, which may enable bidirectional communication in an otherwise isolated system. By connecting secure host subnet 2308 to SSH subnet 2314, secure host subnet 2308 can access other entities in service tenancy 2319.
[0158] In some examples, a user or customer of the system may make a request, such as a request for a create, read, update, or delete (CRUD) operation (e.g., using a user interface provided by Oracle cloud console 2357), via public internet 2354, which may communicate such request to proxy computer 2352. Proxy computer 2352 may communicate the request to data plane VCN 2318 via gateway 2334. The request may be received by LB subnet 2322 included in data plane DMZ tier 2348. LB subnet 2322 may determine that the request is valid, and in response to this determination, LB subnet 2322 may send the request to app subnet 2326 included in data plane app tier 2324. If the request is validated and requires a call to the internet 2354, the call to the internet 2354 may be sent to gateway 2334 (e.g., a NAT gateway of gateway 2334), which can make the call to the internet 2354. Memory that may be desired to be stored upon request may be stored in DB subnet 2330 .
[0159] In some embodiments, the control plane VCN 2316 and the data plane VCN 2318 can be included in the service tenancy 2319. In this case, a user or customer of the system may not own or operate either the control plane VCN 2316 or the data plane VCN 2318. Instead, an IaaS provider may own or operate the control plane VCN 2316 and the data plane VCN 2318, both of which may be included in the service tenancy 2319. In some embodiments, the hardware implementing the service tenancy 2319 may be owned by the customer but managed by the IaaS provider. In some embodiments, the isolation of these networks (VCNs) may enable a user or customer of the system to store databases privately without having to rely on the internet 2354, which may not have the desired level of threat protection for storage.
[0160] In another embodiment, LB subnet 2322 included in control plane VCN 2316 may be configured to receive signals from gateway 1034. In this embodiment, data plane VCN 1018 may be configured to be called by customers of the IaaS provider without calling the internet 2354. Customers of the IaaS provider may desire this embodiment because databases used by the customers can be stored in service tenancy 2319, which can be controlled by the IaaS provider and isolated from the internet 2354.
[0161] In some embodiments, the following operations may be performed: In step 1, Oracle cloud console 2357 sends an HTTPS request to proxy computer 2352. Proxy computer 2352 may be configured to perform authentication and / or authorization operations. In step 2, proxy computer 2352 may forward the request to LB subnet 2322 via HTTPS. In step 3, a load balancer in LB subnet 2322 forwards the request to one OCC data plane via HTTPS / mTLS. In step 4, proxy computer 2352 may perform authentication, which is handled via mTLS, using a certificate loaded from service 2357. In step 5, data from ADW 2374 is read and returned to the caller.
[0162] In some embodiments, a timer (e.g., a daily timer) may elapse and start a dataflow job 2370 (an example of Spark job 214 in FIG. 2 ). In step 7, the dataflow job 2370 may pull data from object storage 2372 from a bucket owned and operated by a service provider associated with service provider tenancy 2362. In step 8, the dataflow job may process and store the retrieved data in ADW 2374 (an example of ADW 216 in FIG. 1 ). In step 9, a zipfile containing the Spark job may be loaded into object storage 2372. A data collector controller 2376 may load a file (e.g., a zip file) containing the Spark job into object storage 2372. The dataflow job 2370 may be configured to consume code from object storage 2372.
[0163] Although not shown, the IaaS / DRCC architecture can be hosted by multiple racks. As an example, the architecture can utilize a base footprint of 12 racks, or at least fewer racks than those utilized in a typical public cloud. In some embodiments, cloud services 2356 can be hosted by fewer racks than those utilized for cloud services within a public cloud. In some embodiments, a public cloud may utilize 21 racks for service enclaves, while the IaaS / DRCC of FIG. 23 may utilize four racks. A public cloud may utilize 12 racks for customer enclaves, while the IaaS / DRCC of FIG. 23 may utilize five racks. As another example, a public cloud may utilize 12 racks for networking, while the IaaS / DRCC of FIG. 23 may utilize three racks. The IaaS / DRCC architecture, like a public cloud, can maintain separation between service enclaves, customer enclaves, and network racks. This allows for the highest core density in both the substrate network and the overlay network. In some embodiments, the hardware utilized to host the IaaS / DRCC may be configured by the service provider and deployed on-premise at the customer's location.
[0164] As mentioned above, infrastructure as a service (IaaS) is one specific type of cloud computing. IaaS can be configured to provide virtualized computing resources over a public network (e.g., the Internet). In the IaaS model, cloud computing providers can host infrastructure components (e.g., servers, storage devices, network nodes (e.g., hardware), deployment software, platform virtualization (e.g., hypervisor layer), etc.). In some cases, IaaS providers can also offer various services associated with those infrastructure components (example services include billing software, monitoring software, logging software, load balancing software, clustering software, etc.). Accordingly, these services can be policy-driven, allowing IaaS users to implement policies that drive load balancing to maintain application availability and performance.
[0165] In some cases, IaaS customers can access resources and services over a wide area network (WAN) like the Internet and use the cloud provider's services to install the remaining elements of their application stack. For example, a user can log into an IaaS platform to create virtual machines (VMs), install an operating system (OS) on each VM, deploy middleware like a database, create storage buckets for workloads and backups, and even install enterprise software on the VMs. The customer can then use the provider's services to perform a variety of functions, including distributing network traffic, troubleshooting application issues, monitoring performance, and managing disaster recovery.
[0166] In most cases, the cloud computing model requires the participation of a cloud provider, which can be, but is not required to be, a third-party service that specializes in providing (e.g., offering, renting, or selling) IaaS. An entity can also choose to deploy a private cloud and become its own provider of infrastructure services.
[0167] In some examples, IaaS deployment is the process of placing a new application, or a new version of an application, onto a prepared application server, etc. IaaS deployment may also include the process of preparing the server (e.g., installing libraries, daemons, etc.), which is often managed by the cloud provider below the hypervisor layer (e.g., server, storage, network hardware, and virtualization). Thus, the customer may be responsible for handling the deployment of the (OS), middleware, and / or application (e.g., in self-service virtual machines (e.g., that can be spun up on demand)).
[0168] In some instances, IaaS provisioning may refer to obtaining the computers or virtual hosts to be used and also installing the necessary libraries or services on those computers or virtual hosts. In most cases, deployment does not include provisioning, which may need to be performed first.
[0169] In some cases, IaaS provisioning presents two distinct challenges. First, there is the initial challenge of provisioning the initial set of infrastructure before anything is running. Second, there is the challenge of evolving the existing infrastructure (e.g., adding new services, modifying services, removing services, etc.) once everything is provisioned. In some cases, these two challenges can be addressed by allowing the configuration of the infrastructure to be defined declaratively. In other words, the infrastructure (e.g., what components are needed and how they interact) can be defined by one or more configuration files. Thus, the overall topology of the infrastructure (e.g., what resources depend on what and how each works together) can be described declaratively. In some cases, once the topology is defined, workflows can be generated to create and / or manage the different components described in the configuration files.
[0170] In some examples, the infrastructure can have many interconnected elements. For example, there can be one or more virtual private clouds (VPCs) (e.g., potential on-demand pools of configurable and / or shared computing resources), also known as a core network. In some examples, there can also be one or more inbound / outbound traffic group rules and one or more virtual machines (VMs) provisioned to define how the network's inbound and / or outbound traffic is set up. Other infrastructure elements, such as load balancers, databases, etc., can also be provisioned. The infrastructure can evolve over time as more infrastructure elements are desired and / or added.
[0171] In some cases, continuous deployment techniques can be employed to enable deployment of infrastructure code across various virtual computing environments. Additionally, the described techniques can enable infrastructure management within these environments. In some examples, a service team may write code that is desired to be deployed to one or more, but often many, different production environments (e.g., across various different geographic locations, sometimes across the globe). However, in some examples, the infrastructure onto which the code will be deployed must first be set up. In some cases, provisioning can be done manually, and provisioning tools may be utilized to provision the resources, and / or deployment tools may be utilized to deploy the code once the infrastructure has been provisioned.
[0172] In some embodiments, OC1 120 of FIG. 1 (including DRCC lifecycle management application 144) is provided according to one of the patterns of FIGS.
[0173] 24 is a block diagram 2400 illustrating an example IaaS architectural pattern according to at least one embodiment. A service operator 2402 may be communicatively coupled to a secure host tenancy 2404, which may include a virtual cloud network (VCN) 2406 and a secure host subnet 2408. In some examples, the service operator 2402 may employ one or more client computing devices, which may be portable handheld devices (e.g., iPhone®, mobile phone, iPad®, computing tablet, personal digital assistant (PDA)), or wearable devices (e.g., Google Glass® head-mounted display) running software such as Microsoft Windows Mobile® and / or various mobile operating systems such as iOS, Windows Phone, Android, BlackBerry 8, PalmOS, and supporting the Internet, email, short message service (SMS), Blackberry®, or other communication protocols. Alternatively, the client computing devices may be general-purpose personal computers, including, by way of example, personal and / or laptop computers running various versions of the Microsoft Windows operating system, the Apple Macintosh operating system, and / or the Linux operating system. The client computing devices may be workstation computers running any of a variety of commercially available UNIX or UNIX-like operating systems, including, without limitation, various GNU / Linux operating systems, such as Google Chrome OS.Alternatively or additionally, the client computing device may be any other electronic device, such as a thin client computer, an Internet-enabled gaming system (e.g., a Microsoft Xbox gaming console with or without a Kinect® gesture input device), and / or a personal messaging device, that can communicate over a network that has access to the VCN 2406 and / or the Internet.
[0174] VCN 2406 may include a local peering gateway (LPG) 2410, which may be communicatively coupled to a secure shell (SSH) VCN 2412 via the LPG 2410 included in the SSH VCN 2412. The SSH VCN 2412 may include an SSH subnet 2414, which may be communicatively coupled to a control plane VCN 2416 via the LPG 2410 included in the control plane VCN 2416. The SSH VCN 2412 may also be communicatively coupled to a data plane VCN 2418 via the LPG 2410. The control plane VCN 2416 and the data plane VCN 2418 may be included in a service tenancy 2419, which may be owned and / or operated by the IaaS provider.
[0175] The control plane VCN 2416 may include a control plane demilitarized zone (DMZ) tier 2420 that acts as a perimeter network (e.g., the portion of the enterprise network between the enterprise intranet and external networks). DMZ-based servers have limited responsibilities and can help mitigate security breaches. Additionally, the DMZ tier 2420 may include one or more load balancer (LB) subnets 2422, a control plane app tier 2424 that may include an app subnet 2426, and a control plane data tier 2428 that may include a database (DB) subnet 2430 (e.g., a front-end DB subnet and / or a back-end DB subnet). LB subnet 2422 included in control plane DMZ tier 2420 can be communicatively coupled to app subnet 2426 included in control plane app tier 2424 and to internet gateway 2434, which can be included in control plane VCN 2416, and app subnet 2426 can be communicatively coupled to DB subnet 2430 included in control plane data tier 2428, to service gateway 2436, and to network address translation (NAT) gateway 2438. Control plane VCN 2416 can include service gateway 2436 and NAT gateway 2438.
[0176] The control plane VCN 2416 may include a data plane mirror app layer 2440, which may include an app subnet 2426. The app subnet 2426 included in the data plane mirror app layer 2440 may include a virtual network interface controller (VNIC) 2442 on which a compute instance 2444 may run. The compute instance 2444 may be communicatively coupled to the app subnet 2426 of the data plane mirror app layer 2440, which may be included in the data plane app layer 2446.
[0177] Data plane VCN 2418 may include data plane app layer 2446, data plane DMZ layer 2448, and data plane data layer 2450. Data plane DMZ layer 2448 may include LB subnet 2422, which may be communicatively coupled to app subnet 2426 of data plane app layer 2446 and internet gateway 2434 of data plane VCN 2418. App subnet 2426 may be communicatively coupled to service gateway 2436 of data plane VCN 2418 and NAT gateway 2438 of data plane VCN 2418. Data plane data layer 2450 may also include DB subnet 2430, which may be communicatively coupled to app subnet 2426 of data plane app layer 2446.
[0178] The internet gateway 2434 of the control plane VCN 2416 and the internet gateway 2434 of the data plane VCN 2418 may be communicatively coupled to a metadata management service 2452, which may be communicatively coupled to the public internet 2454. The public internet 2454 may be communicatively coupled to a NAT gateway 2438 of the control plane VCN 2416 and the NAT gateway 2438 of the data plane VCN 2418. The service gateway 2436 of the control plane VCN 2416 and the service gateway 2436 of the data plane VCN 2418 may be communicatively coupled to cloud services 2456.
[0179] In some examples, the service gateway 2436 of the control plane VCN 2416 or the service gateway 2436 of the data plane VCN 2418 can make application programming interface (API) calls to the cloud services 2456 without traversing the public internet 2454. The API calls from the service gateway 2436 to the cloud services 2456 can be one-way. That is, the service gateway 2436 can make API calls to the cloud services 2456, and the cloud services 2456 can send the requested data to the service gateway 2436. However, the cloud services 2456 cannot initiate API calls to the service gateway 2436.
[0180] In some examples, secure host tenancy 2404 can be directly connected to service tenancy 2419, which may otherwise be isolated. Secure host subnet 2408 can communicate with SSH subnet 2414 through LPG 2410, which may enable bidirectional communication in an otherwise isolated system. By connecting secure host subnet 2408 to SSH subnet 2414, secure host subnet 2408 can access other entities in service tenancy 2419.
[0181] The control plane VCN 2416 can enable users of the service tenancy 2419 to set up or otherwise provision desired resources. The desired resources provisioned in the control plane VCN 2416 can be deployed or otherwise used in the data plane VCN 2418. In some examples, the control plane VCN 2416 can be isolated from the data plane VCN 2418, and the data plane mirror app layer 2440 of the control plane VCN 2416 can communicate with the data plane app layer 2446 of the data plane VCN 2418 via a VNIC 2442, which can be included in the data plane mirror app layer 2440 and the data plane app layer 2446.
[0182] In some examples, a user or customer of the system may make a request, for example, a request for a create, read, update, or delete (CRUD) operation, via the public internet 2454, which may communicate such a request to the metadata management service 2452. The metadata management service 2452 may communicate the request to the control plane VCN 2416 via the internet gateway 2434. The request may be received by the LB subnet 2422 included in the control plane DMZ tier 2420. The LB subnet 2422 may determine that the request is valid, and in response to this determination, the LB subnet 2422 may send the request to the app subnet 2426 included in the control plane app tier 2424. If the request is validated and requires a call to the public internet 2454, the call to the public internet 2454 may be sent to the NAT gateway 2438, which may make the call to the public internet 2454. Metadata that may be desired to be stored by the request may be stored in the DB subnet 2430.
[0183] In some examples, data plane mirror app layer 2440 can facilitate direct communication between control plane VCN 2416 and data plane VCN 2418. For example, it may be desired that configuration changes, updates, or other suitable modifications be applied to resources included in data plane VCN 2418. Control plane VCN 2416 can communicate directly with resources included in data plane VCN 2418 via VNIC 2442, thereby enabling the configuration changes, updates, or other suitable modifications to be applied to the resources.
[0184] In some embodiments, the control plane VCN 2416 and the data plane VCN 2418 can be included in the service tenancy 2419. In this case, a user or customer of the system need not own or operate either the control plane VCN 2416 or the data plane VCN 2418. Instead, an IaaS provider can own or operate the control plane VCN 2416 and the data plane VCN 2418, both of which can be included in the service tenancy 2419. This embodiment can enable network isolation, thereby preventing users or customers from interacting with other users' or customers' resources. This embodiment can also enable users or customers of the system to store databases privately without having to rely on the public internet 2454, which may not have the desired level of threat protection for storage.
[0185] In another embodiment, LB subnet 2422 included in control plane VCN 2416 may be configured to receive signals from service gateway 2436. In this embodiment, control plane VCN 2416 and data plane VCN 2418 may be configured to be called by customers of the IaaS provider without calling the public internet 2454. Customers of the IaaS provider may desire this embodiment because databases used by the customers can be stored in service tenancy 2419, which can be controlled by the IaaS provider and isolated from the public internet 2454.
[0186] Figure 25 is a block diagram 2500 illustrating another example pattern of an IaaS architecture, according to at least one embodiment. A service operator 2502 (e.g., service operator 2402 of Figure 24) may be communicatively coupled to a secure host tenancy 2504 (e.g., secure host tenancy 2404 of Figure 24), which may include a virtual cloud network (VCN) 2506 (e.g., VCN 2406 of Figure 24) and a secure host subnet 2508 (e.g., secure host subnet 2408 of Figure 24). VCN 2506 may include a local peering gateway (LPG) 2510 (e.g., LPG 610 of Figure 24), which may be communicatively coupled to a secure shell (SSH) VCN 2512 (e.g., SSH VCN 2412 of Figure 24) via the LPG 2410 included in the SSH VCN 2512. SSH VCN 2512 can include SSH subnet 2514 (e.g., SSH subnet 2414 in FIG. 24), and SSH VCN 2512 can be communicatively coupled to control plane VCN 2516 (e.g., control plane VCN 2416 in FIG. 24) via LPG 2510 included in control plane VCN 2516. Control plane VCN 2516 can be included in service tenancy 2519 (e.g., service tenancy 2419 in FIG. 24), and data plane VCN 2518 (e.g., data plane VCN 2418 in FIG. 24) can be included in customer tenancy 2521, which can be owned or operated by a user or customer of the system.
[0187] The control plane VCN 2516 may include a control plane DMZ tier 2520 (e.g., control plane DMZ tier 2420 in FIG. 24) that may include a LB subnet 2522 (e.g., LB subnet 2422 in FIG. 24), a control plane app tier 2524 (e.g., control plane app tier 2424 in FIG. 24) that may include an app subnet 2526 (e.g., app subnet 2426 in FIG. 24), and a control plane data tier 2528 (e.g., control plane data tier 2428 in FIG. 24) that may include a database (DB) subnet 2530 (e.g., similar to DB subnet 2430 in FIG. 24). The LB subnet 2522 included in the control plane DMZ tier 2520 can be communicatively coupled to an app subnet 2526 included in the control plane app tier 2524 and to an Internet gateway 2534 (e.g., Internet gateway 2434 in FIG. 24 ) that can be included in the control plane VCN 2516, and the app subnet 2526 can be communicatively coupled to a DB subnet 2530 included in the control plane data tier 2528 and to a service gateway 2536 (e.g., service gateway 2436 in FIG. 24 ) and a network address translation (NAT) gateway 2538 (e.g., NAT gateway 2438 in FIG. 24 ). The control plane VCN 2516 can include the service gateway 2536 and the NAT gateway 2538.
[0188] Control plane VCN 2516 may include a data plane mirror app layer 2540 (e.g., data plane mirror app layer 2440 of FIG. 24 ), which may include an app subnet 2526. App subnet 2526 included in data plane mirror app layer 2540 may include a virtual network interface controller (VNIC) 2542 (e.g., VNIC 2442) on which compute instance 2544 (e.g., similar to compute instance 2444 of FIG. 24 ) can run. Compute instance 2544 can facilitate communication between app subnet 2526 of data plane mirror app layer 2540 and app subnet 2526, which may be included in data plane app layer 2546 (e.g., data plane app layer 2446 of FIG. 24 ), via VNIC 2542 included in data plane mirror app layer 2540 and VNIC 2542 included in data plane app layer 2546.
[0189] An internet gateway 2534 included in the control plane VCN 2516 may be communicatively coupled to a metadata management service 2552 (e.g., metadata management service 2452 of FIG. 24), which may be communicatively coupled to the public internet 2554 (e.g., public internet 2454 of FIG. 24). The public internet 2554 may be communicatively coupled to a NAT gateway 2538 included in the control plane VCN 2516. A service gateway 2536 included in the control plane VCN 2516 may be communicatively coupled to cloud services 2556 (e.g., cloud services 2456 of FIG. 24).
[0190] In some examples, the data plane VCN 2518 can be included in the customer tenancy 2521. In this case, the IaaS provider can provide a control plane VCN 2516 for each customer, and the IaaS provider can set up a unique compute instance 2544 for each customer, which is included in the service tenancy 2519. Each compute instance 2544 can enable communication between the control plane VCN 2516, which is included in the service tenancy 2519, and the data plane VCN 2518, which is included in the customer tenancy 2521. The compute instance 2544 can enable resources provisioned in the control plane VCN 2516, which is included in the service tenancy 2519, to be deployed to or otherwise used in the data plane VCN 2518, which is included in the customer tenancy 2521.
[0191] In another example, a customer of the IaaS provider may have a database that resides in customer tenancy 2521. In this example, control plane VCN 2516 may include data plane mirror app tier 2540, which may include app subnet 2526. Data plane mirror app tier 2540 may reside in data plane VCN 2518, but data plane mirror app tier 2540 may not reside in data plane VCN 2518. That is, data plane mirror app tier 2540 may have access to customer tenancy 2521, but data plane mirror app tier 2540 may not reside in data plane VCN 2518 or be owned and operated by the IaaS provider customer. Data plane mirror app tier 2540 may be configured to make calls to data plane VCN 2518, but may not be configured to make calls to any entities included in control plane VCN 2516. A customer may wish to deploy or otherwise use resources in the data plane VCN 2518 that have been provisioned in the control plane VCN 2516, and the data plane mirror app layer 2540 can facilitate the customer's desired deployment or other use of the customer's resources.
[0192] In some embodiments, the IaaS provider's customer can apply filters to the data plane VCN 2518. In this embodiment, the customer can determine what the data plane VCN 2518 can access, and the customer can restrict access from the data plane VCN 2518 to the public internet 2554. The IaaS provider may not be able to apply filters or otherwise control access from the data plane VCN 2518 to any external networks or databases. Applying filters and controls to the data plane VCN 2518 included in the customer tenancy 2521 can help to isolate the data plane VCN 2518 from other customers and from the public internet 2554.
[0193] In some embodiments, service gateway 2536 can call cloud services 2556 to access services that may not reside on the public internet 2554, on the control plane VCN 2516, or on the data plane VCN 2518. The connection between cloud services 2556 and the control plane VCN 2516 or data plane VCN 2518 may not be live or continuous. Cloud services 2556 may reside on different networks owned or operated by the IaaS provider. Cloud services 2556 may be configured to receive calls from service gateway 2536 and may not be configured to receive calls from the public internet 2554. Some cloud services 2556 may be isolated from other cloud services 2556, and control plane VCN 2516 may be isolated from cloud services 2556 that may not be in the same region as control plane VCN 2516. For example, control plane VCN 2516 may be located in “Region 1,” and cloud service “Deployment 24” may be located in “Region 1” and “Region 2.” If a call to a deployment 24 is made by a service gateway 2536 included in a control plane VCN 2516 located in Region 1, the call may be sent to the deployment 24 in Region 1. In this example, the control plane VCN 2516 or the deployment 24 in Region 1 may not be communicatively coupled or otherwise in communication with the deployment 24 in Region 2.
[0194] Figure 26 is a block diagram 2600 illustrating another example pattern of an IaaS architecture, according to at least one embodiment. A service operator 2602 (e.g., service operator 2402 of Figure 24) may be communicatively coupled to a secure host tenancy 2604 (e.g., secure host tenancy 2404 of Figure 24), which may include a virtual cloud network (VCN) 2606 (e.g., VCN 2406 of Figure 24) and a secure host subnet 2608 (e.g., secure host subnet 2408 of Figure 24). VCN 2606 may include an LPG 2610 (e.g., LPG 2410 of Figure 24), which may be communicatively coupled to an SSH VCN 2612 (e.g., SSH VCN 2412 of Figure 24) via the LPG 2610 included in the SSH VCN 2612. SSH VCN 2612 can include SSH subnet 2614 (e.g., SSH subnet 2414 in FIG. 24), and SSH VCN 2612 can be communicatively coupled to control plane VCN 2616 (e.g., control plane VCN 2416 in FIG. 24) via LPG 2610 included in control plane VCN 2616 and to data plane VCN 2618 (e.g., data plane 2418 in FIG. 24) via LPG 2610 included in data plane VCN 2618. Control plane VCN 2616 and data plane VCN 2618 can be included in service tenancy 2619 (e.g., service tenancy 2419 in FIG. 24).
[0195] The control plane VCN 2616 may include a control plane DMZ layer 2620 (e.g., control plane DMZ layer 2420 of FIG. 24) that may include a load balancer (LB) subnet 2622 (e.g., LB subnet 2422 of FIG. 24), a control plane app layer 2624 (e.g., control plane app layer 2424 of FIG. 24) that may include an app subnet 2626 (e.g., similar to app subnet 2426 of FIG. 24), and a control plane data layer 2628 (e.g., control plane data layer 2428 of FIG. 24) that may include a DB subnet 2630. LB subnet 2622 included in control plane DMZ tier 2620 can be communicatively coupled to app subnet 2626 included in control plane app tier 2624 and to an Internet gateway 2634 (e.g., Internet gateway 2434 in FIG. 24 ), which can be included in control plane VCN 2616, and app subnet 2626 can be communicatively coupled to DB subnet 2630 included in control plane data tier 2628 and to a service gateway 2636 (e.g., service gateway in FIG. 24 ) and a network address translation (NAT) gateway 2638 (e.g., NAT gateway 2438 in FIG. 24 ). Control plane VCN 2616 can include service gateway 2636 and NAT gateway 2638.
[0196] Data plane VCN 2618 may include data plane app layer 2646 (e.g., data plane app layer 2446 in FIG. 24 ), data plane DMZ layer 2648 (e.g., data plane DMZ layer 2448 in FIG. 24 ), and data plane data layer 2650 (e.g., data plane data layer 2450 in FIG. 24 ). Data plane DMZ layer 2648 may include LB subnet 2622, which may be communicatively coupled to trusted app subnet 2660 and untrusted app subnet 2662 of data plane app layer 2646, which are included in data plane VCN 2618, as well as Internet gateway 2634. Trusted app subnet 2660 may be communicatively coupled to service gateway 2636, which is included in data plane VCN 2618, NAT gateway 2638, which is included in data plane VCN 2618, and DB subnet 2630, which is included in data plane data layer 2650. Untrusted app subnet 2662 may be communicatively coupled to service gateway 2636 included in data plane VCN 2618 and DB subnet 2630 included in data plane data layer 2650. Data plane data layer 2650 may include DB subnet 2630, which may be communicatively coupled to service gateway 2636 included in data plane VCN 2618.
[0197] The untrusted app subnet 2662 may include one or more primary VNICs 2664(1)-(N), which may be communicatively coupled to tenant virtual machines (VMs) 2666(1)-(N). Each tenant VM 2666(1)-(N) may be communicatively coupled to a respective app subnet 2667(1)-(N), which may be included in a respective container egress VCN 2668(1)-(N), which may be included in a respective customer tenancy 2670(1)-(N). Each secondary VNIC 2672(1)-(N) may facilitate communication between the untrusted app subnet 2662 included in the data plane VCN 2618 and the app subnet included in the container egress VCN 2668(1)-(N). Each container egress VCN 2668(1)-(N) may include a NAT gateway 2638, which may be communicatively coupled to the public internet 2654 (e.g., public internet 2454 in FIG. 24 ).
[0198] The internet gateway 2634 included in the control plane VCN 2616 and the internet gateway 2634 included in the data plane VCN 2618 may be communicatively coupled to a metadata management service 2652 (e.g., metadata management system 2452 of FIG. 24 ), which may be communicatively coupled to the public internet 2654. The public internet 2654 may be communicatively coupled to a NAT gateway 2638 included in the control plane VCN 2616 and the NAT gateway 2638 included in the data plane VCN 2618. The service gateway 2636 included in the control plane VCN 2616 and the service gateway 2636 included in the data plane VCN 2618 may be communicatively coupled to cloud services 2656.
[0199] In some embodiments, data plane VCN 2618 can be integrated with customer tenancy 2670. This integration can be useful or desirable for an IaaS provider's customer in some cases, such as when they may want support when running code. A customer may provide code to run that may be disruptive, may communicate with other customer resources, or may cause undesirable effects. In response, the IaaS provider can determine whether to run the code that the customer has provided to the IaaS provider.
[0200] In some examples, a customer of an IaaS provider can grant temporary network access to the IaaS provider and request a function to be attached to data plane app layer 2646. The code that performs the function can run in VMs 2666(1)-(N), and the code may not be configured to run anywhere else on data plane VCN 2618. Each VM 2666(1)-(N) can be connected to one customer tenancy 2670. Each container 2671(1)-(N) contained in VMs 2666(1)-(N) can be configured to run code. In this case, there can be double isolation (e.g., containers 2671(1)-(N) can run code, and containers 2671(1)-(N) can be contained in VMs 2666(1)-(N) that are at least in untrusted app subnet 2662). This can help prevent erroneous or otherwise unwanted code from damaging the IaaS provider's network or damaging a different customer's network. Containers 2671(1)-(N) can be communicatively coupled to customer tenancy 2670 and configured to send or receive data from customer tenancy 2670. Containers 2671(1)-(N) may not be configured to send or receive data from any other entity in data plane VCN 2618. When the code execution is complete, the IaaS provider can kill or otherwise discard containers 2671(I)-(N).
[0201] In some embodiments, trusted app subnet 2660 can execute code that may be owned or operated by the IaaS provider. In this embodiment, trusted app subnet 2660 can be communicatively coupled to DB subnet 2630 and configured to perform CRUD operations on DB subnet 2630. Untrusted app subnet 2662 can be communicatively coupled to DB subnet 2630, but in this embodiment, the untrusted app subnet can be configured to perform read operations within DB subnet 2630. Containers 2671(1)-(N) that can be included in each customer's VMs 2666(1)-(N) and that can execute code from the customer may not be communicatively coupled to DB subnet 2630.
[0202] In other embodiments, the control plane VCN 2616 and the data plane VCN 2618 may not be directly communicatively coupled. In this embodiment, there may be no direct communication between the control plane VCN 2616 and the data plane VCN 2618. However, communication can occur indirectly in at least one manner. An IaaS provider may establish an LPG 2610 that can facilitate communication between the control plane VCN 2616 and the data plane VCN 2618. In another example, the control plane VCN 2616 or the data plane VCN 2618 can make a call to a cloud service 2656 through a service gateway 2636. For example, a call from the control plane VCN 2616 to the cloud service 2656 may include a request for a service that can communicate with the data plane VCN 2618.
[0203] Figure 27 is a block diagram 2700 illustrating another example pattern of an IaaS architecture, according to at least one embodiment. A service operator 2702 (e.g., service operator 2402 of Figure 24) may be communicatively coupled to a secure host tenancy 2704 (e.g., secure host tenancy 2404 of Figure 24), which may include a virtual cloud network (VCN) 2706 (e.g., VCN 2406 of Figure 24) and a secure host subnet 2708 (e.g., secure host subnet 2408 of Figure 24). VCN 2706 may include an LPG 2710 (e.g., LPG 2410 of Figure 24), which may be communicatively coupled to an SSH VCN 2712 (e.g., SSH VCN 2412 of Figure 24) via an LPG 2710 included in the SSH VCN 2712. SSH VCN 2712 can include SSH subnet 2714 (e.g., SSH subnet 2414 in FIG. 24), and SSH VCN 2712 can be communicatively coupled to control plane VCN 2716 (e.g., control plane VCN 2416 in FIG. 24) via LPG 2710 included in control plane VCN 2716 and to data plane VCN 2718 (e.g., data plane 2418 in FIG. 24) via LPG 2710 included in data plane VCN 2718. Control plane VCN 2716 and data plane VCN 2718 can be included in service tenancy 2719 (e.g., service tenancy 2419 in FIG. 24).
[0204] The control plane VCN 2716 may include a control plane DMZ layer 2720 (e.g., control plane DMZ layer 2420 of FIG. 24) that may include a LB subnet 2722 (e.g., LB subnet 2422 of FIG. 24), a control plane app layer 2724 (e.g., control plane app layer 2424 of FIG. 24) that may include an app subnet 2726 (e.g., app subnet 2426 of FIG. 24), and a control plane data layer 2728 (e.g., control plane data layer 2428 of FIG. 24) that may include a DB subnet 2730 (e.g., DB subnet 2630 of FIG. 26). LB subnet 2722 included in control plane DMZ tier 2720 can be communicatively coupled to app subnet 2726 included in control plane app tier 2724 and to an Internet gateway 2734 (e.g., Internet gateway 2434 in FIG. 24 ), which can be included in control plane VCN 2716, and app subnet 2726 can be communicatively coupled to DB subnet 2730 included in control plane data tier 2728, as well as to service gateway 2736 (e.g., service gateway in FIG. 24 ) and network address translation (NAT) gateway 2738 (e.g., NAT gateway 2438 in FIG. 24 ). Control plane VCN 2716 can include service gateway 2736 and NAT gateway 2738.
[0205] Data plane VCN 2718 may include a data plane app layer 2746 (e.g., data plane app layer 2446 in FIG. 24 ), a data plane DMZ layer 2748 (e.g., data plane DMZ layer 2448 in FIG. 24 ), and a data plane data layer 2750 (e.g., data plane data layer 2450 in FIG. 24 ). Data plane DMZ layer 2748 may include a LB subnetwork 2722 that may be communicatively coupled to trusted app subnetwork 2760 (e.g., trusted app subnetwork 2660 in FIG. 26 ) and untrusted app subnetwork 2762 (e.g., untrusted app subnetwork 2662 in FIG. 26 ) of data plane app layer 2746 included in data plane VCN 2718, as well as to an Internet gateway 2734 included in data plane VCN 2718. The trusted app subnet 2760 may be communicatively coupled to a service gateway 2736 included in the data plane VCN 2718, a NAT gateway 2738 included in the data plane VCN 2718, and a DB subnet 2730 included in the data plane data layer 2750. The untrusted app subnet 2762 may be communicatively coupled to a service gateway 2736 included in the data plane VCN 2718 and a DB subnet 2730 included in the data plane data layer 2750. The data plane data layer 2750 may include a DB subnet 2730 that may be communicatively coupled to a service gateway 2736 included in the data plane VCN 2718.
[0206] The untrusted app subnet 2762 may include primary VNICs 2764(1)-(N), which may be communicatively coupled to tenant virtual machines (VMs) 2766(1)-(N) residing within the untrusted app subnet 2762. Each tenant VM 2766(1)-(N) may execute code in a respective container 2767(1)-(N), which may be communicatively coupled to an app subnet 2726, which may be included in a data plane app tier 2746, which may be included in a container egress VCN 2768. Each secondary VNIC 2772(1)-(N) may facilitate communication between the untrusted app subnet 2762, which is included in the data plane VCN 2718, and the app subnet included in the container egress VCN 2768. The container egress VCN may include a NAT gateway 2738, which may be communicatively coupled to the public internet 2754 (e.g., public internet 2454 in FIG. 24 ).
[0207] The internet gateway 2734 included in the control plane VCN 2716 and the internet gateway 2734 included in the data plane VCN 2718 may be communicatively coupled to a metadata management service 2752 (e.g., metadata management system 2452 of FIG. 24 ), which may be communicatively coupled to the public internet 2754. The public internet 2754 may be communicatively coupled to a NAT gateway 2738 included in the control plane VCN 2716 and the NAT gateway 2738 included in the data plane VCN 2718. The service gateway 2736 included in the control plane VCN 2716 and the service gateway 2736 included in the data plane VCN 2718 may be communicatively coupled to cloud services 2756.
[0208] In some examples, the pattern illustrated by the architecture of block diagram 2700 in FIG. 27 may be considered an exception to the pattern illustrated by the architecture of block diagram 2600 in FIG. 26 and may be desirable for an IaaS provider's customers when the IaaS provider cannot communicate directly with the customers (e.g., in a disconnected region). The customers can access each of the containers 2767(1)-(N) contained in each customer's VMs 2766(1)-(N) in real time. The containers 2767(1)-(N) can be configured to make calls to each of the secondary VNICs 2772(1)-(N) contained in the app subnet 2726 of the data plane app tier 2746, which can be contained in the container egress VCN 2768. The secondary VNICs 2772(1)-(N) can send the calls to the NAT gateway 2738, which can send the calls to the public Internet 2754. In this example, containers 2767(1)-(N) that a customer can access in real time can be isolated from control plane VCN 2716 and can be isolated from other entities included in data plane VCN 2718. Containers 2767(1)-(N) can also be isolated from resources of other customers.
[0209] In another example, a customer can use containers 2767(1)-(N) to invoke cloud service 2756. In this example, the customer can execute code in containers 2767(1)-(N) that requests a service from cloud service 2756. Containers 2767(1)-(N) can send the request to secondary VNICs 2772(1)-(N), which can send the request to a NAT gateway that can send the request to public internet 2754. Public internet 2754 can send the request to LB subnet 2722, which is included in control plane VCN 2716, via internet gateway 2734. In response to determining that the request is valid, LB subnet 2726 can send the request to app subnet 2726, which can send the request to cloud service 2756 via service gateway 2736.
[0210] It should be understood that the IaaS architectures 2400, 2500, 2600, 2700 shown in the figures may have components other than those shown. Additionally, the illustrated embodiments are merely some examples of cloud infrastructure systems that may incorporate an embodiment of the present disclosure. In other embodiments, the IaaS system may have more or fewer components than those shown in the figures, may combine two or more components, or may have a different configuration or arrangement of components.
[0211] In some embodiments, the IaaS systems described herein may include a suite of application, middleware, and database service offerings that are self-service, subscription-based, elastically scalable, reliable, highly available, and securely delivered to customers. One example of such an IaaS system is Oracle Cloud Infrastructure (OCI), offered by the present assignee.
[0212] 28 illustrates an example computer system 2800 upon which various embodiments may be implemented. System 2800 may be used to implement any of the computer systems described above. As shown, computer system 2800 includes a processing unit 2804 that communicates with multiple peripheral subsystems via a bus subsystem 2802. These peripheral subsystems may include a processing acceleration unit 2806, an I / O subsystem 2808, a storage subsystem 2818, and a communication subsystem 2824. Storage subsystem 2818 includes a tangible computer-readable storage medium 2822 and a system memory 2810.
[0213] The bus subsystem 2802 provides a mechanism for allowing the various components and subsystems of the computer system 2800 to communicate with each other as intended. While the bus subsystem 2802 is shown schematically as a single bus, alternative embodiments of the bus subsystem may utilize multiple buses. The bus subsystem 2802 may be any of several types of bus structures, including a memory bus or memory controller, a peripheral bus, and a local bus using any of a variety of bus architectures. For example, such architectures may include an Industry Standard Architecture (ISA) bus, a Micro Channel Architecture (MCA) bus, an Enhanced ISA (EISA) bus, a Video Electronics Standards Association (VESA) local bus, and a Peripheral Component Interconnect (PCI) bus, which may be implemented as a Mezzanine bus manufactured in accordance with the IEEE P1386.1 standard.
[0214] Processing unit 2804, which may be implemented as one or more integrated circuits (e.g., conventional microprocessors or microcontrollers), controls the operation of computer system 2800. Processing unit 2804 may include one or more processors. These processors may include single-core or multi-core processors. In some embodiments, processing unit 2804 may be implemented as one or more independent processing units 2832 and / or 2834, with a single-core or multi-core processor included in each processing unit. In other embodiments, processing unit 2804 may be implemented as a quad-core processing unit formed by integrating two dual-core processors into a single chip.
[0215] In various embodiments, processing unit 2804 may execute various programs according to program code and may maintain multiple simultaneously executing programs or processes. At any given time, some or all of the program code to be executed may reside in processor 2804 and / or in storage subsystem 2818. Through suitable programming, processor 2804 may provide the various functions described above. Computer system 2800 may further include a processing acceleration unit 2806, which may include a digital signal processor (DSP), a special purpose processor, etc.
[0216] The I / O subsystem 2808 may include user interface input devices and user interface output devices. User interface input devices may include a keyboard, a pointing device such as a mouse or trackball, a touchpad or touchscreen integrated into a display, a scroll wheel, a click wheel, a dial, buttons, switches, a keypad, a voice input device with a voice command recognition system, a microphone, and other types of input devices. User interface input devices may include, for example, a motion sensing and / or gesture recognition device such as a Microsoft Kinect® motion sensor that enables a user to control and interact with an input device such as a Microsoft Xbox® 360 game controller through a natural user interface using gestures and spoken commands. User interface input devices may also include an eye gesture recognition device such as a Google Glass® blink detector that detects eye activity from a user (e.g., "blinking" during picture taking and / or menu selection) and translates the eye gesture as input to an input device (e.g., Google Glass®). Additionally, the user interface input devices may include a voice recognition sensing device that allows a user to interact with a voice recognition system (e.g., Siri® Navigator) via voice commands.
[0217] User interface input devices may also include, but are not limited to, three-dimensional (3D) mice, joysticks or pointing sticks, gamepads, and graphic tablets, as well as audio / visual devices such as speakers, digital cameras, digital video cameras, portable media players, webcams, image scanners, fingerprint scanners, barcode readers, 3D scanners, 3D printers, laser ranging devices, and eye-tracking devices. Furthermore, user interface input devices may include medical imaging input devices such as computed tomography (CT) scanners, magnetic resonance imaging (MRI) scanners, positron emission tomography (PET) scanners, and medical ultrasound scanners. User interface input devices may also include audio input devices such as MIDI keyboards and digital musical instruments.
[0218] User interface output devices may include a display subsystem, indicator lights, or non-visual displays such as audio output devices. The display subsystem may be a flat panel device such as one using a cathode ray tube (CRT), a liquid crystal display (LCD), or a plasma display, a projection device, a touch screen, etc. In general, use of the term "output device" is intended to include all possible types of devices and mechanisms for outputting information from computer system 2800 to a user or to another computer. For example, user interface output devices may include various display devices that visually convey text, graphics, and audio / video information, such as, but not limited to, monitors, printers, speakers, headphones, automobile navigation systems, plotters, audio output devices, and modems.
[0219] Computer system 2800 may include a storage subsystem 2818 that provides a tangible, non-transitory, computer-readable storage medium for storing software and data constructs that provide the functionality of embodiments described in this disclosure. The software may include programs, code modules, instructions, scripts, etc. that, when executed by one or more cores or processors of processing unit 2804, provide the functionality described above. Storage subsystem 2818 may also provide a repository for storing data used in accordance with the present disclosure.
[0220] 28 , storage subsystem 2818 may include various components including system memory 2810, computer-readable storage medium 2822, and computer-readable storage medium reader 2820. System memory 2810 may store program instructions that are loadable and executable by processing unit 2804. System memory 2810 may also store data used during the execution of the instructions and / or data generated during the execution of the program instructions. A variety of different types of programs may be loaded into system memory 2810, including, but not limited to, client applications, web browsers, middle-tier applications, relational database management systems (RDBMS), virtual machines, containers, etc.
[0221] System memory 2810 may also store operating system 2816. Examples of operating system 2816 may include various versions of Microsoft Windows® operating systems, Apple Macintosh® operating systems, and / or Linux operating systems, various commercially available UNIX® or UNIX-like operating systems (including, but not limited to, various GNU / Linux operating systems, Google Chrome® OS, etc.), and / or mobile operating systems such as iOS, Windows® Phone, Android® OS, BlackBerry® OS, and Palm® OS operating systems. In some implementations in which computer system 2800 runs one or more virtual machines, the virtual machines, along with a guest operating system (GOS), may be loaded into system memory 2810 and executed by one or more processors or cores of processing unit 2804.
[0222] The system memory 2810 may be configured differently depending on the type of computer system 2800. For example, the system memory 2810 may be volatile memory (such as random access memory (RAM)) and / or non-volatile memory (such as read-only memory (ROM), flash memory, etc.). Different types of RAM configurations may be provided, including static random access memory (SRAM), dynamic random access memory (DRAM), etc. In some implementations, the system memory 2810 may include a basic input / output system (BIOS), which contains the basic routines that help to transfer information between elements within the computer system 2800, such as during start-up.
[0223] Computer-readable storage medium 2822 may represent a remote, local, fixed, and / or removable storage device plus storage medium for temporarily and / or more permanently containing and storing computer-readable information used by computer system 2800, including instructions executable by processing unit 2804 of computer system 2800.
[0224] Computer-readable storage medium 2822 may include any suitable medium known or used in the art, including, but not limited to, storage media and communication media such as volatile and nonvolatile, removable and non-removable media, implemented in any method or technology for storing and / or transmitting information. This may include tangible computer-readable storage media such as RAM, ROM, Electronically Erasable Programmable ROM (EEPROM), flash memory or other memory technology, CD-ROM, Digital Versatile Disk (DVD) or other optical storage, magnetic cassette, magnetic tape, magnetic disk storage or other magnetic storage device, or other tangible computer-readable medium.
[0225] By way of example, the computer-readable storage medium 2822 may include a hard disk drive that reads from or writes to non-removable, non-volatile magnetic media, a magnetic disk drive that reads from or writes to removable, non-volatile magnetic disks, and an optical disk drive that reads from or writes to removable, non-volatile optical disks such as CD-ROMs, DVDs, and Blu-Ray® disks or other optical media. The computer-readable storage medium 2822 may include, but is not limited to, Zip® drives, flash memory cards, Universal Serial Bus (USB) flash drives, Secure Digital (SD) cards, DVD disks, digital video tapes, etc. The computer-readable storage media 2822 can also include solid-state drives (SSDs) based on non-volatile memory such as flash memory-based SSDs, enterprise flash drives, solid-state ROM, volatile memory-based SSDs such as solid-state RAM, dynamic RAM, static RAM, DRAM-based SSDs, magnetoresistive RAM (MRAM) SSDs, and hybrid SSDs that use a combination of DRAM and flash memory-based SSDs. Disk drives and their associated computer-readable media can provide non-volatile storage of computer-readable instructions, data structures, program modules, and other data for the computer system 2800.
[0226] Machine-readable instructions executable by one or more processors or cores of processing unit 2804 may be stored on a non-transitory computer-readable storage medium. Non-transitory computer-readable storage media may include physically tangible memory or storage devices, including volatile and / or non-volatile memory storage devices. Examples of non-transitory computer-readable storage media include magnetic storage media (e.g., disks or tapes), optical storage media (e.g., DVDs, CDs), various types of RAM, ROM, or flash memory, hard drives, floppy drives, removable memory drives (e.g., USB drives), or other types of storage devices.
[0227] The communications subsystem 2824 provides an interface to other computer systems and networks. The communications subsystem 2824 serves as an interface for receiving data from the computer system 2800 and transmitting data from the computer system 2800 to other systems. For example, the communications subsystem 2824 may enable the computer system 2800 to connect to one or more devices via the Internet. In some embodiments, the communications subsystem 2824 may include a radio frequency (RF) transceiver component for accessing a wireless voice and / or data network (e.g., using cellular technology, advanced data network technologies such as 3G, 4G, or EDGE (enhanced data rates for global evolution), Wi-Fi (IEEE 802.11 family of standards, or other mobile communications technologies, or any combination thereof), a global positioning system (GPS) receiver component, and / or other components. In some embodiments, the communications subsystem 2824 may provide wired network connectivity (e.g., Ethernet) in addition to or instead of a wireless interface.
[0228] In some embodiments, the communications subsystem 2824 may also receive incoming communications in the form of structured and / or unstructured data feeds 2826, event streams 2828, event updates 2830, etc., on behalf of one or more users who may use the computer system 3300.
[0229] As an example, the communications subsystem 2824 may be configured to receive data feeds 2826 in real time from users of social networks and / or other communications services, such as web feeds like Twitter® feeds, Facebook® updates, Rich Site Summary (RSS) feeds, and / or real-time updates from one or more third-party sources.
[0230] Additionally, communications subsystem 2824 may be configured to receive data in the form of continuous data streams, which may include event streams 2828 of real-time events and / or event updates 2830, which may be continuous or infinite in nature with no apparent end. Examples of applications that generate continuous data may include, for example, sensor data applications, financial tickers, network performance measurement tools (e.g., network monitoring and traffic management applications), clickstream analysis tools, automobile traffic monitoring, etc.
[0231] The communications subsystem 2824 may also be configured to output structured and / or unstructured data feeds 2826, event streams 2828, event updates 2830, etc. to one or more databases that can communicate with one or more streaming data source computers coupled to the computer system 2800.
[0232] The computer system 2800 can be one of a variety of types, including a handheld portable device (e.g., an iPhone® mobile phone, an iPad® computing tablet, a PDA), a wearable device (e.g., a Google Glass® head-mounted display), a PC, a workstation, a mainframe, a kiosk, a server rack, or any other data processing system.
[0233] Because the nature of computers and networks is constantly changing, the description of computer system 2800 shown in the figure is intended merely as a specific example. Many other configurations are possible, having more or fewer components than the system shown in the figure. For example, customized hardware may be used, and / or particular elements may be implemented in hardware, firmware, software (including applets), or a combination. Additionally, connections to other computing devices, such as network input / output devices, may be employed. Based on the disclosure and teachings provided herein, one of ordinary skill in the art will appreciate other manners and / or methods for implementing the various embodiments.
[0234] The embodiments may be implemented by using a computer program product comprising a computer program / instructions which, when executed by a processor, cause the processor to perform any of the methods described in this disclosure.
[0235] While specific embodiments have been described, various modifications, variations, alternative constructions, and equivalents are encompassed within the scope of the present disclosure. The embodiments are not limited to operation in one specific data processing environment, but can freely operate in multiple data processing environments. Furthermore, while the embodiments have been described using a particular sequence of transactions and steps, it should be apparent to those skilled in the art that the scope of the present disclosure is not limited to the described sequence of transactions and steps. Various features and aspects of the above-described embodiments may be used individually or jointly.
[0236] Furthermore, while embodiments have been described using particular combinations of hardware and software, it should be recognized that other combinations of hardware and software are within the scope of the present disclosure. Embodiments may be implemented solely in hardware, solely in software, or using a combination thereof. Various processes described herein may be implemented on the same processor or on any combination of different processors. Thus, when a component or service is described as being configured to perform certain operations, such configuration may be achieved, for example, by designing electronic circuitry to perform the operations, by programming a programmable electronic circuit (such as a microprocessor) to perform the operations, or any combination thereof. Processes may communicate using various techniques, including, but not limited to, conventional techniques for inter-process communication, and different pairs of processes may use different techniques, or the same pair of processes may use different techniques at different times.
[0237] Accordingly, the specification and drawings should be regarded in an illustrative rather than a restrictive sense. However, it will be apparent that additions, subtractions, deletions, and other modifications and changes may be made to the specification and drawings without departing from the broader spirit and scope as set forth in the appended claims. Accordingly, although specific disclosed embodiments have been described, they are not intended to be limiting. Various modifications and equivalents are within the scope of the appended claims.
[0238] In the context of describing the disclosed embodiments (particularly in the context of the appended claims), use of the terms "a," "an," and "the" and similar referents should be construed to encompass both the singular and the plural, unless otherwise indicated herein or clearly contradicted by context. The terms "comprising," "having," "including," and "containing" should be construed as open-ended terms (i.e., meaning "including, but not limited to"), unless otherwise noted. The term "connected" should be construed as contained within, attached to, or joined to one another, either partially or as a whole, even if there is intervening material. The recitation of ranges of values herein, unless otherwise indicated herein, is merely intended to serve as a shorthand method of referring individually to each separate value falling within the range, and each separate value is incorporated herein as if it were individually recited herein. Unless otherwise indicated herein or clearly contradicted by context, all methods described herein can be performed in any suitable order. Any and all examples provided herein, or the use of exemplary language (e.g., "etc.") are intended merely to clarify the embodiments and do not limit the scope of the disclosure unless otherwise claimed. No language in the specification should be construed as indicating any non-claimed element as essential to the practice of the disclosure.
[0239] Disjunctive language, such as the phrase "at least one of X, Y, or Z," is intended to be understood in context as generally used to indicate that an item, term, etc. may be either X, Y, or Z, or any combination thereof (e.g., X, Y, and / or Z), unless specifically stated otherwise. Thus, such disjunctive language is not intended to, and should not, generally imply that some embodiments require that at least one of X, at least one of Y, or at least one of Z, respectively, be present.
[0240] Preferred embodiments of the present disclosure are described herein, including the best mode known for carrying out the disclosure. Variations of these preferred embodiments will become apparent to those skilled in the art upon reading the foregoing description. Those skilled in the art will be able to adapt such variations as appropriate, and the present disclosure may be practiced in ways other than as specifically described herein. Accordingly, this disclosure includes all modifications and equivalents of the subject matter recited in the claims appended hereto as permitted by applicable law. Moreover, unless otherwise indicated herein, any combination of the above-described elements in all possible variations thereof is encompassed by the present disclosure.
[0241] Example embodiments of the present disclosure can be described in light of the following provisions. Clause 1. A method is disclosed. The method may include an application in a cloud computing environment obtaining deployment data corresponding to a dedicated cloud via a plurality of user interfaces. In some embodiments, the dedicated cloud can be associated with a plurality of cloud infrastructure components that provide corresponding cloud services associated with a cloud service provider, the plurality of cloud infrastructure components being hosted by one or more computing devices located at a third-party location. In some embodiments, the third-party location can be associated with a third-party entity different from the cloud service provider. The method may include the application tracking the deployment data based at least in part on input provided via the plurality of user interfaces. The method may include the application transitioning a deployment state associated with deploying hardware for the dedicated cloud. The deployment state is transitioned from a first state to a second state based at least in part on the tracking. In some embodiments, the first state and the second state can each be one of a plurality of states of an order associated with the deployment of the dedicated cloud. The method may include the application presenting, in one or more user interfaces of the plurality of user interfaces, information indicating the transition of the deployment state from the first state to the second state.
[0242] Clause 2. The method of clause 1, further including the application validating the region data based, at least in part, on performing one or more validation operations on the region data provided via one or more user interfaces.
[0243] Clause 3. The method of clause 1 or clause 2, wherein at least one of the plurality of user interfaces is configured to obtain workload data identifying one or more workloads to be executed by the plurality of cloud infrastructure components of the dedicated cloud.
[0244] Clause 4. The method of clause 3, further including identifying one or more hardware components for the dedicated cloud based, at least in part, on the identified one or more workloads, wherein the one or more hardware components are identified from a plurality of available hardware components.
[0245] Clause 5. The method of clause 4, further including the application presenting one or more user interface elements that present hardware data specifying one or more hardware components.
[0246] Clause 6. The method of clause 5, further including the application tracking a plurality of deployment statuses corresponding to the deployments in each of the plurality of dedicated host regions. The method may further include the application generating one or more visual representations based, at least in part, on tracking the plurality of deployment statuses corresponding to the respective deployments. The method may further include presenting the one or more visual representations within at least one user interface of the plurality of user interfaces.
[0247] Clause 7. The method of clause 6, including an application transitioning a region state associated with provisioning hardware for the dedicated cloud. In some embodiments, the region state is transitioned from a third state to a fourth state based at least in part on the tracking. In some embodiments, the third state and the fourth state are individually one of a second plurality of states of a second predefined order associated with provisioning the regional cloud hardware. The method may further include the application presenting an indication in one or more user interfaces that the region state has transitioned from the third state to the fourth state.
[0248] Clause 8. A computing device is disclosed. The computing device may be part of a cloud computing environment. The computing device may include one or more processors and one or more memories storing computer-executable instructions that, when executed by the one or more processors of the computing device, cause the computing device to perform the method described in any of clauses 1 through 7.
[0249] Clause 9. A non-transitory computer-readable medium is disclosed. The non-transitory computer-readable medium may store computer-executable instructions that, when executed by a processor of a computing device, cause the computing device to perform the method described in any of clauses 1 to 7.
[0250] Clause 10. A computing system is disclosed, which may include one or more processors and one or more memories storing computer-executable instructions that, when executed by the one or more processors of a computing device, cause the computing device to perform the method described in any of clauses 1 to 7.
[0251] All references cited herein, including publications, patent applications, and patents, are incorporated by reference to the same extent as if each individual reference were individually and specifically indicated to be incorporated by reference and were set forth in its entirety herein.
[0252] While the foregoing specification has described aspects of the disclosure with reference to specific embodiments thereof, those skilled in the art will recognize that the disclosure is not limited thereto. Various features and aspects of the above-described disclosure can be used individually or jointly. Moreover, the embodiments can be utilized in any number of environments and applications beyond those described herein without departing from the broader spirit and scope of the specification. Accordingly, the specification and drawings should be regarded as illustrative rather than restrictive.
Claims
1. 1. A method comprising: An application in a cloud computing environment includes obtaining deployment data corresponding to the dedicated cloud via a plurality of user interfaces; The dedicated cloud is associated with a plurality of cloud infrastructure components that provide corresponding cloud services associated with a cloud service provider, the plurality of cloud infrastructure components being hosted by one or more computing devices located at a third party location, the third party location being associated with a third party entity different from the cloud service provider, and the method further comprises: the application tracking the deployment data based at least in part on inputs provided via the plurality of user interfaces; the application transitioning a deployment state associated with deploying hardware for the dedicated cloud; The deployment state is transitioned from a first state to a second state based at least in part on the tracking, the first state and the second state being one of a plurality of states of an order associated with a dedicated cloud deployment, and the method further comprises: The method includes the application presenting, in one or more user interfaces of the plurality of user interfaces, information indicating a transition of the deployment state from the first state to the second state.
2. 10. The method of claim 1, further comprising: the application validating the region data based, at least in part, on performing one or more validation operations on region data provided via the one or more user interfaces.
3. 3. The method of claim 1 or claim 2, wherein at least one of the plurality of user interfaces is configured to obtain workload data identifying one or more workloads to be executed by the plurality of cloud infrastructure components of the dedicated cloud.
4. 4. The method of claim 3, further comprising identifying one or more hardware components for the dedicated cloud based at least in part on the identified one or more workloads, wherein the one or more hardware components are identified from a plurality of available hardware components.
5. 5. The method of claim 4, further comprising the application presenting one or more user interface elements that present hardware data specifying the one or more hardware components.
6. the application tracking a plurality of deployment statuses corresponding to deployments in each of a plurality of dedicated host regions; generating, by the application, one or more visual representations based at least in part on tracking the plurality of deployment statuses corresponding to the respective deployments; The method of claim 5 , further comprising: presenting the one or more visual representations in at least one user interface of the plurality of user interfaces.
7. the application further comprising transitioning a region state associated with provisioning hardware for the dedicated cloud; The regional state is transitioned from a third state to a fourth state based at least in part on the tracking, the third state and the fourth state being one of a second plurality of states of a second predefined order associated with provisioning regional cloud hardware, and the method further includes:
7. The method of claim 6, further comprising the application presenting, in the one or more user interfaces, an indication that the region state has transitioned from the third state to the fourth state.
8. 1. A computing device in a cloud computing environment, comprising: one or more processors; one or more memories storing computer-executable instructions that, when executed by the one or more processors of the computing device, cause the computing device to: and causing the computing device to, via a plurality of user interfaces, retrieve deployment data corresponding to a dedicated cloud, the dedicated cloud being associated with a plurality of cloud infrastructure components that provide corresponding cloud services associated with a cloud service provider, the plurality of cloud infrastructure components being hosted by one or more computing devices located at third party locations, the third party locations being associated with a third party entity different from the cloud service provider; and the instructions further include: tracking the deployment data based at least in part on inputs provided via the plurality of user interfaces; transitioning a deployment state associated with deploying the dedicated cloud hardware, the deployment state being transitioned from a first state to a second state based at least in part on the tracking, the first state and the second state being individually one of a plurality of states of an order associated with the deployment of the dedicated cloud, the instructions further including: A computing device causing information indicating a transition of the deployment state from the first state to the second state to be presented in one or more user interfaces of the plurality of user interfaces.
9. 10. The computing device of claim 8, wherein executing the computer-executable instructions further causes the computing device to validate the region data based, at least in part, on performing one or more validation operations on region data provided via the one or more user interfaces.
10. 10. The computing device of claim 8 or claim 9, wherein at least one of the plurality of user interfaces is configured to obtain workload data identifying one or more workloads to be executed by the plurality of cloud infrastructure components of the dedicated cloud.
11. 11. The computing device of claim 10, wherein executing the computer-executable instructions further causes the computing device to identify one or more hardware components for the dedicated cloud based, at least in part, on the identified one or more workloads, the one or more hardware components being identified from a plurality of available hardware components.
12. 12. The computing device of claim 11, wherein executing the computer-executable instructions further causes the computing device to present one or more user interface elements presenting hardware data specifying the one or more hardware components.
13. Executing the computer-executable instructions further causes the computing device to: Track multiple deployment statuses corresponding to deployments in multiple dedicated host regions, generating one or more visual representations based at least in part on tracking the plurality of deployment statuses corresponding to the respective deployments; The computing device of claim 12 , wherein the computing device causes the one or more visual representations to be presented in at least one user interface of the plurality of user interfaces.
14. Executing the computer-executable instructions further causes the computing device to: transitioning a regional state associated with provisioning hardware for the dedicated cloud, the regional state being transitioned from a third state to a fourth state based at least in part on the tracking, the third state and the fourth state being individually one of a second plurality of states of a second predefined order associated with provisioning regional cloud hardware; The computing device of claim 13 , further comprising: causing the one or more user interfaces to present an indication that the region state has transitioned from the third state to the fourth state.
15. A non-transitory computer-readable medium storing computer-executable instructions that, when executed by a processor of a computing device, cause the computing device to: and causing the computing device to, via a plurality of user interfaces, retrieve deployment data corresponding to a dedicated cloud, the dedicated cloud being associated with a plurality of cloud infrastructure components that provide corresponding cloud services associated with a cloud service provider, the plurality of cloud infrastructure components being hosted by one or more computing devices located at third party locations, the third party locations being associated with a third party entity different from the cloud service provider; and the instructions further include: tracking the deployment data based at least in part on inputs provided via the plurality of user interfaces; transitioning a deployment state associated with deploying the dedicated cloud hardware, the deployment state being transitioned from a first state to a second state based at least in part on the tracking, the first state and the second state being individually one of a plurality of states of an order associated with the deployment of the dedicated cloud, the instructions further including: A non-transitory computer-readable medium that causes information indicating a transition of the deployment state from the first state to the second state to be presented in one or more user interfaces of the plurality of user interfaces.
16. 16. The non-transitory computer-readable medium of claim 15, wherein executing the computer-executable instructions further causes the computing device to validate the region data based, at least in part, on performing one or more validation operations on region data provided via the one or more user interfaces.
17. 17. The non-transitory computer-readable medium of claim 15 or claim 16, wherein at least one of the plurality of user interfaces is configured to obtain workload data identifying one or more workloads to be executed by the plurality of cloud infrastructure components of the dedicated cloud, and wherein executing the computer-executable instructions further causes the computing device to identify one or more hardware components for the dedicated cloud based, at least in part, on the identified one or more workloads, the one or more hardware components being identified from a plurality of available hardware components.
18. 20. The non-transitory computer-readable medium of claim 17, wherein executing the computer-executable instructions further causes the computing device to present one or more user interface elements that present hardware data specifying the one or more hardware components.
19. Executing the computer-executable instructions further causes the computing device to: Track multiple deployment statuses corresponding to deployments in multiple dedicated host regions, generating one or more visual representations based at least in part on tracking the plurality of deployment statuses corresponding to the respective deployments; 20. The non-transitory computer-readable medium of claim 18, causing the one or more visual representations to be presented within at least one user interface of the plurality of user interfaces.
20. Executing the computer-executable instructions further causes the computing device to: transitioning a regional state associated with provisioning hardware for the dedicated cloud, the regional state being transitioned from a third state to a fourth state based at least in part on the tracking, the third state and the fourth state being individually one of a second plurality of states of a second predefined order associated with provisioning regional cloud hardware; and executing the computer-executable instructions further causes the computing device to:
20. The non-transitory computer-readable medium of claim 19, causing the one or more user interfaces to present an indication that the region state has transitioned from the third state to the fourth state.