Search

US-12619438-B2 - Techniques for building a data center using a skills service

US12619438B2US 12619438 B2US12619438 B2US 12619438B2US-12619438-B2

Abstract

A cloud-computing service (e.g., a “Puffin Service”) is described. The service may maintain service and skill catalogs corresponding to various services to be deployed to a region (e.g., during a region build). The service may host numerous user interfaces with which various service and skill metadata may be provided. In some embodiments, such data may include one or more dependencies between skills. The data managed by the cloud-computing service may be utilized to build a dependency graph. Navigation of the dependency graph may be performed via one or more user interfaces hosted by the cloud-computing service. An orchestration service (e.g., a Multi-Flock Orchestrator) may manage bootstrapping efforts for any suitable number of services during a region build based at least in part on dependencies between skills.

Inventors

  • Eric Raymond Peterson
  • William Nickolas Moran
  • Kenneth Richard Fox
  • Benjamin Todd Willey
  • William Thomas Price

Assignees

  • ORACLE INTERNATIONAL CORPORATION

Dates

Publication Date
20260505
Application Date
20231031

Claims (20)

  1. 1 . A computer-implemented method, comprising: preparing, by a cloud-computing service, a user interface configured to receive respective skill metadata defining a plurality of skills corresponding to a plurality of services to be bootstrapped by an orchestrator while building a data center, the respective skill metadata being associated with a respective health state corresponding to a skill; maintaining, by the cloud-computing service, a first skill of the plurality of skills and a second skill of the plurality of skills, the first skill corresponding to first service functionality and the second skill corresponding to second service functionality, the first skill indicating a dependency on the second skill; tracking, by the cloud-computing service, progress by the orchestrator of bootstrapping the plurality of services based at least in part on 1) monitoring for publications of the first skill and the second skill and 2) determining the respective skill health state for each of the plurality of skills; generating, by the cloud-computing service, a dependency graph based at least in part on the plurality of skills corresponding to the plurality of services, the dependency graph indicating the dependency between the first skill and the second skill, the dependency graph representing a build dependency graph utilized by the orchestrator to bootstrap the plurality of services while building the data center; determining, by the cloud-computing service, a blockage to bootstrapping the plurality of services, the blockage being identified based at least in part on the tracking and the dependency graph generated by the cloud-computing service; and providing, by the cloud-computing service at the user interface, an indication of the blockage based at least in part on presenting, at the user interface, at least a portion of the dependency graph and one or more health states of one or more skills that correspond to the portion of the dependency graph, the user interface providing navigation options associated with navigating within the dependency graph.
  2. 2 . The computer-implemented method of claim 1 , wherein each skill of the plurality of skills is associated with a lifecycle state selected from a plurality of lifecycle states, and wherein the computer-implemented method further comprises monitoring the respective health state corresponding to the skill based at least in part on determining that the skill is associated with a particular lifecycle state.
  3. 3 . The computer-implemented method of claim 1 , further comprising validating, by the cloud-computing service, the build dependency graph generated by the orchestrator based at least in part on the dependency graph generated by the cloud-computing service.
  4. 4 . The computer-implemented method of claim 1 , wherein the cloud-computing service manages a service catalog that is presentable at one or more user interfaces hosted by the cloud-computing service.
  5. 5 . The computer-implemented method of claim 1 , wherein the cloud-computing service manages a skills catalog that is presentable at one or more user interfaces hosted by the cloud-computing service.
  6. 6 . The computer-implemented method of claim 1 , further comprising: identifying that the blockage related to the first skill; identifying based at least in part on reverse traversing the dependency graph, that the second skill is a probable contributor to the blockage; and presenting, by the cloud-computing service at the user interface, an additional indication indicating that the second skill is the probable contributor to the blockage.
  7. 7 . The computer-implemented method of claim 1 , further comprising: monitoring, by the cloud-computing service, for one or more indications that a particular health state corresponding to an individual skill of the plurality of skills has changed; and updating, by the cloud-computing service, one or more attributes associated with the individual skill to reflect a change in the particular health state, wherein the orchestrator initiates, based at least in part on changes in the particular health state corresponding to the individual skill, bootstrapping operations associated with bootstrapping the plurality of services while building the data center.
  8. 8 . The computer-implemented method of claim 1 , further comprising: maintaining a mapping between a particular skill of the plurality of skills and one or more corresponding capabilities; and publishing the particular skill in response to determining that the one or more corresponding capabilities have been published, wherein maintaining the mapping and publishing the skill in response to determining that the one or more corresponding capabilities have been published enables the progress of the building of the data center to be determinable based on one or both of the plurality of skills and a plurality of capabilities.
  9. 9 . A cloud-computing service, comprising: one or more processors; and one or more memories storing computer-executable instructions that, when executed by the one or more processors, cause the one or more processors to: prepare a user interface configured to receive respective skill metadata defining a plurality of skills corresponding to a plurality of services to be bootstrapped by an orchestrator while building a data center, the respective skill metadata being associated with a respective health state corresponding to a skill; maintain a first skill of the plurality of skills and a second skill of the plurality of skills, the first skill corresponding to a first service functionality and the second skill corresponding to a second service functionality, the first skill indicating a dependency on the second skill; track progress by the orchestrator of bootstrapping the plurality of services based at least in part on 1) monitoring for publications of the first skill and the second skill and 2) determining the respective skill health state for each of the plurality of skills; generate a dependency graph based at least in part on the plurality of skills corresponding to the plurality of services, the dependency graph indicating the dependency between the first skill and the second skill, the dependency graph representing a build dependency graph utilized by the orchestrator to bootstrap the plurality of services while building the data center; determine a blockage to bootstrapping the plurality of services based at least in part on the tracking and the dependency graph generated by the cloud-computing service; and provide, at the user interface, an indication of the blockage based at least in part on presenting, at the user interface, at least a portion of the dependency graph and one or more health states of one or more skills that correspond to the portion of the dependency graph, the user interface providing navigation options associated with navigating within the dependency graph.
  10. 10 . The cloud-computing service of claim 9 , wherein each skill of the plurality of skills is associated with a lifecycle state selected from a plurality of lifecycle states, and wherein executing the computer-executable instructions further causes the one or more processors to monitor the respective health state corresponding to the skill based at least in part on determining that the skill is associated with a particular lifecycle state.
  11. 11 . The cloud-computing service of claim 9 , wherein executing the computer-executable instructions further causes the one or more processors to validate a second build dependency graph generated by the orchestrator based at least in part on the dependency graph generated by the cloud-computing service.
  12. 12 . The cloud-computing service of claim 9 , wherein executing the computer-executable instructions further causes the one or more processors to manage a service catalog that is presentable at one or more user interfaces hosted by the cloud-computing service.
  13. 13 . The cloud-computing service of claim 9 , wherein executing the computer-executable instructions further causes the one or more processors to manage a skills catalog that is presentable at one or more user interfaces hosted by the cloud-computing service.
  14. 14 . The cloud-computing service of claim 9 , wherein executing the computer-executable instructions further causes the one or more processors to: identify that the blockage relates to the first skill; identify, based at least in part on reverse traversing the dependency graph, that the second skill is a probable contributor to the blockage; and present, at the user interface, an additional indication indicating that the second skill is the probable contributor to the blockage.
  15. 15 . The cloud-computing service of claim 9 , wherein executing the computer-executable instructions further causes one or more processors to: monitor for one or more indications that a particular health state corresponding to an individual skill of the plurality of skills has changed; and update one or more attributes associated with the individual skill to reflect a change in the particular health state, wherein the orchestrator initiates, based at least in part on changes in the particular health state corresponding to the individual skill, bootstrapping operations associated with bootstrapping the plurality of services while building the data center.
  16. 16 . A non-transitory computer-readable medium storing computer-executable instructions that, when executed by one or more processors cause the one or more processors to: prepare a user interface configured to receive respective skill metadata defining a plurality of skills corresponding to a plurality of services to be bootstrapped by an orchestrator while building a data center, the respective skill metadata being associated with a respective health state corresponding to a skill; maintain a first skill of the plurality of skills and a second skill of the plurality of skills, the first skill corresponding to a first service functionality and the second skill corresponding to a second service functionality, the first skill indicating a dependency on the second skill; track progress by the orchestrator of bootstrapping the plurality of services based at least in part on 1) monitoring for publications of the first skill and the second skill and 2) determining the respective skill health state for each of the plurality of skills; generate a dependency graph based at least in part on the plurality of skills corresponding to the plurality of services, the dependency graph indicating the dependency between the first skill and the second skill, the dependency graph representing a build dependency graph utilized by the orchestrator to bootstrap the plurality of services while building the data center; determine a blockage to bootstrapping the plurality of services based at least in part on the tracking and the dependency graph; and provide, at the user interface, an indication of the blockage based at least in part on presenting, at the user interface, at least a portion of the dependency graph and one or more health states of one or more skills that correspond to the portion of the dependency graph, the user interface providing navigation options associated with navigating within the dependency graph.
  17. 17 . The non-transitory computer-readable medium of claim 16 , wherein each skill of the plurality of skills is associated with a lifecycle state selected from a plurality of lifecycle states, and wherein executing the computer-executable instructions further causes the one or more processors to monitor the respective health state corresponding to the skill based at least in part on determining that the skill is associated with a particular lifecycle state.
  18. 18 . The non-transitory computer-readable medium of claim 16 , wherein executing the computer-executable instructions further causes the one or more processors to validate a second build dependency graph generated by the orchestrator based at least in part on the dependency graph.
  19. 19 . The non-transitory computer-readable medium of claim 16 , wherein executing the computer-executable instructions further causes the one or more processors to manage a skills catalog that is presentable at one or more user interfaces.
  20. 20 . The non-transitory computer-readable medium of claim 16 , wherein executing the computer-executable instructions further causes the one or more processors to: identify that the blockage relates to the first skill; identify, based at least in part on reverse traversing the dependency graph, that the second skill is a probable contributor to the blockage; and present, at the user interface, an additional indication indicating that the second skill is the probable contributor to the blockage.

