IP Library Granted Patent US 11,106,455
Granted Patent B2
US 11,106,455 · App. 16/542,058 · Granted Aug 31, 2021

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,106,455
App. No.
16/542,058
Granted
Aug 31, 2021
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 (46)

1. A method comprising:

providing, by a server system, a server environment using one or more containers, the one or more containers comprising a first container that is an instance of a software image of an application or service, wherein the software image includes a reference to a configuration file corresponding to the first container or the software image, the configuration file being located outside the first container, wherein the configuration file indicates a location external to the software image for retrieval of a software module; and

running the first container such that the running first container performs operations including:

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

changing, by the running first container, a configuration of the running first container from what is provided by the software image based on the configuration file, wherein changing the configuration of the running first container comprises:

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

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

incorporating the retrieved software module into the running first container.

2. The method of claim 1 , wherein the incorporated software module comprises 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,

wherein the retrieved software module is a second software module, and

wherein changing the configuration of the running first container comprises the running first container configuring itself to obtain and use the 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 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 running first container, the one or more settings determined from the configuration file.

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

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

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

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

8. The method of claim 7 , wherein the condition comprises invocation of a particular function performed by the running first container.

9. The method of claim 1 , wherein the server system associates a stateful set of data with the running 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 running first container.

10. The method of claim 9 , wherein the configuration file is located in the stateful set of data.

11. The method of claim 9 , wherein the configuration file is located outside the stateful set of data and is accessed over a computer network.

12. The method of claim 1 , wherein initiating access to the configuration file and changing the configuration of the running first container are performed upon starting the first container.

13. A system comprising:

one or more computers; and

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

providing, by a server system, a server environment using one or more containers, the one or more containers comprising a first container that is an instance of a software image of an application or service, wherein the software image includes a reference to a configuration file corresponding to the first container or the software image, the configuration file being located outside the first container, wherein the configuration file indicates a location external to the software image for retrieval of a software module; and

running the first container such that the running first container performs operations including:

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

changing, by the running first container, a configuration of the running first container from what is provided by the software image based on the configuration file, wherein changing the configuration of the running first container comprises:

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

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

incorporating the retrieved software module into the running first container.

14. The system of claim 13 , wherein the incorporated software module comprises a library, an executable, a driver, or code.

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

wherein the retrieved software module is a second software module, and

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

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

providing, by a server system, a server environment using one or more containers, the one or more containers comprising a first container that is an instance of a software image of an application or service, wherein the software image includes a reference to a configuration file corresponding to the first container or the software image, the configuration file being located outside the first container, wherein the configuration file indicates a location external to the software image for retrieval of a software module; and

running the first container such that the running first container performs operations including:

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

changing, by the running first container, a configuration of the running first container from what is provided by the software image based on the configuration file, wherein changing the configuration of the running first container comprises:

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

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

incorporating the retrieved software module into the running 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 →
SECURITY INTEREST Recorded Jun 22, 2021
From: MICROSTRATEGY INCORPORATED
To: U.S. BANK NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 056647/0687 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 25, 2019
From: MYERS, CLAYTON; MORRIS, BRETT E.; MEARS, ANDREW SCOTT; SHAH, SHREYAS; BONICA, MARTIN LUCIUS
To: MICROSTRATEGY INCORPORATED
Reel/Frame 050488/0156 →
Continuity (1)
Related Publication 20210049002A1 · Feb 18, 2021
Cited By (5)
US 12,260,205 US 12,282,758 US 12,346,680 US 12,468,522 US 12,639,106