IP Library Granted Patent US 11,924,035
Granted Patent B2
US 11,924,035 · App. 17/863,352 · Granted Mar 5, 2024

Systems and methods for continuous configuration deployment

Inventors: Nicholas Hall (Mclean, VA); Hamza Muraj (Austin, TX); Jason Free (Sanford, NC); John Montgomery (Arlington, VA); James Schweiger (Palo Alto, CA); Matthew Levan (Arlington, VA); Thomas Montague (Washington, DC)
Assignee: Palantir Technologies Inc.
H04L41/082G06F8/65G06F9/44505H04L41/08H04L41/085H04L41/0859H04L67/34H04L67/62G06F8/70
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,924,035
App. No.
17/863,352
Granted
Mar 5, 2024
Kind
B2
Abstract

Systems and methods are provided for providing continuous configuration deployment. A configuration definition object may be obtained from a remote datastore. The obtained configuration definition object may be stored in a local datastore. The configuration definition object may be obtained and stored in advance of a scheduled maintenance. The configuration definition object may be obtained in response to the configuration definition object being committed to the remote datastore. The configuration definition object may be used to generate different configuration objects. A configuration object may be generated from the configuration definition object and one or more system characteristics. A service request may be received, and the configuration object may be executed to perform a configuration of a computing system.

Claims (61)

1. A server system comprising:

one or more processors; and

memory storing instructions that, when executed by the one or more processors, cause the server system to perform:

receiving, over a communication network, a configuration request for a configuration definition object from a first remote server, wherein the configuration definition object is configured to generate one or more configuration objects, the configuration objects comprising one or more application programming interfaces (APIs), the configuration objects permitting, upon execution by the one or more processors, checking of stack compliancy, remote controlling, authorization or authentication;

determining whether the configuration definition object is stored in a datastore of the server system;

in response to determining that the configuration definition object is not stored in the datastore, receiving the configuration definition object from a second remote server;

in response to receiving the configuration definition object from the second remote server, determining whether the server system comprises a handler compatible with the one or more APIs; and

in response to determining that the server system is missing the handler, requesting the handler or execution of the handler from the second remote server, a third remote server, or a central server.

2. The server system of claim 1 , wherein:

the receiving of the configuration definition object is over a path comprising one or more intermediate sub servers traversing the path between the second remote server and the first remote server, and

the configuration definition object is cached at an intermediate sub server of the one or more intermediate sub servers traversing the path.

3. The server system of claim 2 , wherein the instructions further cause the server system to perform:

in response to receiving the configuration definition object from the second remote server, temporarily caching the configuration definition object within the datastore;

receiving a second configuration request for the configuration definition object from the third remote server; and

provisioning the configuration definition object to the third remote server.

4. The server system of claim 3 , wherein the instructions further cause the server system to perform:

in response to temporarily caching the configuration definition object within the datastore, committing the configuration definition object to one or more repositories within the datastore, and wherein the provisioning of the configuration definition object is automatic in response to committing the configuration definition object.

5. The server system of claim 4 , wherein the one or more repositories comprise a version control repository that stores different versions of the configuration definition object.

6. The server system of claim 1 , wherein the configuration definition object comprises files, scripts, and binaries.

7. The server system of claim 1 , wherein the receiving of the configuration definition object from the second remote server comprises:

receiving the configuration definition object from a central server if the central server is operational and a connection between the server system and the central server is operational; and

receiving the configuration definition object from the third remote server if the central server is down or if the connection between the server system and the central server is lost.

8. The server system of claim 1 , wherein the configuration definition object generates different configuration objects based on one or more characteristics of a node to which a configuration is to be applied.

9. A method implemented by a server system including one or more processors and storage media storing machine-readable instructions, wherein the method is performed using the one or more processors, the method comprising:

receiving, over a communication network, a configuration request for a configuration definition object from a first remote server, wherein the configuration definition object is configured to generate one or more configuration objects, the configuration objects comprising one or more application programming interfaces (APIs), the configuration objects permitting, upon execution by the one or more processors, checking of stack compliancy, remote controlling, authorization or authentication;

determining whether the configuration definition object is stored in a datastore of the server system;

in response to determining that the configuration definition object is not stored in the datastore, receiving the configuration definition object from a second remote server;

