# US 11,121,906 B2 · Data plane API in a distributed computing network

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 11,121,906 B2
- Document ID: US11121906B2
- Status: Granted
- Kind: B2
- Application number: 16/584,056
- Filed: 2019-09-26
- Published: 2020-01-16
- Granted: 2021-09-14
- Earliest claimed: 2016-06-30
- Assignees: Microsoft Technology Licensing, LLC
- Applicants: Microsoft Technology Licensing, LLC
- Inventors: James Ernest Johnson; Guhan Suriyanarayanan; Luis Irun-Briz
- Web page: https://patentgrep.com/patent/US11121906B2

## CPC

- G06F 9/5077: {Logical partitioning of resources; Management or configuration of virtualized resources (specific details on emulation or internal functioning of virtual machines G06F9/455)}
- H04L 41/0266: using meta-data, objects or commands for formatting management information, e.g. using eXtensible markup language [XML]
- H04L 47/70: Admission control; Resource allocation
- H04L 67/10: in which an application is distributed across nodes in the network (software deployment G06F8/60; multiprogramming arrangements G06F9/46)
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

Embodiments are directed to a distributed computing system comprising a plurality of compute nodes for providing resources to users and a hierarchy of two or more layers of controllers coupling the compute nodes to a user interface via a control plane, wherein at least one compute node receives a local application program interface (API) call from an application running on the at least one compute node, the local API call causing the at least one compute node to configure a local resource without requiring commands from the control plane.

## Claims

### Claim 1

A computer-implemented method for controlling resources in a distributed computing system, the distributed computing system comprising a plurality of compute nodes, the computer-implemented method comprising:
receiving a request to deploy a container in accordance with a model, wherein the model specifies limits on local decisions;
forwarding deployment instructions for the container across a control plane of the distributed computing system to a compute node of the plurality of compute nodes;
deploying the container on the compute node;
receiving, at the compute node, a local application program interface (API) call from the container;
determining that the local API call is within the limits on local decisions; and
configuring a local resource in response to the local API call without requiring commands from the control plane.

### Claim 2 (depends on 1)

The computer-implemented method of claim 1, wherein the model is based at least in part on information received from a tenant.

### Claim 3 (depends on 1)

The computer-implemented method of claim 1, wherein the local API call causes the compute node to auto-clean a virtual machine included in the container.

### Claim 4 (depends on 1)

The computer-implemented method of claim 1, wherein the local API call is routed to a cluster controller and causes a second compute node to clean a virtual machine on the second compute node, the compute node and the second compute node being coupled to the cluster controller.

### Claim 5 (depends on 1)

The computer-implemented method of claim 1, wherein the local API call causes a start of one or more new containers within a pre-allocated limit.

### Claim 6 (depends on 5)

The computer-implemented method of claim 5, wherein the local API call is routed to a cluster controller and causes a second container on a second compute node to start, the compute node and the second compute node being coupled to the cluster controller.

### Claim 7 (depends on 1)

The computer-implemented method of claim 1, wherein the local API call causes the compute node to shut down one or more containers within a pre-allocated limit.

### Claim 8 (depends on 1)

The computer-implemented method of claim 1, wherein the local API call causes the compute node to attach the container to a communication network.

### Claim 9 (depends on 1)

The computer-implemented method of claim 1, wherein the local API call causes the compute node to attach the container to a disk.

### Claim 10 (depends on 1)

The computer-implemented method of claim 1, wherein the local API call causes the compute node to resize a run space available for the container.

### Claim 11

A method comprising:
receiving, at a compute node, of a distributed computing system, a local application program interface (API) call for an operation associated with a local resource of the distributed computing system, wherein the local API call does not identify a location in the distributed computing system of the local resource;
routing the local API call within the distributed computing system, wherein the local API call is routed below a control plane; and
performing the operation specified in the local API call without requiring commands from the control plane.

### Claim 12 (depends on 11)

The method of claim 11, wherein the local API call does not define how the operation should be carried out.

### Claim 13 (depends on 11)

The method of claim 11, wherein the local API call does not define which elements of the distributed computing system are involved in the operation.

### Claim 14 (depends on 11)

The method of claim 11, wherein the local resource is located on the compute node and the local API call is routed to the compute node.

### Claim 15 (depends on 11)

The method of claim 11, wherein the local resource is located on a second compute node and the local API call is routed to a cluster controller that oversees the compute node and the second compute node.

### Claim 16

A non-transitory computer-readable medium comprising instructions that are executable by one or more processors to cause a computing system to:
receive a local application program interface (API) call for modification of a target resource located in a datacenter;
determine that the local API call falls within parameters specified in a model defining the target resource; and
modify the target resource based on the local API call without requiring instructions from a control plane of the datacenter.

### Claim 17 (depends on 16)

The non-transitory computer-readable medium of claim 16, wherein the target resource is an existing container.

### Claim 18 (depends on 16)

The non-transitory computer-readable medium of claim 16, wherein the target resource is a new container.

### Claim 19 (depends on 16)

The non-transitory computer-readable medium of claim 16, wherein the target resource resides on a first compute node and the local API call is received from a container on a second compute node different from the first compute node.

### Claim 20 (depends on 16)

The non-transitory computer-readable medium of claim 16, wherein the datacenter includes a plurality of compute nodes and a hierarchy of two or more layers of controllers coupling the plurality of compute nodes to a user interface via the control plane.