Description

CROSS-REFERENCE TO RELATED APPLICATIONS This non-provisional application claims priority to U.S. Provisional Patent Application No. 63/503,143, filed on May 18, 2023, entitled “Techniques for Validating and Tracking Region Build Skills,” the disclosure of which is herein incorporated by reference in its entirety for all purposes. BACKGROUND Today, cloud infrastructure services utilize many individual services to build a data center (e.g., to bootstrap various resources in a data center of a particular geographic region). In some examples, a region is a logical abstraction corresponding to a localized geographical area in which one or more data centers are (or are to be) located. Building a data center may include provisioning and configuring infrastructure resources and deploying code to those resources (e.g., for a variety of services). The operations for building a data center may be collectively referred to as performing a “region build.” Any suitable number of data centers may be included in a region and therefore a region build may include operations for building multiple data centers. Bootstrapping operations for one service may depend on other functionality and/or services of the region which may not yet be available. As the number of service teams and regions grows, the tasks performed for orchestrating provisioning and deployment drastically increase. Conventional tools for building a region require significant manual effort or automated techniques present drawbacks with respect to overhead, accuracy, and ease of use. Improvements can be made. BRIEF SUMMARY Embodiments of the present disclosure relate to techniques for performing an automated region build (e.g., bootstrapping (e.g., provisioning and/or deploying) resources (e.g., infrastructure component, artifacts, etc.) for any suitable number of services within a region (e.g., a geographical location associated with one or more data centers)). At least one embodiment is directed to a computer-implemented method. The method may include preparing, by a cloud-computing service (e.g., a cloud-computing service of a cloud computing environment), a user interface configured to receive respective skill metadata defining a plurality of skills corresponding to a plurality of services to be bootstrapped during a region build corresponding to building a data center. The method may further include maintaining (e.g., by the cloud-computing service), a first skill of the plurality of skills and a second skill of the plurality of skills. In some embodiments, the first skill corresponds to first service functionality and the second skill corresponds to a second service functionality. The first skill may indicate a dependency on the second skill. The method may further include generating, by the cloud-computing service, a dependency graph based at least in part on the plurality of skills corresponding to the plurality of services. In some embodiments, the dependency graph indicates the dependency between the first skill and the second skill. The method may further include providing, by the cloud-computing service to a user device, at least a portion of the dependency graph for presentation at the user interface. In some embodiments, the user interface provides navigation options associated with navigating within the dependency graph. In some embodiments, the dependency graph represents a build dependency graph utilized by an orchestrator to bootstrap the plurality of services while building the data center. In some embodiments, each skill of the plurality of skills is associated with a lifecycle state selected from a plurality of lifecycle states. In some embodiments, at least one lifecycle state is associated with one or more lifecycle substates and each lifecycle substate indicates a health status corresponding to the skill. In some embodiments, the computer-implemented method may further include validating, by the cloud-computing service, a build dependency graph generated by the orchestrator based at least in part on the dependency graph generated by the cloud-computing service. In some embodiments, the cloud-computing service manages a service catalog that is presentable at one or more user interfaces hosted by the cloud-computing service. In some embodiments, the cloud-computing service manages a skills catalog that is presentable at one or more user interfaces hosted by the cloud-computing service. In some embodiments, the computer-implemented method further includes identifying, by the cloud-computing service, a blockage while building the data center. The method may further include identifying, based at least in part on the dependency graph, that the second skill is a probable contributor to the blockage. The method may further include presenting an indication that the second skill is the probable contributor to the blockage. In some embodiments, the computer-implemented method further includes monitoring for one or more indications that a status corres