# US 2021/0240734 A1 · Deployment of container-based computer environments

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 2021/0240734 A1
- Document ID: US20210240734A1
- Status: Published application
- Kind: A1
- Application number: 16/780,868
- Filed: 2020-02-03
- Published: 2021-08-05
- Earliest claimed: 2020-02-03
- Assignees: MicroStrategy Incorporated
- Applicants: MicroStrategy Incorporated
- Inventors: Shreyas Shah; Michael David Hudson; Jay Indravadan Shah; Clayton Myers; Jehan Jayant Sethna
- Web page: https://patentgrep.com/patent/US20210240734A1

## CPC

- G06F 16/283: {Multi-dimensional databases or data warehouses, e.g. MOLAP or ROLAP}
- G06F 8/63: {Image based installation; Cloning; Build to order}
- G06F 9/45558: {Hypervisor-specific management and integration aspects}
- G06F 9/5072: {Grid computing}
- G06F 9/54: Interprogram communication
- G06F 16/285: {Clustering or classification}
- G06F 2009/45562: {Creating, deleting, cloning virtual machine instances}
- G06F 2009/45595: {Network integration; Enabling network access in virtual machine instances}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

Methods, systems, and apparatus, including computer programs encoded on computer-storage media, for deployment of container-based computer environments. In some implementations, one or more computers provide data for a user interface comprising one or more user interface elements for initiating creation of a new container-based server environment. The one or more computers receive data indicating user interaction with the one or more user interface elements, and in response, create a new container-based server environment comprising multiple different containers hosted by a remote cluster of processing nodes, the multiple different containers being configured to provide different services that interoperate with each other. The one or more computers provide access to the new container-based server environment.

## Claims

### Claim 1

A method performed by one or more computers, the method comprising:
providing, by the one or more computers, data for a user interface, the user interface comprising one or more user interface elements for initiating creation of a new container-based server environment;
receiving, by the one or more computers, data indicating user interaction with the one or more user interface elements;
in response to receiving the data indicating user interaction with the one or more user interface elements, creating, by the one or more computers, a new container-based server environment comprising multiple different containers hosted by a remote cluster of processing nodes, the multiple different containers being configured to provide different services that interoperate with each other; and
providing, by the one or more computers, access to the new container-based server environment.

### Claim 2 (depends on 1)

The method of claim 1, wherein the new container-based server environment is generated based on a predetermined set of configuration information without receiving any user-specified operating parameters for the new container-based server environment.

### Claim 3 (depends on 1)

The method of claim 1, wherein the one or more user interface elements are a single user interface element, wherein interaction with the single user interface element causes the one or more computers to initiate creation of the multiple different containers of the new server environment without further interaction from the user.

### Claim 4 (depends on 1)

The method of claim 1, comprising:
in response to receiving data indicating interaction with the one or more user interface elements, presenting a prompt having a control for receiving user input specifying an identifier for the new container-based server environment; and
receiving, through the prompt, an identifier for the new container-based server environment;
wherein the new container-based server environment is created in response to receiving the identifier for the new container-based server environment.

### Claim 5 (depends on 1)

The method of claim 1, wherein providing access to the new container-based server environment comprises:
indicating the new container-based server environment on a management interface and providing one or more tools to adjust configuration of the new container-based server environment; or
operating the new container-based server environment to receive and respond to requests from one or more client devices.

### Claim 6 (depends on 1)

The method of claim 1, wherein creating the new container-based server environment comprises:
accessing stored configuration data that (i) specifies a predetermined set of software images in a repository to use in generating new container-based server environments and (ii) indicates operations to initialize the containers generated using the predetermined set of software images.

### Claim 7 (depends on 6)

The method of claim 6, wherein creating the new container-based server environment comprises:
retrieving, from the repository, each of the software images in the predetermined set of software images;
generating a container on the cluster for each of the predetermined set of software images; and
performing the operations indicated by the stored configuration data to initialize the containers, wherein the operations configure the containers to communicate with each other through an application programming interface.

### Claim 8 (depends on 1)

The method of claim 1, wherein creating the new container-based server environment comprises:
accessing a data set indicating characteristics of an installed instance of a software application; and
configuring the multiple different containers to replicate the characteristics of the installed instance of the software application.

### Claim 9 (depends on 8)

The method of claim 8, wherein the data set comprises metadata, one or more data cubes, and/or one or more data caches.

### Claim 10 (depends on 8)

The method of claim 8, wherein the data set is an archive or file system that indicates an application state of the application, and
wherein configuring the multiple different containers comprises configuring the multiple different containers to have the same application state indicated by the archive or file system.

### Claim 11 (depends on 1)

The method of claim 1, wherein creating the new container-based server environment comprises generating data structures configured to store state information for the multiple different containers in a manner that persists after the containers are stopped and unloaded.

### Claim 12 (depends on 1)

The method of claim 1, comprising receiving, using the one or more user interface elements, input to the user interface that indicates (i) a cluster of processing nodes, (ii) credential information for accessing the cluster, and (iii) a data source indicating a previous installation of one or more software packages;
wherein creating the new container-based server environment comprises:
running one or more executable or interpretable scripts;
retrieving software images for the containers;
loading the containers based on the software images;
extracting data files of the one or more software packages from the data source;
distributing copies of the extracted data files among the containers; and
altering configuration information for the containers based on the extracted data files.

### Claim 13 (depends on 1)

The method of claim 1, wherein the cluster is a cluster of processing nodes of a remote cloud-computing-based server system operated by a third party.

### Claim 14 (depends on 1)

The method of claim 1, wherein the multiple different containers each implement a customized application programming interface layer for communicating among the containers.

### Claim 15 (depends on 1)

The method of claim 1, wherein the cluster provides a first management application programming interface (API) for control of the containers; and
wherein the multiple different containers each implement a second management API for control of the containers, the second management API enabling communication with each of the multiple different containers over a network from a management application on a client device separate from management functionality provided by the cluster.

### Claim 16 (depends on 1)

The method of claim 1, wherein the cluster is a Kubernetes cluster.

### Claim 17 (depends on 1)

The method of claim 1, wherein the multiple different containers are configured to interoperate to provide online analytical processing (OLAP) capabilities to a plurality of remote client devices over a network.

### Claim 18 (depends on 1)

The method of claim 1, wherein the multiple different containers provide at least one of:
multidimensional OLAP (MOLAP);
relational OLAP (ROLAP); or
hybrid OLAP that divides data between relational and specialized storage.

### Claim 19

A system comprising:
one or more computers; and
one or more computer-readable media storing instructions that, when executed by the one or more computers, cause the one or more computers to perform operations comprising:
providing, by the one or more computers, data for a user interface, the user interface comprising one or more user interface elements for initiating creation of a new container-based server environment;
receiving, by the one or more computers, data indicating user interaction with the one or more user interface elements;
in response to receiving the data indicating user interaction with the one or more user interface elements, creating, by the one or more computers, a new container-based server environment comprising multiple different containers hosted by a remote cluster of processing nodes, the multiple different containers being configured to provide different services that interoperate with each other; and
providing, by the one or more computers, access to the new container-based server environment.

### Claim 20

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 the one or more computers, data for a user interface, the user interface comprising one or more user interface elements for initiating creation of a new container-based server environment;
receiving, by the one or more computers, data indicating user interaction with the one or more user interface elements;
in response to receiving the data indicating user interaction with the one or more user interface elements, creating, by the one or more computers, a new container-based server environment comprising multiple different containers hosted by a remote cluster of processing nodes, the multiple different containers being configured to provide different services that interoperate with each other; and
providing, by the one or more computers, access to the new container-based server environment.
