IP Library Granted Patent US 11,579,862
Granted Patent B2
US 11,579,862 · App. 17/028,691 · Granted Feb 14, 2023

Methods and systems for continuous asynchronous code deployment

Inventors: Jeffrey Hart (Union City, CA); Andrew Backes (San Mateo, CA); Alex Bello (San Francisco, CA); Isaac Mosquera (San Mateo, CA)
Assignee: Armory, Inc.
G06F8/65G06F9/546
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,579,862
App. No.
17/028,691
Granted
Feb 14, 2023
Kind
B2
Abstract

Systems, methods and computer program products are presented for the automated deployment of a code update to a device. One or more clusters of devices may be connected to a development environment for deployment of one or more code updates through respective development pipelines to the respective clusters of devices. A first cluster of devices receives a module for implementation of an agent for the first cluster of devices and a central queue local to a centralized controller of the development environment. The agent reports at least one status of a respective device to the centralized controller of the development environment, whereby that status may correspond to a code update image pulled onto the respective device. The agent retrieves one or more instruction messages from the centralized controller in response to the reported status of the respective device.

Claims (45)

1. A computer-implemented method comprising:

implementing an agent within a first cluster of devices connected to a development environment for deployment of one or more code updates through respective development pipelines to one or more clusters of devices;

reporting, by the agent, at least one status of a respective device to a centralized controller of the development environment, the at least one status corresponding to a code update image pulled onto a respective device;

retrieving, by the agent, one or more instruction messages from the centralized controller in response to the reported status of the respective device;

connecting an agent queue of the agent to an asynchronous message bus to collect one or more status messages sent from the respective device in the first cluster to the centralized controller, the asynchronous message bus enabling communication between the first duster of devices and the centralized controller of the development environment;

connecting a central queue local to the centralized controller to the asynchronous message bus to enable the agent to collect one or more instructions placed into the asynchronous message bus by a centralized system; and

authenticating the agent to provide the agent access to connect the agent queue to the asynchronous message bus.

2. The computer-implemented method of claim 1 , further comprising receiving a module for implementation of the agent for the first cluster of devices and the central queue local to the centralized controller, wherein the development environment comprises an open source development environment.

3. The computer-implemented method of claim 1 , wherein reporting, from the agent to a centralized system of the development environment, at least one status change of a respective device that corresponds to a code update image pulled onto the respective device comprises:

monitoring, by the agent, the agent queue to detect a status message resulting from the respective device applying the pulled code update image; and

sending, by the agent, the status message to the centralized controller from the agent queue.

4. The computer-implemented method of claim 3 , wherein monitoring, by the agent, the agent queue to detect a status message resulting from the respective device applying the pulled code update image comprises:

detecting a status message intended by the respective device for placement on the asynchronous message bus, the status message indicating the pulled code update image requires at least one resource which the respective device cannot access.

5. The computer-implemented method of claim 1 , wherein reporting, by the agent, at least one status of a respective device to a centralized controller of the development environment, the at least one status corresponding to a code update image pulled by the respective device comprises:

sending, from the agent to one or more of the devices in the first duster, an instruction to pull the code update image from the pipeline onto the corresponding device.

6. A system comprising one or more processors, and a non-transitory computer-readable medium including one or more sequences of instructions that, when executed by the one or more processors, cause the system to perform operations comprising:

implementing an agent within a first cluster of devices connected to a development environment for deployment of one or more code updates through respective development pipelines to one or more clusters of devices;

reporting, by the agent, at least one status of a respective device to a centralized controller of the development environment, the at least one status corresponding to a code update image pulled onto a respective device;

retrieving, by the agent, one or more instruction messages from the centralized controller in response to the reported status of the respective device;

connecting an agent queue of the agent to an asynchronous message bus to collect one or more status messages sent from the respective device in the first cluster to the centralized controller, the asynchronous message bus enabling communication between the first cluster of devices and the centralized controller of the development environment;

connecting a central queue local to the centralized controller to the asynchronous message bus to enable the agent to collect one or more instructions placed into the asynchronous message bus by a centralized system; and

authenticating the agent to provide the agent access to connect the agent queue to the asynchronous message bus.

7. The system of claim 6 , further comprising

receiving a module for implementation of the agent for the first cluster of devices and the central queue local to the centralized controller, wherein the development environment comprises an open source development environment.

