IP Library Granted Patent US 11,656,852
Granted Patent B2
US 11,656,852 · App. 17/315,088 · Granted May 23, 2023

System and method for autowiring of a microservice architecture

Inventor: Mikhail Mazurskiy (Sydney, AU)
Assignees: ATLASSIAN PTY LTD.; ATLASSIAN US, INC.
G06F8/36G06F8/60
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,656,852
App. No.
17/315,088
Granted
May 23, 2023
Kind
B2
Abstract

Disclosed is a computer implemented method for automatically connecting multiple components of a microservice architecture, comprising receiving a definition of a primary resource to be provided by a provider; determining a dependent resource of the primary resource based on the definition of the primary resource; requesting the primary resource to determine one or more shapes of the primary resource, wherein a shape is information about the primary resource that is necessary for the dependent resource to depend on the primary resource; receiving the one or more shapes of the primary resource; providing the one or more shapes of the primary resource to the dependent resource; and determining a provisioning object based on the one or more shapes of the primary resource, wherein, in use, the provisioning object can be used by a provisioning controller to provision the resource by the provider.

Claims (58)

1. A method of instantiating a service supported by a microservices architecture having multiple microservice components that are automatically connected during a setup process, the method comprising:

receiving an instruction to instantiate the service;

retrieving an application graph from a datastore, the application graph comprising:

a set of microservice nodes each referencing a respective one microservice that performs a function upon which the service depends; and

a set of microservice edges, each respective microservice edge referencing at least two respective microservice nodes of the set of microservice nodes and comprising instructions for communicably intercoupling each of the at least two microservice nodes referenced by the respective microservice edge;

defining a resource graph by:

defining a set of resource nodes, the set of resource nodes comprising:

a first resource node comprising at least two microservice nodes and at least one respective microservice edge that references each of the at least two microservice nodes; and

a second resource node comprising only one microservice node of the set of microservice nodes; and

defining a set of resource edges, each respective resource edge referencing at least two resource nodes and comprising instructions for communicably intercoupling the at least two resource nodes referenced by the respective edge node; and

instantiating each resource of the resource graph to instantiate the service.

2. The method of claim 1 , wherein instantiating each resource of the resource graph comprises provisioning at least one microservice node of the application graph.

3. The method of claim 2 , wherein instantiating each resource of the resource graph comprises defining at least one resource edge by communicably coupling the respective at least two resource nodes referenced by the at least one resource edge.

4. The method of claim 1 , comprising defining an operation state of at least one instantiated resource node of the resource graph.

5. The method of claim 4 , comprising monitoring the operation state over time.

6. The method of claim 4 , comprising defining an operation status of the service based, at least in part, on the operation state of the at least one instantiated resource node.

7. The method of claim 6 , wherein:

the operation state is a first operation state; and

the method comprises defining a second operation state of at least one instantiated resource edge of the resource graph.

8. The method of claim 7 , comprising monitoring the second operation state over time.

9. The method of claim 8 , comprising updating the operation status of the service based, at least in part, on the second operation state.

10. A method of instantiating and updating an operational status of a service supported by a microservices architecture having multiple microservice components that are automatically connected during a setup process, the method comprising:

retrieving an application graph from a datastore, the application graph comprising:

a set of microservice nodes each referencing a respective one microservice; and

a set of edges each intercoupling at least two microservice nodes;

defining a resource graph from the application graph by:

defining a first resource by identifying a first branch of the application graph comprising at least two microservice nodes intercoupled by at least one edge;

defining a second resource by identifying a second branch of the application graph comprising at least one microservice node associated by at least one edge of the set of edges with at least one of the at least two microservice nodes of the first resource;

defining a first status of the first resource;

defining a second status of the second resource;

defining an operational status of the service based on the first status and the second status;

instantiating each microservice of the first resource;

intercoupling each instantiated microservice of the first resource;

instantiating each microservice of the second resource;

intercoupling the instantiated first resource with the instantiated second resource;

updating the first status and the second status upon a determination that the first resource and the second resource are successfully instantiated; and

updating the operational status of the service based, at least in part, on the updated first status and the updated second status.

11. The method of claim 10 , comprising monitoring the first status over time and, in response to a change in the first status, updating the operational status of the service.

12. The method of claim 10 , comprising monitoring the second status over time and, in response to a change in the second status, updating the operational status of the service.

13. The method of claim 10 , wherein instantiating each microservice of the first resource comprises provisioning at least one virtual resource.

14. The method of claim 10 , wherein the first resource is a bundled resource of the resource graph and the second resource is an single-node resource of the resource graph.

15. The method of claim 10 , comprising:

defining a third resource by identifying a third branch of the application graph comprising at least three microservice nodes intercoupled by at least one edge; and

defining a third status of the third resource; wherein

the operational status of the service is based, at least in part, on the third status.

16. The method of claim 10 , wherein the application graph has a greater number of nodes and edges than the resource graph.

17. A method of logically bundling microservices prior to instantiating a service supported by a microservices architecture having multiple microservice components that are automatically connected during a setup process, the method comprising:

receiving an instruction to instantiate the service;

selecting an original graph, the original graph comprising:

a first set of nodes each referencing a respective one microservice; and

a first set of edges each intercoupling at least two nodes of the first set of nodes;

defining a condensed graph from the original graph by:

defining a second set of nodes, at least one node of the second set of nodes comprising a branch of the original graph comprising two or more intercoupled nodes;

defining a second set of edges intercoupling at least two nodes of the second set of nodes; and

provisioning each microservice referenced by the condensed graph.

18. The method of claim 17 , wherein selecting the original graph comprises defining the original graph from a definition file retrieved from a datastore.

19. The method of claim 17 , wherein provisioning each microservice referenced by the condensed graph comprises instantiating dependent microservices prior to parent microservices.

20. The method of claim 17 , comprising defining an operational status of the service based, at least in part, on an operation status of at least one node of the second set of nodes.

Assignments (1)
CHANGE OF NAME Recorded Aug 5, 2022
From: ATLASSIAN, INC.
To: ATLASSIAN US, INC.
Reel/Frame 061085/0690 →
Continuity (2)
Continuation 16725894 · Dec 23, 2019
Related Publication 20210263714A1 · Aug 26, 2021
Cited By (24)
US 12,197,859 US 12,198,030 US 12,204,323 US 12,292,811 US 12,299,140 US 12,321,862 US 12,346,820 US 12,361,334 US 12,361,335 US 12,367,292 US 12,443,894 US 12,450,494 US 12,505,291 US 12,505,352 US 12,517,724 US 12,524,508 US 12,554,522 US 12,596,738 US 12,596,813 US 12,602,418 US 12,602,624 US 12,608,486 US 12,681,830 US 12,694,343