IP Library Granted Patent US 11,586,482
Granted Patent B2
US 11,586,482 · App. 17/336,714 · Granted Feb 21, 2023

Deployment of services with dependencies

Inventors: Roger Che (Shanghai, CN); Zak Liang (Shanghai, CN); James Morton (Adamstown, MD); Lihui Su (Shanghai, CN); Ming Zhang (Shanghai, CN)
Assignee: EMC IP HOLDING COMPANY LLC
G06F9/52G06F9/547
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,586,482
App. No.
17/336,714
Granted
Feb 21, 2023
Kind
B2
Abstract

Metadata includes runtime dependencies for services that form an application. Each runtime dependency includes one or more of the one or more services, unless it has no runtime dependencies. A first of the services is selected, based on the metadata, that does not have runtime dependencies or those runtime dependencies are operational. The selected service is started. Other embodiments are described and claimed.

Claims (40)

1. A method, performed by a management service running on a computing device, comprising:

receiving a metadata that declares runtime dependencies for each of one or more services, wherein each runtime dependency is another one of the one or more services and wherein the metadata includes a deployment queue that indicates a runtime dependency graph of the one or more services;

selecting, based on the metadata, a first of the one or more services that does not have runtime dependencies or the runtime dependencies are operational;

starting the first of the one or more services to deploy the one or more services, including popping the first of the one or more services off of the deployment queue to indicate the starting of the first of the one or more services;

querying the first of the one or more services to determine if the first of the one or more services is operational;

in response to the first of the one or more services not being operational, waiting for the first of the one or more services to become operational; and

in response to the first of the one or more services being operational, adding to the deployment queue, those of the one or more services that depend on the first of the one or more services, and selecting and starting a second of the one or more services to deploy the one or more second services including popping the second of the one or more services off of the deployment queue in accordance with the runtime dependency graph to indicate the starting of the second of the one or more services.

2. The method of claim 1 , wherein the second of the one or more services is selected such that it does not have any runtime dependencies or those runtime dependencies are operational.

3. The method of claim 2 , wherein determining that the first service is operational includes receiving a response from the first service that it is operational.

4. The method of claim 1 , wherein the metadata includes a data structure that represents a runtime dependency graph of the one or more services.

5. The method of claim 4 , wherein the data structure stores, for each of the one or more services, a service identifier as a key, and the runtime dependencies of the respective one or more services as a set of values.

6. The method of claim 1 , comprising selecting and starting each of the one or more services until all of the one or more services are operational, the one or more services being selected in a topological ordering.

7. The method of claim 1 , wherein the one or more services are one or more microservices that run in a containerized environment.

8. A non-transitory computer-readable medium storing instructions which, when executed by one or more processors of a networked computing device, cause the computing device to perform operations comprising:

receiving a metadata that declares runtime dependencies for each of one or more services, wherein each runtime dependency is another one of the one or more services and wherein the metadata includes a deployment queue that indicates a runtime dependency graph of the one or more services;

selecting, based on the metadata, a first of the one or more services that does not have runtime dependencies or the runtime dependencies are operational;

starting the first of the one or more services to deploy the one or more services, including popping the first of the one or more services off of the deployment queue to indicate the starting of the first of the one or more services;

querying the first of the one or more services to determine if the first of the one or more services is operational;

in response to the first of the one or more services not being operational, waiting for the first of the one or more services to become operational; and

in response to the first of the one or more services being operational, adding to the deployment queue, those of the one or more services that depend on the first of the one or more services, and selecting and starting a second of the one or more services to deploy the one or more second services including popping the second of the one or more services off of the deployment queue in accordance with the runtime dependency graph to indicate the starting of the second of the one or more services.

9. The non-transitory computer-readable medium of claim 8 , wherein the second of the one or more services is selected such that it does not have any runtime dependencies or those runtime dependencies are operational.

10. The non-transitory computer-readable medium of claim 9 , wherein determining that the first service is operational includes receiving a response from the first service that it is operational.

11. The non-transitory computer-readable medium of claim 8 , wherein the metadata includes a data structure that represents a runtime dependency graph of the one or more services.

12. The non-transitory computer-readable medium of claim 11 , wherein the data structure stores, for each of the one or more services, a service identifier as a key, and the runtime dependencies of the respective one or more services as a set of values.

13. The non-transitory computer-readable medium of claim 8 , comprising selecting and starting each of the one or more services until all of the one or more services are operational, the one or more services being selected in a topological ordering.

14. The non-transitory computer-readable medium of claim 8 , wherein the one or more services are one or more microservices that run in a containerized environment.

15. A data processing system, comprising:

computer-readable memory; and

a processor that executes instructions stored on the computer-readable memory, causing the data processing system to perform operations including:

receiving a metadata that declares runtime dependencies for each of one or more services, wherein each runtime dependency is another one of the one or more services and wherein the metadata includes a deployment queue that indicates a runtime dependency graph of the one or more services;

selecting, based on the metadata, a first of the one or more services that does not have runtime dependencies or the runtime dependencies are operational;

starting the first of the one or more services to deploy the first of the one or more services, including popping the first of the one or more services off of the deployment queue to indicate the starting of the first of the one or more services;

querying the first of the one or more services to determine if the first of the one or more services are operational;

in response to the first of the one or more services not being operational, waiting for the first of the one or more services to become operational; and

in response to the first of the one or more services being operational, adding to the deployment queue, those of the one or more services that depend on the first of the one or more services, and selecting and starting a second of the one or more services to deploy the one or more second services including popping the second of the one or more services off of the deployment queue in accordance with the runtime dependency graph to indicate the starting of the second of the one or more services.

16. The data processing system of claim 15 , wherein the second of the one or more services is selected such that it does not have any runtime dependencies or those runtime dependencies are operational.

17. The data processing system of claim 16 , wherein determining that the first service is operational includes receiving a response from the first service that it is operational.

18. The data processing system of claim 15 , wherein the metadata includes a data structure that represents a runtime dependency graph of the one or more services.

19. The data processing system of claim 18 , wherein the data structure stores, for each of the one or more services, a service identifier as a key, and the runtime dependencies of the respective one or more services as a set of values.

20. The data processing system of claim 15 , wherein the one or more services are one or more microservices that run in a containerized environment.

Assignments (8)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (058014/0560) Recorded Jun 10, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 062022/0473 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (057931/0392) Recorded Jun 10, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 062022/0382 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (057758/0286) Recorded Jun 10, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 061654/0064 →
SECURITY INTEREST Recorded Oct 6, 2021
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 058014/0560 →
SECURITY INTEREST Recorded Oct 6, 2021
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 057758/0286 →
SECURITY INTEREST Recorded Oct 6, 2021
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 057931/0392 →
SECURITY AGREEMENT Recorded Oct 1, 2021
From: DELL PRODUCTS, L.P.; EMC IP HOLDING COMPANY LLC
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 057682/0830 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 2, 2021
From: CHE, ROGER; LIANG, ZAK; MORTON, JAMES; SU, LIHUI; ZHANG, MING
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 056415/0100 →
Continuity (1)
Related Publication 20220391263A1 · Dec 8, 2022
Cited By (1)
US 12,487,800