Low latency mechanism for cloud-to-computing system hybrid clouds

Through the network hook mechanism, the update of local resource pools and service request redirection is achieved in the hybrid cloud, which solves the problem of low resource sharing and request processing efficiency in the hybrid cloud environment, and improves resource utilization efficiency and waiting time.

CN119301563APending Publication Date: 2025-01-10INTEL CORP
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202280096638.2
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2022-06-23
Publication Date
2025-01-10

AI Technical Summary

Technical Problem

The existing Kubernetes approach is difficult to achieve seamless sharing of cross-client resources and service request redirection in hybrid cloud environments, resulting in low resource utilization and long wait time.

Method used

The network hook mechanism is used to update computing resources in the local resource pool, and redirect service requests to the available resource providers through the network hook, avoiding the use of additional cloud services and achieving data plane acceleration in the on-premises hybrid cloud.

Benefits of technology

It improves the update speed of the local resource pool and the efficiency of service request processing, reduces data conversion from the local hybrid cloud to the remote cloud, reduces waiting time, and improves resource utilization efficiency.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119301563A_ABST
    Figure CN119301563A_ABST
Patent Text Reader

Abstract

The present disclosure includes receiving one or more updates to a global resource pool of the hybrid cloud and updating a local resource pool with the one or more updates to the global resource pool; intercepting a service request from an application; redirecting the deployment of the service request to a resource provider of the hybrid cloud having available computing resources satisfying the service request based at least in part on the local resource pool and by using a network hook; receiving an internet protocol (IP) address of the resource provider; redirecting a domain name service (DNS) of the application to an IP address of the resource provider; and sending a service request to the resource provider.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] A portion of the disclosure of this patent document contains material that is copyrighted. The copyright owner has no objection to the facsimile reproduction by anyone of the patent document or the patent disclosure, as it appears in the Patent and Trademark Office patent file or records, but otherwise reserves all other copyright rights. Technical Field

[0002] The present disclosure relates generally to hybrid cloud computing systems, and more particularly to low-latency mechanisms for coupling a computing system to one or more resource providers in a hybrid cloud. Background Art

[0003] In some cloud computing environments, client computing systems can be used as an extension of the cloud to enhance cloud native services to provide the best experience by leveraging the power of the cloud and the experience of the client. This allows cloud native Docker / OCI containers (such as Docker containers or Open Container Initiative (OCI) containers) to be deployed on the client after discovering the client's capabilities and orchestrating the container deployment. The orchestration framework facilitates the deployment of these containers and the routing of traffic from the client's web front end to the local container.

[0004] Some clients have powerful computing capabilities, but some clients have limited resources. Each client is generally becoming more powerful, but one client is still not suitable for all computing tasks (for example, some have additional graphics processing units (GPUs), some have additional storage devices, etc.). These two types of clients can be aggregated into a hybrid cloud. A hybrid cloud is a computing environment that combines an on-premises data center (also known as a private cloud) with a public cloud to allow data and applications to be shared between them. There is a need to improve the orchestration of container-based clouds relative to computing systems. There may be shareable client resources in a hybrid cloud (for example, home / lab computing resources), but client users need a seamless and low-latency method to access services provided by shared resources across multiple clients. BRIEF DESCRIPTION OF THE DRAWINGS

[0005] Figure 1 A hybrid cloud computing arrangement is illustrated in accordance with some embodiments.

[0006] Figure 2 is a flow diagram of hybrid cloud service request processing according to some embodiments.

[0007] Figure 3 is constructed to execute and / or instantiate Figure 2 Machine-readable instructions and / or operations to implement reference Figure 1Block diagram of an example processor platform for the apparatus discussed.

[0008] Figure 4 yes Figure 3 A block diagram of an example implementation of a processor circuit system.

[0009] Figure 5 yes Figure 3 A block diagram of another example implementation of a processor circuit system.

[0010] Figure 6 is a diagram used to convert Figure 2 Block diagram of an example software distribution platform for distributing software such as example machine readable instructions to hardware devices owned and / or operated by a third party.

[0011] The drawings are not drawn to scale.In general, the same reference numbers will be used to refer to the same or like parts throughout the drawings(s) and the accompanying written description. DETAILED DESCRIPTION

[0012] The technology described herein provides a method and system for redirecting service requests for computing resources to resource providers in a hybrid cloud based on a local resource pool. In an implementation, a low latency callback mechanism for improving the performance and security of updating the local resource pool and redirecting service requests is a webhook. By using a webhook, the control plane is accelerated by updating the local resource pool when new computing resources are available, and because service requests can be handled in the local hybrid cloud without using additional cloud services in the case of an increase in computing resources, the data plane is accelerated and data conversion from the local hybrid cloud to the remote cloud is saved.

[0013] In the following specific embodiments, reference is made to the accompanying drawings that form a part of this specification, and specific examples that can be implemented are shown by diagrams. These examples are described in sufficient detail to enable those skilled in the art to implement the subject matter, and it should be understood that other examples can be utilized, and logical, mechanical, electrical and / or other changes can be made without departing from the scope of the subject matter of the present disclosure. Therefore, the following specific embodiments are provided to describe example implementations, and should not be considered as limiting the scope of the subject matter described in the present disclosure. Certain features from the different aspects described below can be combined to form new aspects of the subject matter discussed below.

[0014] As used herein, unless otherwise indicated, connection references (e.g., attached, coupled, connected, and joined) may include intermediate members between elements referenced by the connection reference and / or relative movement between those elements. Thus, connection references do not necessarily imply that two elements are directly connected and / or are in a fixed relationship to each other. As used herein, stating that any component is "in contact" with another component is defined to mean that there are no intermediate components between the two components.

[0015] Unless otherwise specifically stated, descriptors such as "first", "second", "third", etc. are used herein without imposing or otherwise indicating any meaning of priority, physical order, arrangement in a list, and / or ordering in any manner, but are used only as labels and / or arbitrary names to distinguish elements for ease of understanding the disclosed examples. In some examples, the descriptor "first" may be used to refer to an element in a specific embodiment, while a different descriptor such as "second" or "third" may be used in the claims to refer to the same element. In such instances, it should be understood that such descriptors are only used to clearly identify elements that may, for example, otherwise share the same name. As used herein, "approximately" and "approximately" refer to dimensions that may not be exact due to manufacturing tolerances and / or other real-world imperfections.

