IP Library Granted Patent US 11,567,755
Granted Patent B2
US 11,567,755 · App. 17/377,994 · Granted Jan 31, 2023

Integration of containers with external elements

Inventors: Clayton Myers (Oak Hill, VA); Brett E. Morris (Arlington, VA); Andrew Scott Mears (Leesburg, VA); Shreyas Shah (Vienna, VA); Martin Lucius Bonica (Leesburg, VA)
Assignee: MicroStrategy Incorporated
G06F8/656G06F8/71G06F9/44505G06F9/44526
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,567,755
App. No.
17/377,994
Granted
Jan 31, 2023
Kind
B2
Abstract

Methods, systems, and apparatus, including computer programs encoded on computer-storage media, for integration of containers with external elements. In some implementations, a server environment is provided using one or more containers. The one or more containers include a first container that is an instance of a software image for an application or service. The first container is run such that the first container performs various operations. For example, access to one or more external elements that reside outside of the software image is initiated. Based on the one or more external elements, a configuration of the first container is changed from what is provided by the software image.

Claims (48)

1. A method comprising:

storing, by a server system, a software image for an application or service, wherein the software image includes a reference to a location to access configuration data stored outside the software image, and wherein the software image comprises code that, when invoked, causes a container based on the software image to (i) obtain the configuration data external to the container and (ii) update the container based on the obtained configuration data;

providing, by the server system, a computing environment using one or more containers, the one or more containers comprising a first container that is an instance of the stored software image of the application or service; and

running, by the server system, the first container such that the running first container performs operations including:

based on the reference in the software image, initiating access, by the running first container, to the configuration data that resides outside the software image and outside the running first container; and

changing, based on the accessed configuration data and by the running first container, a configuration of the running first container from what is provided by the software image, wherein changing the configuration of the first container comprises retrieving one or more external elements that are not included in the software image and incorporating the retrieved one or more external elements into the first container.

2. The method of claim 1 , wherein the one or more external elements comprise at least one of a library, an executable, a driver, or code.

3. The method of claim 1 , wherein the software image includes a first software module and is configured to use the first software module, and

wherein changing the configuration of the first container comprises the first container configuring itself to obtain and use a second software module instead of the first software module that is included in the software image.

4. The method of claim 3 , wherein the second software module is an upgraded version of the first software module.

5. The method of claim 1 , wherein running the first container invokes the code in the software image, which causes the operations of initiating access to the configuration data and changing the configuration of the running first container based on the configuration data.

6. The method of claim 1 , wherein the configuration data comprises a configuration file corresponding to the first container or the software image.

7. The method of claim 6 , wherein the configuration file points to a location external to the software image for retrieval of a software module, and

wherein changing the configuration of the first container comprises:

reading contents of the configuration file based on a reference in the software image to the configuration file located outside the software image; and

based on the contents of the configuration file, retrieving the software module from the location external to the software image;

wherein changing the configuration of the first container comprises incorporating the retrieved software module into the first container.

8. The method of claim 6 , wherein the operations comprise determining, by the first container, one or more settings from the configuration file;

wherein changing the configuration of the first container comprises applying to the first container the one or more settings determined from the configuration file.

9. The method of claim 6 , wherein the operations comprise, while the first container is running:

detecting, by the first container, a change to the configuration file or receiving, by the first container, a notification that the configuration file has changed; and

in response to detecting the change or receiving the notification, initiating, by the first container, access to the first container and changing the configuration of the first container based on contents of the changed configuration file.

10. The method of claim 6 , wherein the first container is configured to access the configuration file each time a condition is satisfied in order to determine whether further changes to the first container are needed according to the current contents of the configuration file.

11. The method of claim 10 , wherein the condition comprises invocation of a particular function performed by the first container.

12. The method of claim 1 , wherein the server system associates a stateful set of data with the first container, and the method comprises the server system storing a copy of the stateful set of data in persistent storage such that the stored stateful set of data enables the server system to replicate, for another container running an instance of the software image, a current state of the first container.

13. The method of claim 12 , wherein the one or more external elements are located in the stateful set of data.

14. The method of claim 12 , wherein the one or more external elements are located outside the stateful set of data and are accessed over a computer network.

15. The method of claim 1 , wherein initiating access to one or more external elements and changing the configuration of the first container are performed upon starting the first container.