8. The system of claim 6 , wherein reporting, from the agent to a centralized system of the development environment, at least one status change of a respective device that corresponds to a code update image pulled onto the respective device comprises:

monitoring, by the agent, the agent queue to detect a status message resulting from the respective device applying the pulled code update image; and

sending, by the agent, the status message to the centralized controller from the agent queue.

9. The system of claim 8 , wherein monitoring, by the agent, the agent queue to detect a status message resulting from the respective device applying the pulled code update image comprises:

detecting a status message intended by the respective device for placement on the asynchronous message bus, the status message indicating the pulled code update image requires at least one resource which the respective device cannot access.

10. The system of claim 6 , wherein reporting, by the agent, at least one status of a respective device to a centralized controller of the development environment, the at least one status corresponding to a code update image pulled by the respective device comprises:

sending, from the agent to one or more of the devices in the first duster, an instruction to pull the code update image from the pipeline onto the corresponding device.

11. A computer program product comprising a non-transitory computer-readable medium having a computer-readable program code embodied therein to be executed by one or more processors, the program code including instructions to:

implementing an agent within a first cluster of devices connected to a development environment for deployment of one or more code updates through respective development pipelines to one or more clusters of devices;

reporting, by the agent, at least one status of a respective device to a centralized controller of the development environment, the at least one status corresponding to a code update image pulled onto a respective device;

retrieving, by the agent, one or more instruction messages from the centralized controller in response to the reported status of the respective device;

connecting an agent queue of the agent to an asynchronous message bus to collect one or more status messages sent from the respective device in the first cluster to the centralized controller, the asynchronous message bus enabling communication between the first duster of devices and the centralized controller of the development environment;

connecting a central queue local to the centralized controller to the asynchronous message bus to enable the agent to collect one or more instructions placed into the asynchronous message bus by a centralized system; and

authenticating the agent to provide the agent access to connect the agent queue to the asynchronous message bus.

12. The computer program product of claim 11 , further comprising

receiving a module for implementation of the agent for the first cluster of devices and the central queue local to the centralized controller, wherein the development environment comprises an open source development environment.

13. The computer program product of claim 11 , wherein reporting, from the agent to a centralized system of the development environment, at least one status change of a respective device that corresponds to a code update image pulled onto the respective device comprises:

monitoring, by the agent, the agent queue to detect a status message resulting from the respective device applying the pulled code update image; and

sending, by the agent, the status message to the centralized controller from the agent queue.

14. The computer program product of claim 13 , wherein monitoring, by the agent, the agent queue to detect a status message resulting from the respective device applying the pulled code update image comprises:

detecting a status message intended by the respective device for placement on the asynchronous message bus, the status message indicating the pulled code update image requires at least one resource which the respective device cannot access.

Assignments (6)
RELEASE OF SECURITY INTEREST Recorded Aug 18, 2026
From: SILICON VALLEY BANK, A DIVISION OF FIRST-CITIZENS BANK & TRUST COMPANY
To: HARNESS INC.; HARNESS INTERNATIONAL, INC.
Reel/Frame 075690/0701 →
RELEASE OF SECURITY INTEREST Recorded Aug 18, 2026
From: SILICON VALLEY BANK, A DIVISION OF FIRST-CITIZENS BANK & TRUST COMPANY, AS AGENT
To: HARNESS INC.; HARNESS INTERNATIONAL, INC.
Reel/Frame 075690/0915 →
SECURITY INTEREST Recorded Nov 24, 2024
From: HARNESS INC.; HARNESS INTERNATIONAL, INC.
To: FIRST-CITIZENS BANK & TRUST COMPANY
Reel/Frame 069387/0805 →
SECURITY INTEREST Recorded Nov 24, 2024
From: HARNESS INC.; HARNESS INTERNATIONAL, INC.
To: FIRST-CITIZENS BANK & TRUST COMPANY, AS AGENT
Reel/Frame 069387/0816 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 8, 2024
From: ARMORY, INC.
To: HARNESS INC.
Reel/Frame 066767/0847 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 22, 2020
From: HART, JEFFREY; BACKES, ANDREW; BELLO, ALEX; MOSQUERA, ISAAC
To: ARMORY, INC.
Reel/Frame 053849/0145 →
Continuity (2)
Provisional Application 62904044 · Sep 23, 2019
Related Publication 20210089295A1 · Mar 25, 2021