[0016] As used herein, "processor circuitry" is defined as including (i) one or more dedicated circuits that are configured to perform (one or more) specific operations and include one or more semiconductor-based logic devices (e.g., electrical hardware implemented by one or more transistors), and / or (ii) one or more semiconductor-based general-purpose circuits that are programmed with instructions to perform specific operations and include one or more semiconductor-based logic devices (e.g., electrical hardware implemented by one or more transistors). Examples of processor circuitry include programmed microprocessors, field programmable gate arrays (FPGAs) that can instantiate instructions, central processor units (CPUs), graphics processor units (GPUs), digital signal processors (DSPs), XPUs or microcontrollers, and integrated circuits such as application-specific integrated circuits (ASICs). For example, the XPU may be implemented by a heterogeneous computing system that includes multiple types of processor circuit systems (e.g., one or more FPGAs, one or more CPUs, one or more GPUs, one or more DSPs, etc., and / or a combination thereof) and (one or more) application programming interfaces (APIs) that may dispatch (one or more) computing tasks to whichever (or which) of the multiple types of processing circuit systems is most suitable for performing the (one or more) computing tasks.

[0017] As used herein, a computing system may be, for example, a server, a disaggregated server, a personal computer, a workstation, a self-learning machine (e.g., a neural network), a mobile device (e.g., a cellular phone, a smart phone, a tablet (such as an iPad), or a computer program product. TM)), personal digital assistant (PDA), Internet appliance, digital video disk (DVD) player, compact disk (CD) player, digital video recorder, Blu-ray player, game console, personal video recorder, set-top box, head-mounted device (e.g., augmented reality (AR) head-mounted device, virtual reality (VR) head-mounted device, etc.) or other wearable device, or any other type of computing device.

[0018] Figure 1 1 illustrates a hybrid cloud 100 computing arrangement according to some embodiments. Computing system 1 102 includes one or more user applications 116, a client framework 118-1, and a local resource pool 120. For clarity, the Figure 1Other conventional components of the computing system 1 102 are omitted. At the hardware level, the computing system 1 102 includes one or more components. In an embodiment, each component includes one or more of the following: a system on a chip (SoC) forming an intellectual property (IP) block, a central processing unit (CPU), a graphics processing unit (GPU), an XPU, a field programmable gate array (FPGA), a digital signal processor (DSP), an application specific integrated circuit (ASIC), an interconnect, a wireless modem, an accelerator, an integrated graphics circuit system, on-die memory, a memory, a storage device, a controller, other circuit systems, or other circuit systems. As part of any domain-specific workload, the user application 116 can access computing resources available from the cloud to the computing system manager 104 through the network 106. In a cloud computing environment, the user application 116 accesses computing resources provided by the cloud service provider (CSP) via the cloud to the computing system manager 104 as needed to perform user application processing. The client framework 118-1 allows nodes within the cluster to access each other and provides domain name server (DNS) services and Internet Protocol (IP) tables to route data traffic. The local resource pool 120 aggregates resources available through a software defined network (SDN) comprising a hybrid cloud.

[0019] The cloud-to-computing system manager 104 is a management node internal to the hybrid cloud 100 that sets up a communication network within the hybrid cloud. In one implementation, the cloud-to-computing system manager 104 runs on a server in a data center. In one implementation, the cloud-to-computing system manager 104 includes Kubernetes 111, which is a portable, extensible, open source platform for managing centralized workloads and services that facilitates both declarative configuration and automation.

[0020] The workload orchestrator 112 of the cloud-to-computing system manager 104 automatically orchestrates workload containers in a local client (such as a computing system 1102). In some scenarios, simplified containerized applications can be supplied inside the computing system 1102. This allows the client (e.g., computing system 1102) to participate in the orchestration. This is called single-node orchestration. However, the goal is to enable hybrid cloud capabilities in home and / or laboratory computing environments to utilize available resources from other clients. In order to cover hybrid cloud and client computing, a better cloud / client orchestration method is desired. Resource sharing and service request redirection are useful for the execution of orchestration. The cloud-to-computing system manager 104 cannot use a typical CSP method to perform orchestration (e.g., installing kubelet in a new node and registering these nodes to a centralized Kubernetes application programming interface (application programinterface, API) server), because all nodes are required to be fully controlled by Kubernetes, which is undesirable for many client computing systems.

[0021] Since a typical client computing system may voluntarily share computing resources but does not want to be fully monitored by Kubernetes, kubelet cannot be installed on the client, so an improved method is needed. The existing Kubernetes method can only be used for a single cluster, but it is desirable to support a virtual resource pool (similar to a hybrid cloud in the cloud field). A client can voluntarily join a resource pool and automatically support orchestration. Subsequently, each node (e.g., a client computing system) is treated as a single cluster with a simplified Kubernetes installation (e.g., k3s).

[0022] The cloud-to-computing system manager 104 includes a global resource pool 114 for keeping track of available computing resources 1 122 ... computing resources N 124 for the entire hybrid cloud. For example, multiple resource providers (such as resource provider 1 108 ... resource provider N 110) include multiple computing resources (such as computing resources 1 122 ... computing resources N 124), where N is a natural number. In an implementation, resource provider 1 108 ... resource provider N 110 is accessible by computing system 1 102 through network 106. In an implementation, network 106 is the Internet. In other implementations, network 106 can be an intranet or other communication system. Computing resources include any computing capabilities and components for providing such capabilities (e.g., CPU, GPU, XPU, ASIC, FPGA, memory, storage device, etc.). Each resource provider includes a copy of a client framework (such as client framework 118-2 ... client framework 118-N) to allow computing system 1 102 to communicate with the resource provider. In an implementation, resource provider 1 108 ... resource provider N 110 and computing system 1 102 are located in the same local computing environment, such as a home, business, or laboratory.

[0023] The cloud-to-computing system manager 104 updates the global resource pool 114 as needed. For example, if certain computing resources are being used (and thus unavailable), these computing resources can be taken out of the global resource pool. Similarly, when computing resources become available again or new computing resources are added to the hybrid cloud, the global resource pool 114 is updated accordingly. Whenever the global resource pool 114 is updated, local copies of this information (such as the local resource pool 120) are also updated through the application pool synchronization process. In this way, clients such as computing system 1 102 always maintain an up-to-date understanding of the computing resources 1 122 ... computing resources N 124 currently available in the hybrid cloud.

[0024] Figure 21 is a flow chart of hybrid cloud service request processing according to some embodiments. In an implementation, the resource pool of the hybrid cloud is maintained locally at computing system 1 102, a network hook mechanism is used to efficiently update the local resource pool 120 in computing system 1 102 when the global resource pool 114 is updated, and the network hook mechanism is used to receive a service request for a computing resource provided by a selected one of the resource providers and redirect the service request to the selected resource provider. At box 202, when the hybrid cloud 100 is initiated, the client framework 118-1 of computing system 1 102 establishes a secure connection with the workload orchestrator 112 of the cloud-to-computing system manager 104. In an implementation, the cloud-to-computing system manager 104 distributes root certificate authorities (CAs) and generates client CAs for all members of the hybrid cloud (such as computing system 1 102 and resource providers 1 108 ... N 110). This allows hybrid cloud members to trust each other. When a hybrid cloud is initiated or when a client's computing resources change, each client (computing system 1 102 and resource provider) registers with the cloud-to-computing system manager 104 and the global resource pool 114 .