in response to receiving the configuration definition object from the second remote server, determining whether the server system comprises a handler compatible with the one or more APIs; and

in response to determining that the server system is missing the handler, requesting the handler or execution of the handler from the second remote server, a third remote server, or a central server.

10. The method of claim 9 , wherein:

the receiving of the configuration definition object is over a path comprising one or more intermediate sub servers traversing the path between the second remote server and the first remote server, and

the configuration definition object is cached at an intermediate sub server of the one or more intermediate sub servers traversing the path.

11. The method of claim 10 , wherein the method further comprises:

in response to receiving the configuration definition object from the second remote server, temporarily caching the configuration definition object within the datastore;

receiving a second configuration request for the configuration definition object from the third remote server; and

provisioning the configuration definition object to the third remote server.

12. The method of claim 11 , further comprising:

in response to temporarily caching the configuration definition object within the datastore, committing the configuration definition object to one or more repositories within the datastore, and wherein the provisioning of the configuration definition object is automatic in response to committing the configuration definition object.

13. The method of claim 12 , wherein the one or more repositories comprise a version control repository that stores different versions of the configuration definition object.

14. The method of claim 12 , wherein the configuration definition object comprises files, scripts, and binaries.

15. The method of claim 12 , wherein the receiving of the configuration definition object from the second remote server comprises:

receiving the configuration definition object from a central server if the central server is operational and a connection between the server system and the central server is operational; and

receiving the configuration definition object from the third remote server if the central server is down or if the connection between the server system and the central server is lost.

16. A non-transitory computer-readable medium of a server system storing a set of instructions that, when executed by one or more processors of the server system, cause the server system to perform a method comprising:

receiving, over a communication network, a configuration request for a configuration definition object from a first remote server, wherein the configuration definition object is configured to generate one or more configuration objects, the configuration objects comprising one or more application programming interfaces (APIs), the configuration objects permitting, upon execution by the one or more processors, checking of stack compliancy, remote controlling, authorization or authentication;

determining whether the configuration definition object is stored in a datastore of the server system;

in response to determining that the configuration definition object is not stored in the datastore, receiving the configuration definition object from a second remote server;

in response to receiving the configuration definition object from the second remote server, determining whether the server system comprises a handler compatible with the one or more APIs; and

in response to determining that the server system is missing the handler, requesting the handler or execution of the handler from the second remote server, a third remote server, or a central server.

17. The non-transitory computer-readable medium of claim 16 , wherein:

the receiving of the configuration definition object is over a path comprising one or more intermediate sub servers traversing the path between the second remote server and the first remote server, and

the configuration definition object is cached at an intermediate sub server of the one or more intermediate sub servers traversing the path.

18. The non-transitory computer-readable medium of claim 17 , wherein the method further comprises:

in response to receiving the configuration definition object from the second remote server, temporarily caching the configuration definition object within the datastore;

receiving a second configuration request for the configuration definition object from the third remote server; and

provisioning the configuration definition object to the third remote server.

19. The non-transitory computer-readable medium of claim 18 , wherein the method further comprises:

in response to temporarily caching the configuration definition object within the datastore, committing the configuration definition object to one or more repositories within the datastore, and wherein the provisioning of the configuration definition object is automatic in response to committing the configuration definition object.

20. The non-transitory computer-readable medium of claim 16 , wherein the receiving of the configuration definition object from a different server comprises:

receiving the configuration definition object from a central server if the central server is operational and a connection between the server system and the central server is operation; and

receiving the configuration definition object from a second remote server if the central server is down or if the connection between the server system and the central server is lost.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 22, 2024
From: HALL, NICHOLAS; MURAJ, HAMZA; FREE, JASON; MONTGOMERY, JOHN; SCHWEIGER, JAMES; LEVAN, MATTHEW; MONTAGUE, THOMAS
To: PALANTIR TECHNOLOGIES INC.
Reel/Frame 066199/0896 →
Continuity (5)
Continuation 17013500 · Sep 4, 2020
Continuation 16361071 · Mar 21, 2019
Continuation 15787335 · Oct 18, 2017
Provisional Application 62507095 · May 16, 2017
Related Publication 20220353136A1 · Nov 3, 2022