16. The method of claim 1 , wherein the software image of the application or service includes dependencies required by the first container to run the application or perform the service;

wherein the software image specifies a first configuration that the first container uses when the first container is initially run; and

wherein changing the configuration of the running first container comprises changing, by the running first container in the first configuration, the configuration of the running first container to a second configuration that is different from the first configuration specified by the software image.

17. A system comprising:

one or more computers of a server system; and

one or more non-transitory computer-readable media storing instructions that, when executed, cause the server system to perform operations comprising:

storing, by the server system, a software image for an application or service, wherein the software image includes a reference to a location to access configuration data stored outside the software image, and wherein the software image comprises code that, when invoked, causes a container based on the software image to (i) obtain the configuration data external to the container and (ii) update the container based on the obtained configuration data;

providing, by the server system, a computing environment using one or more containers, the one or more containers comprising a first container that is an instance of the stored software image of the application or service; and

running, by the server system, the first container such that the running first container performs operations including:

based on the reference in the software image, initiating access, by the running first container, to the configuration data that resides outside the software image and outside the running first container; and

changing, based on the accessed configuration data and by the running first container, a configuration of the running first container from what is provided by the software image, wherein changing the configuration of the first container comprises retrieving one or more external elements that are not included in the software image and incorporating the retrieved one or more external elements into the first container.

18. The system of claim 17 , wherein the one or more external elements comprise at least one of a library, an executable, a driver, or code.

19. The system of claim 17 , wherein the software image includes a first software module and is configured to use the first software module, and

wherein changing the configuration of the first container comprises the first container configuring itself to obtain and use a second software module instead of the first software module that is included in the software image.

20. One or more non-transitory computer-readable media storing instructions that, when executed by one or more computers of a server system, cause the server system to perform operations comprising:

storing, by the server system, a software image for an application or service, wherein the software image includes a reference to a location to access configuration data stored outside the software image, and wherein the software image comprises code that, when invoked, causes a container based on the software image to (i) obtain the configuration data external to the container and (ii) update the container based on the obtained configuration data;

providing, by the server system, a computing environment using one or more containers, the one or more containers comprising a first container that is an instance of the stored software image of the application or service; and

running, by the server system, the first container such that the running first container performs operations including:

based on the reference in the software image, initiating access, by the running first container, to the configuration data that resides outside the software image and outside the running first container; and

changing, based on the accessed configuration data and by the running first container, a configuration of the running first container from what is provided by the software image, wherein changing the configuration of the first container comprises retrieving one or more external elements that are not included in the software image and incorporating the retrieved one or more external elements into the first container.

Assignments (5)
CHANGE OF NAME Recorded Sep 19, 2025
From: MICROSTRATEGY INCORPORATED
To: STRATEGY INC
Reel/Frame 072974/0529 →
TERMINATION AND RELEASE OF PATENT SECURITY AGREEMENT AT REEL/FRAME: 056647/0687, REEL/FRAME: 057435/0023, REEL/FRAME: 059256/0247, REEL/FRAME: 062794/0255 AND REEL/FRAME: 066663/0713 Recorded Sep 26, 2024
From: U.S. BANK TRUST COMPANY, NATIONAL ASSOCIATION, AS SUCCESSOR IN INTEREST TO U.S. BANK NATIONAL ASSOCIATION, IN ITS CAPACITY AS COLLATERAL AGENT FOR THE SECURED PARTIES
To: MICROSTRATEGY INCORPORATED; MICROSTRATEGY SERVICES CORPORATION
Reel/Frame 069065/0539 →
SUPPLEMENTARY PATENT SECURITY AGREEMENT Recorded Feb 18, 2022
From: MICROSTRATEGY INCORPORATED; MICROSTRATEGY SERVICES CORPORATION
To: U.S. BANK NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 059256/0247 →
SUPPLEMENTARY PATENT SECURITY AGREEMENT Recorded Sep 2, 2021
From: MICROSTRATEGY INCORPORATED; MICROSTRATEGY SERVICES CORPORATION
To: U.S. BANK NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 057435/0023 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 21, 2021
From: MYERS, CLAYTON; MORRIS, BRETT E.; MEARS, ANDREW SCOTT; SHAH, SHREYAS; BONICA, MARTIN LUCIUS
To: MICROSTRATEGY INCORPORATED
Reel/Frame 056934/0603 →