[0025] At block 204, the client framework 118-1 registers to use a webhook to receive updates to the global resource pool 114. As used herein, a webhook is an event notification scheme that uses a hyper-text transport protocol (HTTP) callback that includes an HTTP POST that occurs when an event occurs.

[0026] Generally speaking, a web hook is an event that triggers an action. In some scenarios, a web hook is used for automatic communication between systems. In some web programming, a web hook is a method of enhancing or changing the behavior of a web page or web application using a custom callback. These callbacks can be maintained, modified, and managed by third-party users and developers who may not have to have a relationship with the starting website or application. In one example, the web hook is in JavaScript object notation (JSON) format, and the request is processed as an HTTP POST request. The web hook is triggered by an update to the global resource pool 114. When such an event occurs, the cloud to the computing system manager 104 makes an HTTP request to a uniform resource locator (URL) configured for the web hook (in this case, the user application 116). Since the web hook uses HTTP, they can be integrated into web services (such as those provided by the user application 116) without adding any new infrastructure.

[0027] In an implementation, blocks 202 and 204 are performed as part of the initialization of the hybrid cloud. At block 206, when the global resource pool 114 is updated due to one or more changes to computing resources on the resource providers of the hybrid cloud, these updates are transmitted to the client framework 118-1 in the computing system 1 102 using a webhook to update the local resource pool 120. This allows the computing system 1 102 to efficiently and continuously keep up with any changes to computing resources in the hybrid cloud. Block 206 can be performed at any time when an update is required.

[0028] In one implementation, the resource provider sends a request to provide updates to resources available to the resource provider using a register application programming interface (API) provided by the cloud-to-computing system manager 104. The cloud-to-computing system manager uses a webhook to call a pool update callback API provided by the client framework 118-1 to report the pool update.

[0029] Since the user application 116 is running on the computing system 1102, the user application 116 may make one or more service requests to access information external to the computing system 1102 or to perform tasks external to the computing system 1102. At block 208, the client framework 118-1 intercepts these service requests from the user application 116. In one implementation, this is referred to as domain name server (DNS) interception. At block 210, the client framework 118-1 redirects the deployment of the service request intercepted at block 208 to a selected resource provider having available resources to satisfy the service request based on a local resource pool (i.e., based at least in part on a local resource pool) using a webhook, rather than allowing the service request to be handled by the cloud to computing system manager 104. In one implementation, such redirection may be accomplished using a service deployment API provided by a resource provider.

[0030] As part of the redeployment, at block 212, the client framework 118-1 receives the IP address of the selected resource provider. At block 214, the client framework 118-1 redirects the DNS of the user application to the IP address of the selected resource provider. At block 216, the client framework 118-1 sends the requested service to the selected service provider. The selected service provider then executes the service request using available computing resources provided by the selected service provider.

[0031] While Kubernetes is used in one implementation, other tools may be written to redirect service requests and perform workload orchestration in other implementations.

[0032] Table 1 illustrates example pseudo code for running in the client framework 118 - 1 of computing system 1 102 in one implementation for providing a webhook path for receiving events from computing system 1 or the cloud to computing system 104 . Table 1

[0033] Although Figure 1-Figure 2 An example method of implementing the techniques described herein is illustrated in Figure 1-Figure 2One or more of the elements, processes and / or devices illustrated in the examples may be combined, split, rearranged, omitted, eliminated and / or implemented in any other manner. In addition, the example processor circuit system may be implemented by hardware, software, firmware, and / or any combination of hardware, software and / or firmware. Thus, for example, any of the example processor circuit system, the example memory circuit system, and the example communication interface circuit system may be implemented by the following: processor circuit system, (one or more) analog circuits, (one or more) digital circuits, (one or more) logic circuits, (one or more) programmable processors, (one or more) programmable microcontrollers, (one or more) GPUs, (one or more) DSPs, (one or more) ASICs, (one or more) programmable logic devices (PLD), and / or (one or more) field programmable logic devices (FPLD) such as FPGAs. When reading any of the apparatus or system claims of this patent covering pure software and / or firmware implementations, at least one of the example processor circuit system, the example memory circuit system, and / or the example communication interface circuit system is thereby expressly defined as including a non-transitory computer-readable storage device or storage disk (such as a memory, DVD, CD, Blu-ray disc, etc.) containing the software and / or firmware. Further, Figure 1 Example circuit systems may include in addition to or instead of Figure 1 The invention may include one or more of those elements, processes and / or devices illustrated in the figure, and / or may include more than one of any or all of the elements, processes and devices illustrated in the figure.

[0034] exist Figure 2 The diagram shows a method for implementing Figure 1 102 of the computing system 102, machine readable instructions, hardware implemented state machines, and / or any combination thereof. The machine readable instructions may be one or more executable programs or (one or more) portions of executable programs for execution by a processor circuit system, such as described below in conjunction with Figure 3 The processor circuitry 712 shown in the example processor platform 700 discussed below and / or in conjunction with Figure 4 and / or Figure 5The example processor circuit system discussed. The program may be embodied in software stored on one or more non-transitory computer-readable storage media (such as CDs, floppy disks, hard disk drives (HDD), DVDs, Blu-ray discs, volatile memory (e.g., any type of random access memory (Random Access Memory, RAM), etc.) or non-volatile memory (e.g., flash memory, HDD, etc.)) associated with the processor circuit system located in one or more hardware devices, but the complete program and / or parts thereof may alternatively be executed by one or more hardware devices other than the processor circuit system, and / or be embodied in firmware or dedicated hardware. Machine-readable instructions may be distributed across multiple hardware devices and / or executed by two or more hardware devices (e.g., a server and a client hardware device). For example, a client hardware device may be implemented by an endpoint client hardware device (e.g., a hardware device associated with a user) or an intermediate client hardware device (e.g., a radio access network (RAN) gateway that facilitates communication between a server and an endpoint client hardware device). Similarly, a non-transitory computer-readable storage medium may include one or more media located in one or more hardware devices. Furthermore, although the sample program is a reference Figure 2 1. The example computing system 102 is described with reference to the flowchart illustrated in FIG. 1, but many other methods of implementing the example computing system 102 may alternatively be used. For example, the order of execution of the blocks may be changed, and / or some of the blocks described may be changed, eliminated, or combined.

[0035] Additionally or alternatively, any or all of the boxes in the box may be implemented by one or more hardware circuits (e.g., processor circuitry, discrete and / or integrated analog and / or digital circuitry, FPGA, ASIC, comparator, operational amplifier (op-amp), logic circuit, etc.) configured to perform corresponding operations without executing software or firmware. The processor circuitry may be distributed at different network locations and / or local to one or more hardware devices (e.g., a single-core processor (e.g., a single-core CPU), a multi-core processor in a single machine (e.g., a multi-core CPU, etc.), a plurality of processors distributed across a plurality of servers in a server rack, a plurality of processors distributed across one or more server racks, a CPU and / or FPGA in the same package (e.g., in the same integrated circuit (IC) package or in two or more separate housings, etc.).

[0036] The machine-readable instructions described herein may be stored in one or more of the following: compressed format, encrypted format, segmented format, compiled format, executable format, encapsulated format, etc. The machine-readable instructions as described herein may be stored as data or data structures (e.g., stored as portions of instructions, codes, code representations, etc.) that can be used to create, manufacture, and / or generate machine-executable instructions. For example, the machine-readable instructions may be segmented and stored on one or more storage devices and / or computing devices (e.g., servers) located in the same or different locations in a network or a collection of networks (e.g., in the cloud, in edge devices, etc.). The machine-readable instructions may require one or more of installation, modification, adaptation, updating, combination, supplementation, configuration, decryption, decompression, unpacking, distribution, redistribution, compilation, etc., so that they are directly readable, interpretable, and / or executable by a computing device and / or other machine. For example, machine-readable instructions may be stored in multiple portions that are individually compressed, encrypted, and / or stored on separate computing devices, where the portions, when decrypted, decompressed, and / or combined, form a set of machine-executable instructions that implement one or more operations that may together form a program such as the program described herein.

[0037] In another example, the machine-readable instructions may be stored in a state in which they are readable by the processor circuitry, but require the addition of a library (e.g., a dynamic link library (DLL)), a software development kit (SDK), an application programming interface (API), etc., in order to execute the machine-readable instructions on a particular computing device or other device. In another example, the machine-readable instructions may need to be configured (e.g., stored settings, entered data, recorded network addresses, etc.) before the machine-readable instructions and / or corresponding program(s) can be executed in whole or in part. Thus, as used herein, a machine-readable medium may include machine-readable instructions and / or program(s) regardless of the particular format or state of the machine-readable instructions and / or program(s) when stored or otherwise at rest or in transit.

[0038] The machine-readable instructions described herein may be represented by any past, present, or future instruction language, scripting language, programming language, etc. For example, the machine-readable instructions may be represented by any of the following languages: C, C++, Java, C#, Perl, Python, JavaScript, HyperText Markup Language (HTML), Structured Query Language (SQL), Swift, etc.

[0039] As mentioned above, the present invention may be implemented using executable instructions (e.g., computer and / or machine readable instructions) stored on one or more non-transitory computer and / or machine readable media. Figure 2 In some embodiments, the non-transitory computer and / or machine readable medium such as an optical storage device, a magnetic storage device, an HDD, a flash memory, a read-only memory (ROM), a CD, a DVD, a cache, any type of RAM, a register, and / or any other storage device or storage disk in which information is stored for any length of time (e.g., for an extended period of time, permanently, for a brief instance, for temporary buffering, and / or for caching of information). As used herein, the terms non-transitory computer readable medium and non-transitory computer readable storage medium are expressly defined to include any type of computer readable storage device and / or storage disk, and are defined to exclude propagating signals and to exclude transmission media.

[0040] "Include" and "comprising" (and all forms and tenses thereof) are used herein as open-ended terms. Thus, whenever a claim uses any form of "include" or "comprising" (e.g., includes, comprises, includes, contains, has, etc.) as a preamble or in any type of claim recitation, it should be understood that additional elements, items, etc. may be present without falling outside the scope of the corresponding claim or recitation. As used herein, when the phrase "at least" is used as a transitional term, such as in the preamble of a claim, it is open-ended in the same manner as the terms "include" and "comprising" are open-ended. The term "and / or" when used, for example, in a form such as A, B, and / or C, refers to any combination or subset of A, B, C, such as (1) A alone, (2) B alone, (3) C alone, (4) A and B, (5) A and C, (6) B and C, or (7) A and B and C. As used herein in the context of describing structures, components, items, objects, and / or things, the phrase “at least one of A and B” is intended to refer to implementations that include any of the following: (1) at least one A, (2) at least one B, or (3) at least one A and at least one B. Similarly, as used herein in the context of describing structures, components, items, objects, and / or things, the phrase “at least one of A or B” is intended to refer to implementations that include any of the following: (1) at least one A, (2) at least one B, or (3) at least one A and at least one B. As used herein in the context of describing the performance or execution of processes, instructions, actions, activities, and / or steps, the phrase “at least one of A and B” is intended to refer to implementations that include any of the following: (1) at least one A, (2) at least one B, or (3) at least one A and at least one B. Similarly, as used herein in the context of describing the implementation or execution of a process, instruction, action, activity, and / or step, the phrase "at least one of A or B" is intended to refer to an implementation that includes any of the following: (1) at least one A, (2) at least one B, or (3) at least one A and at least one B.

[0041] As used herein, singular references (e.g., "a," "an," "first," "second," etc.) do not exclude plural references. As used herein, the term "a" or "an" object refers to one or more of that object. The terms "a" or "an," "one or more," and "at least one" are used interchangeably herein. Furthermore, although listed separately, multiple devices, elements, or method actions may be implemented by, for example, the same entity or object. Additionally, although individual features may be included in different examples or claims, these features may potentially be combined, and the inclusion in different examples or claims does not imply that a combination of features is not feasible and / or not advantageous.

[0042] Figure 3 is constructed to execute and / or instantiate Figure 2 Machine readable instructions and / or operations to implement Figure 1 1000 is a block diagram of an example processor platform 1000 of a computing system 102 of an apparatus. The processor platform 1000 can be, for example, a server, a personal computer, a workstation, a self-learning machine (e.g., a neural network), a mobile device (e.g., a cellular phone, a smart phone, an iPad, etc.). TM , a tablet such as a iPod, a personal digital assistant (PDA), an Internet appliance, a DVD player, a CD player, a digital video recorder, a Blu-ray player, a game console, a personal video recorder, a set-top box, a head-mounted device (e.g., an augmented reality (AR) head-mounted device, a virtual reality (VR) head-mounted device, etc.) or other wearable device, or any other type of computing device.

[0043] The processor platform 1000 of the illustrated example includes a processor circuit system 1012. The processor circuit system 1012 of the illustrated example is hardware. For example, the processor circuit system 1012 can be implemented by one or more integrated circuits, logic circuits, FPGAs, microprocessors, CPUs, GPUs, DSPs, and / or microcontrollers from any desired series or manufacturer. The processor circuit system 1012 can be implemented by one or more semiconductor-based (e.g., silicon-based) devices. In this example, the processor circuit system 1012 implements the processing capabilities of the computing system 102.

[0044] The processor circuit system 1012 of the illustrated example includes a local memory 1013 (e.g., cache, registers, etc.). The processor circuit system 1012 of the illustrated example communicates with a main memory including a volatile memory 1014 and a non-volatile memory 1016 via a bus 1018. The volatile memory 1014 may be a synchronous dynamic random access memory (SDRAM), a dynamic random access memory (DRAM), Dynamic Random Access Memory (DRAM) DynamicRandom Access Memory, ) and / or any other type of RAM device. The non-volatile memory 1016 can be implemented by flash memory and / or any other desired type of memory device. Access to the main memory 1014, 1016 of the illustrated example is controlled by a memory controller 1017.

[0045] The processor platform 1000 of the illustrated example also includes an interface circuit system 1020. The interface circuit system 1020 can be implemented by hardware according to any type of interface standard, such as an Ethernet interface, a universal serial bus (USB) interface, interface, near field communication (NFC) interface, PCI interface, and / or PCIe interface.

[0046] In the illustrated example, one or more input devices 1022 are connected to the interface circuitry 1020. The input device(s) 1022 permit a user to enter data and / or commands into the processor circuitry 1012. The input device(s) 1022 may be implemented by, for example, an audio sensor, a microphone, a camera (still or video), a keyboard, buttons, a mouse, a touch screen, a trackpad, a trackball, an iso-mouse device, and / or a speech recognition system.

[0047] One or more output devices 1024 are also connected to the interface circuit system 1020 of the illustrated example. The output device 1024 can be implemented, for example, by a display device (e.g., a light emitting diode (LED), an organic light emitting diode (OLED), a liquid crystal display (LCD), a cathode ray tube (CRT) display, an in-place switching (IPS) display, a touch screen, etc.), a tactile output device, a printer, and / or a speaker. Thus, the interface circuit system 1020 of the illustrated example typically includes a graphics driver card, a graphics driver chip, and / or a graphics processor circuit system such as a GPU.

[0048] The interface circuitry 1020 of the illustrated example also includes communication devices, such as transmitters, receivers, transceivers, modems, residential gateways, wireless access points, and / or network interfaces, for facilitating data exchange with external machines (e.g., any kind of computing device) over the network 1026. Communications may be made through, for example, an Ethernet connection, a digital subscriber line (DSL) connection, a telephone line connection, a coaxial cable system, a satellite system, a line-of-sight wireless system, a cellular telephone system, an optical connection, etc.

[0049] The processor platform 1000 of the illustrated example also includes one or more mass storage devices 1028 for storing software and / or data. Examples of such mass storage devices 1028 include magnetic storage devices, optical storage devices, floppy disk drives, HDDs, CDs, Blu-ray disk drives, redundant array of independent disks (RAID) systems, solid-state storage devices (such as flash memory devices), and DVD drives.

[0050] can be Figure 2 The machine executable instructions 1032 implemented by the machine readable instructions may be stored in the mass storage device 1028, in the volatile memory 1014, in the non-volatile memory 1016, and / or on a removable non-transitory computer readable storage medium such as a CD or DVD.

[0051] Figure 4 yes Figure 3 1012. In this example, Figure 4The processor circuit system 1012 is implemented by the microprocessor 1100. For example, the microprocessor 1100 can implement a multi-core hardware circuit system, such as a CPU, DSP, GPU, XPU, etc. Although the microprocessor may include any number of example cores 1102 (for example, 1 core), the microprocessor 1100 of this example is a multi-core semiconductor device including N cores. The cores 1102 of the microprocessor 1100 can operate independently, or can cooperate to execute machine-readable instructions. For example, the machine code corresponding to a firmware program, an embedded software program, or a software program can be executed by one of the cores 1102, or can be executed by multiple of the cores 1102 simultaneously or at different times. In some examples, the machine code corresponding to the firmware program, the embedded software program, or the software program is divided into threads and executed in parallel by two or more of the cores 1102. The software program can be executed in parallel by Figure 2 The flowcharts may correspond to part or all of the machine-readable instructions and / or operations.

[0052] The core 1102 can communicate via an example bus 1104. In some examples, the bus 1104 can implement a communication bus to implement communications associated with (one or more) cores 1102 in the core 1102. For example, the bus 1104 can implement at least one of an Inter-Integrated Circuit (IC) bus, a Serial Peripheral Interface (SPI) bus, a PCI bus, or a PCIe bus. Additionally or alternatively, the bus 1104 can implement any other type of computing or electrical bus. The core 1102 can obtain data, instructions, and / or signals from one or more external devices via an example interface circuit system 1106. The core 1102 can output data, instructions, and / or signals to one or more external devices via the interface circuit system 1106. Although the core 1102 of the example includes an example local memory 1120 (e.g., a first level (L1) cache, which may be split into an L1 data cache and an L1 instruction cache), the microprocessor 1100 also includes an example shared memory 1110 (e.g., a second level (L2) cache) that may be shared by the cores for high-speed access to data and / or instructions. Data and / or instructions may be transferred (e.g., shared) by writing to and / or reading from the shared memory 1110. The local memory 1120 of each core 1102 in the core 1102, and the shared memory 1110 may be a plurality of levels of cache memory and main memory (e.g., Figure 3Typically, memory at higher levels in the hierarchy exhibits lower access times and has smaller storage capacity than memory at lower levels. Changes to each level of the cache hierarchy are managed (e.g., coordinated) by a cache coherence policy.

[0053] Each core 1102 may be referred to as a CPU, DSP, GPU, etc., or any other type of hardware circuit system. Each core 1102 includes a control unit circuit system 1114, an arithmetic and logic (AL) circuit system (sometimes referred to as an ALU) 1116, a plurality of registers 1118, an L1 cache (local memory 1120), and an example bus 1122. Other structures may exist. For example, each core 1102 may include a vector unit circuit system, a single instruction multiple data (SIMD) unit circuit system, a load / store unit (LSU) circuit system, a branch / jump unit circuit system, a floating-point unit (FPU) circuit system, etc. The control unit circuit system 1114 includes a semiconductor-based circuit configured to control (e.g., coordinate) data movement within the corresponding core 1102. The AL circuit system 1116 includes a semiconductor-based circuit configured to perform one or more mathematical and / or logical operations on data within the corresponding core 1102. The AL circuit system 1116 of some examples performs integer-based operations. In other examples, the AL circuit system 1116 also performs floating-point operations. In still other examples, the AL circuit system 1116 may include a first AL circuit system that performs integer-based operations and a second AL circuit system that performs floating-point operations. In some examples, the AL circuit system 1116 may be referred to as an arithmetic logic unit (ALU). The register 1118 is a semiconductor-based structure for storing data and / or instructions (such as the results of one or more of the operations performed by the AL circuit system 1116 of the corresponding core 1102). For example, the register 1118 may include (one or more) vector registers, (one or more) SIMD registers, (one or more) general registers, (one or more) flag registers, (one or more) segment registers, (one or more) machine-specific registers, (one or more) instruction pointer registers, (one or more) control registers, (one or more) debug registers, (one or more) memory management registers, (one or more) machine check registers, etc. The register 1118 may be stored as follows Figure 4Alternatively, registers 1118 may be organized in any other arrangement, format, or structure (including being distributed throughout core 1102) to reduce access time. The bus may implement at least one of an I2C bus, an SPI bus, a PCI bus, or a PCIe bus.

[0054] Each core 1102 and / or (more generally) microprocessor 1100 may include additional and / or alternative structures to those shown and described above. For example, there may be one or more clock circuits, one or more power supplies, one or more power gates, one or more cache home agents (CHA), one or more converged / common mesh stops (CMS), one or more shifters (e.g., (one or more) barrel shifters) and / or other circuit systems. Microprocessor 1100 is a semiconductor device manufactured to include many transistors interconnected to implement the structure described above in one or more integrated circuits (ICs) contained in one or more packages. The processor circuit system may include one or more accelerators, and / or collaborate with one or more accelerators. In some examples, the accelerator is implemented by a logic circuit system, so that certain tasks can be performed faster and / or more efficiently than can be performed by a general-purpose processor. Examples of accelerators include ASICs and FPGAs, such as those discussed herein. GPUs or other programmable devices may also be accelerators. The accelerator may be onboard the processor circuitry, in the same chip package as the processor circuitry, and / or in one or more packages separate from the processor circuitry.

[0055] Figure 5 yes Figure 3 1012 is a block diagram of another example implementation of a processor circuit system 1012. In this example, the processor circuit system 1012 is implemented by an FPGA circuit system 1200. For example, the FPGA circuit system 1200 can be used to perform operations that can be performed in other ways. Figure 4 The example microprocessor 1100 executes the corresponding machine-readable instructions to perform operations. However, once configured, the FPGA circuit system 1200 instantiates the machine-readable instructions in hardware and is thereby generally able to perform these operations faster than if these operations could be performed by a general-purpose microprocessor executing corresponding software.

[0056] More specifically, Figure 4 The microprocessor 1100 (the microprocessor 1100 is a general-purpose device that can be programmed to perform the Figure 2In contrast, a general purpose device may be a flowchart representation of some or all of the machine-readable instructions, but the interconnections and logic circuitry of the general purpose device may be fixed once it is manufactured. Figure 5 The example FPGA circuit system 1200 includes such interconnections and logic circuit systems: these interconnections and logic circuit systems can be configured and / or interconnected in different ways after manufacturing to instantiate, for example, Figure 2 1200. Specifically, FPGA circuit system 1200 can be thought of as an array of logic gates, interconnects, and switches. The switches can be programmed to change how the logic gates are interconnected by the interconnects, effectively forming one or more dedicated logic circuits (unless and until FPGA circuit system 1200 is reprogrammed). The configured logic circuits enable the logic gates to cooperate in different ways to perform different operations on data received by the input circuit system. Those operations can be combined with the Figure 2 Thus, FPGA circuit system 1200 can be configured to effectively instantiate Figure 2 As a dedicated logic circuit, some or all of the machine-readable instructions of the flowchart of FIG. 1200 are used to perform operations corresponding to those software instructions in a dedicated manner similar to an ASIC. Thus, the FPGA circuit system 1200 can perform operations corresponding to those software instructions. Figure 2 Some or all of the machine-readable instructions correspond to operations faster than a general-purpose microprocessor can perform the same operations.

[0057] exist Figure 5 In the example of FPGA circuit system 1200, FPGA circuit system 1200 is configured to be programmed (and / or reprogrammed one or more times) by an end user via a hardware description language (HDL) such as Verilog. Figure 5FPGA circuit system 1200 includes example input / output (I / O) circuit system 1202, which is used to obtain data from example configuration circuit system 1204 and / or external hardware (e.g., external hardware circuit system) 1206 and / or output data to example configuration circuit system 1204 and / or external hardware (e.g., external hardware circuit system) 1206. For example, configuration circuit system 1204 can implement an interface circuit system that can obtain machine-readable instructions for configuring FPGA circuit system 1200 or (one or more) parts thereof. In some such examples, configuration circuit system 1204 can obtain machine-readable instructions from a user, a machine (e.g., a hardware circuit system (e.g., a programmed or dedicated circuit system) that can implement an Artificial Intelligence / Machine Learning (AI / ML) model to generate instructions), etc. In some examples, external hardware 1206 can implement Figure 4 1100. FPGA circuit system 1200 also includes an array of example logic gate circuit system 1208, a plurality of example configurable interconnects 1210, and example storage circuit system 1212. Logic gate circuit system 1208 and interconnects 1210 can be configured to instantiate Figure 2 One or more operations corresponding to at least some of the machine-readable instructions and / or other desired operations. Figure 5 The logic gate circuit system 1208 shown in is manufactured in groups or blocks. Each block includes a semiconductor-based electrical structure that can be configured into a logic circuit. In some examples, the electrical structure includes a logic gate (e.g., an AND gate, an OR gate, a NOR gate, etc.) that provides a basic building block for a logic circuit. An electrically controllable switch (e.g., a transistor) is present within each logic gate circuit system 1208 in the logic gate circuit system 1208 to enable the electrical structure and / or logic gate to be configured to form a circuit to perform the desired operation. The logic gate circuit system 1208 may include other electrical structures (such as a look-up table (LUT), a register (e.g., a flip-flop or latch), a multiplexer, etc.).

[0058] The interconnect 1210 of the illustrated example is a conductive path, trace, via, etc., which may include an electrically controllable switch (e.g., a transistor), the state of which may be changed by programming (e.g., using an HDL instruction language) to activate or deactivate one or more connections between one or more logic gate circuit systems 1208 in the logic gate circuit system 1208, thereby programming the desired logic circuit.

[0059] The storage circuit system 1212 of the illustrated example is configured to store (one or more) results of one or more operations performed by the corresponding logic gates. The storage circuit system 1212 can be implemented by registers, etc. In the illustrated example, the storage circuit system 1212 is distributed between the logic gate circuit system 1208 to facilitate access and increase execution speed.

[0060] Figure 5 The example FPGA circuit system 1200 also includes an example dedicated operation circuit system 1214. In this example, the dedicated operation circuit system 1214 includes a dedicated circuit system 1216, which can be called to implement common functions, thereby avoiding the need to program those functions in the field. Examples of such dedicated circuit systems 1216 include memory (e.g., DRAM) controller circuit systems, PCIe controller circuit systems, clock circuit systems, transceiver circuit systems, memory, and multiplier-accumulator circuit systems. There may be other types of dedicated circuit systems. In some examples, the FPGA circuit system 1200 may also include an example general-purpose programmable circuit system 1218, such as an example CPU 1220 and / or an example DSP 1222. There may be additionally or alternatively other general-purpose programmable circuit systems 1218 that can be programmed to perform other operations, such as GPUs, XPUs, etc.

[0061] although Figure 4 and Figure 5 The diagram shows Figure 3 Two example implementations of the processor circuit system 1012 are shown, but many other implementations are contemplated. For example, as mentioned above, modern FPGA circuit systems may include an onboard CPU (such as Figure 5 1220). Therefore, Figure 3 The processor circuit system 1012 may additionally be combined with Figure 4 An example microprocessor 1100 and Figure 5 In some such hybrid examples, the Figure 2 The first portion of the machine-readable instructions represented by the flowchart may be represented by Figure 41102 and is executed by one or more of the cores 1102 of Figure 2 The second portion of the machine-readable instructions represented by the flowchart may be represented by Figure 5 FPGA circuit system 1200 is used to execute.

[0062] In some examples, Figure 3 The processor circuit system 1012 may be in one or more packages. For example, Figure 4 The microprocessor circuit system 1100 and / or Figure 5 The FPGA circuit system 1200 can be in one or more packages. In some examples, the XPU can be composed of Figure 3 The XPU may be implemented by a processor circuit system 1012, which may be in one or more packages. For example, the XPU may include a CPU in one package, a DSP in another package, a GPU in yet another package, and an FPGA in yet another package.

[0063] exist Figure 6 A block diagram illustrating an example software distribution platform 1305 is illustrated in Figure 3 The example software distribution platform 1305 may be implemented by any computer server, data facility, cloud service, etc. that is capable of storing software and delivering it to other computing devices. The third party may be a customer of the entity that owns and / or operates the software distribution platform 1305. For example, the entity that owns and / or operates the software distribution platform 1305 may be a software (such as, Figure 3The example machine-readable instructions 1032 of the example software distribution platform 1305) are provided to the developer, seller and / or licensor of the software. The third party may be a consumer, user, retailer, OEM, etc. who purchases and / or licenses the software for use and / or resale and / or sublicensing. In the illustrated example, the software distribution platform 1305 includes one or more servers and one or more storage devices. The storage device stores machine-readable instructions 1032, which may correspond to the example machine-readable instructions as described above. One or more servers of the example software distribution platform 1305 communicate with a network 1310, which may correspond to any one or more of the Internet and / or any network in the example networks described above, etc. In some examples, as part of a business transaction, one or more servers transmit the software to the requester in response to a request. The payment for the delivery, sale, and / or license of the software may be handled by one or more servers of the software distribution platform and / or by a third-party payment entity. The server enables the purchaser and / or licensor to download the machine-readable instructions 1032 from the software distribution platform 1305. For example, software (which may correspond to the example machine-readable instructions described above) may be downloaded to the example processor platform 1300 for executing the machine-readable instructions 1032 to implement the methods and associated computing system 102 described above. In some examples, one or more servers of the software distribution platform 1305 periodically provide, transmit, and / or enforce the software (e.g., Figure 3 Example machine readable instructions 1032) update to ensure that improvements, patches, updates, etc. are distributed and applied to software at end-user devices.

[0064] In some examples, the apparatus includes a device for processing Figure 1 The user application 116, the client framework 118-1 and the local resource pool 120 are implemented. For example, the means for processing can be implemented by a processor circuit system, a firmware circuit system, etc. In some examples, the processor circuit system can be implemented by executing machine executable instructions by the processor circuit system, and the processor circuit system can be implemented by Figure 3 The example processor circuit system 1012 of Figure 4 The example processor circuitry 1100 of FIG. 1100 , and / or Figure 5The example field programmable gate array (FPGA) circuit system 1200 of the present invention is implemented. In other examples, the processor circuit system is implemented by other hardware logic circuit systems, hardware-implemented state machines, and / or any other combination of hardware, software and / or firmware. For example, the processor circuit system can be implemented by at least one or more hardware circuits (e.g., processor circuit systems, discrete and / or integrated analog and / or digital circuit systems, FPGAs, application-specific integrated circuits (ASICs), comparators, operational amplifiers (op-amps), logic circuits, etc.) configured to perform corresponding operations without executing software or firmware, but other structures are also applicable.

[0065] From the foregoing, it will be appreciated that example systems, methods, apparatus, and articles of manufacture have been disclosed that provide defect scanning of components in a computing system. The disclosed systems, methods, apparatus, and articles of manufacture improve the efficiency of using a computing device by detecting when a defect occurs in a component. The disclosed systems, methods, apparatus, and articles of manufacture are accordingly directed to one or more improvements in the operation of a machine such as a computer or other electronic and / or mechanical device.

[0066] Example 1 is a method comprising: receiving one or more updates to a global resource pool of a hybrid cloud and updating a local resource pool with the one or more updates to the global resource pool; intercepting a service request from an application; redirecting the deployment of the service request to a resource provider of the hybrid cloud that has available computing resources that satisfy the service request based at least in part on the local resource pool and by using a network hook; receiving an Internet Protocol (IP) address of the resource provider; redirecting a domain name service (DNS) of the application to the IP address of the resource provider; and sending a service request to the resource provider.

[0067] In Example 2, the subject matter as described in Example 1 may optionally include: when the hybrid cloud is initiated, establishing a secure connection between the cloud manager and the client computing system. In Example 3, the subject matter as described in Example 2 may optionally include: registering to receive one or more updates to the global resource pool from the cloud manager. In Example 4, the subject matter as described in Example 3 may optionally include: using one or more network hooks to receive one or more updates to the global resource pool. In Example 5, the subject matter as described in Example 1 may optionally include: wherein the global resource pool and the local resource pool include multiple computing resources at multiple resource providers in the hybrid cloud that can be used to satisfy service requests from applications. In Example 6, the subject matter as described in Example 1 may optionally include: wherein the resource provider includes a computing system of the hybrid cloud. In Example 7, the subject matter as described in Example 1 may optionally include: wherein the hybrid cloud includes a software-defined network. In Example 8, the subject matter as described in Example 1 may optionally include: wherein the hybrid cloud includes a client computing system and multiple resource providers located in the same local computing environment.

[0068] Example 9 is at least one non-transitory machine-readable storage medium, comprising instructions that, when executed, cause at least one processor to perform the following operations: receive one or more updates to a global resource pool of a hybrid cloud and update a local resource pool with the one or more updates to the global resource pool; intercept a service request from an application; redirect deployment of the service request to a resource provider of the hybrid cloud that has available computing resources that satisfy the service request based at least in part on the local resource pool and by using a network hook; receive an Internet Protocol (IP) address of the resource provider; redirect a domain name service (DNS) of the application to the IP address of the resource provider; and send a service request to the resource provider.

[0069] In Example 10, the subject matter as described in Example 9 may optionally include instructions that, when executed, cause at least one processor to perform the following operations: establish a secure connection between the cloud manager and the client computing system when the hybrid cloud is initiated. In Example 11, the subject matter as described in Example 10 may optionally include instructions that, when executed, cause at least one processor to perform the following operations: register to receive one or more updates to the global resource pool from the cloud manager. In Example 12, the subject matter as described in Example 11 may optionally include instructions that, when executed, cause at least one processor to perform the following operations: use one or more network hooks to receive one or more updates to the global resource pool. In Example 13, the subject matter as described in Example 9 may optionally include instructions that, when executed, cause at least one processor to perform the following operations: wherein the global resource pool and the local resource pool include multiple computing resources at multiple resource providers in the hybrid cloud that can be used to satisfy service requests from applications.

[0070] Example 14 is a device comprising: a memory for storing instructions and a local resource pool; and a processor, coupled to the memory, for executing instructions to perform the following operations: receiving one or more updates to a global resource pool of a hybrid cloud and updating a local resource pool with the one or more updates to the global resource pool; intercepting a service request from an application; redirecting the deployment of the service request to a resource provider of the hybrid cloud that has available computing resources that satisfy the service request based at least in part on the local resource pool and by using a network hook; receiving an Internet Protocol (IP) address of the resource provider; redirecting a domain name service (DNS) of the application to the IP address of the resource provider; and sending a service request to the resource provider.

[0071] In Example 15, the subject matter as described in Example 14 may optionally include a processor for performing the following operations: when the hybrid cloud is initiated, establishing a secure connection between the cloud manager and the device. In Example 16, the subject matter as described in Example 15 may optionally include a processor for performing the following operations: registering to receive one or more updates to the global resource pool from the cloud manager. In Example 17, the subject matter as described in Example 16 may optionally include a processor for performing the following operations: using one or more network hooks to receive one or more updates to the global resource pool. In Example 18, the subject matter as described in Example 14 may optionally include: wherein the global resource pool and the local resource pool include multiple computing resources at multiple resource providers in the hybrid cloud that can be used to satisfy service requests from applications. In Example 19, the subject matter as described in Example 14 may optionally include: wherein the hybrid cloud includes a software-defined network. In Example 20, the subject matter as described in Example 14 may optionally include: wherein the hybrid cloud includes a device and multiple resource providers located in the same local computing environment.

[0072] Example 21 is an apparatus that operates to perform a method as in any one of Examples 1 to 8. Example 26 is a device that includes a device for performing a method as in any one of Examples 1 to 8. Example 27 is an apparatus that includes any combination of modules and / or units and / or logic and / or circuit systems and / or devices that operate to perform a method as in any one of Examples 1 to 8. Example 28 is an optionally non-transitory and / or tangible machine-readable medium that optionally stores or otherwise provides instructions that, when executed by a computer system or other machine and / or when executed by a computer system or other machine, operate to cause the machine to perform a method as in any one of Examples 1 to 8.

[0073] Although certain example systems, methods, devices, and articles have been disclosed herein, the scope of coverage of this patent is not limited thereto. On the contrary, this patent covers all systems, methods, devices, and articles that fully fall within the scope of the examples of this patent.

Claims

1. A method comprising: receiving one or more updates to a global resource pool of the hybrid cloud and updating a local resource pool with the one or more updates to the global resource pool; Intercept service requests from applications; redirecting, based at least in part on the local resource pool and by using a webhook, deployment of the service request to a resource provider of the hybrid cloud having available computing resources that satisfy the service request; Receiving an Internet Protocol (IP) address of the resource provider; redirecting a domain name service (DNS) of the application to the IP address of the resource provider; as well as The service request is sent to the resource provider.

2. The method of claim 1, comprising: When the hybrid cloud is initiated, a secure connection is established between the cloud manager and the client computing system.

3. The method of claim 2, comprising: Registering to receive the one or more updates to the global resource pool from the cloud manager.

4. The method of claim 3, comprising: The one or more updates to the global resource pool are received using one or more webhooks.

5. The method of claim 1, wherein: The global resource pool and the local resource pool include a plurality of computing resources at a plurality of resource providers in the hybrid cloud that can be used to satisfy a service request from the application.

6. The method of claim 1, wherein: The resource provider includes a computing system of the hybrid cloud.

7. The method of claim 1, wherein: The hybrid cloud includes a software-defined network.

8. The method of claim 1, wherein: The hybrid cloud includes a client computing system and multiple resource providers located in the same local computing environment.

9. At least one non-transitory machine-readable storage medium comprising instructions that, when executed, cause at least one processor to: receiving one or more updates to a global resource pool of the hybrid cloud and updating a local resource pool with the one or more updates to the global resource pool; Intercept service requests from applications; redirecting, based at least in part on the local resource pool and by using a webhook, deployment of the service request to a resource provider of the hybrid cloud having available computing resources that satisfy the service request; Receiving an Internet Protocol (IP) address of the resource provider; redirecting a domain name service (DNS) of the application to the IP address of the resource provider; as well as The service request is sent to the resource provider.

10. The at least one non-transitory machine-readable storage medium of claim 9, comprising instructions that, when executed, cause at least one processor to: establish a secure connection between a cloud manager and a client computing system when the hybrid cloud is initiated.

11. The at least one non-transitory machine-readable storage medium of claim 10, comprising instructions that, when executed, cause at least one processor to: register to receive the one or more updates to the global resource pool from the cloud manager.

12. The at least one non-transitory machine-readable storage medium of claim 11, comprising instructions that, when executed, cause at least one processor to: receive the one or more updates to the global resource pool using one or more webhooks.

13. The at least one non-transitory machine-readable storage medium of claim 9, wherein: The global resource pool and the local resource pool include a plurality of computing resources at a plurality of resource providers in the hybrid cloud that can be used to satisfy a service request from the application.

14. A device, comprising: Memory, used to store instructions and local resource pool; as well as A processor, coupled to the memory, configured to execute the instructions to perform the following operations: receiving one or more updates to a global resource pool of the hybrid cloud and updating the local resource pool with the one or more updates to the global resource pool; Intercept service requests from applications; redirecting, based at least in part on the local resource pool and by using a webhook, deployment of the service request to a resource provider of the hybrid cloud having available computing resources that satisfy the service request; Receiving an Internet Protocol (IP) address of the resource provider; redirecting a domain name service (DNS) of the application to the IP address of the resource provider; as well as The service request is sent to the resource provider.

15. The apparatus of claim 14, comprising the processor configured to: establish a secure connection between a cloud manager and the apparatus when the hybrid cloud is initiated.

16. The apparatus of claim 15, comprising the processor to register to receive the one or more updates to the global resource pool from the cloud manager.

17. The apparatus of claim 16, comprising the processor to receive the one or more updates to the global resource pool using one or more webhooks.

18. The device of claim 14, wherein: The global resource pool and the local resource pool include a plurality of computing resources at a plurality of resource providers in the hybrid cloud that can be used to satisfy a service request from the application.

19. The device of claim 14, wherein: The hybrid cloud includes a software-defined network.

20. The device of claim 14, wherein: The hybrid cloud includes the device and a plurality of resource providers located in the same local computing environment.