# US 12,217,082 B2 · Methods and systems for automating deployment of applications in a multi-tenant database environment

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

- Number: US 12,217,082 B2
- Document ID: US12217082B2
- Status: Granted
- Kind: B2
- Application number: 18/486,527
- Filed: 2023-10-13
- Published: 2024-02-01
- Granted: 2025-02-04
- Earliest claimed: 2010-05-18
- Assignees: Salesforce, Inc.
- Applicants: Salesforce, Inc.
- Inventors: Pallav Kothari; Phillip Oliver Metting van Rijn
- Web page: https://patentgrep.com/patent/US12217082B2

## CPC

- G06F 9/465: {Distributed object oriented systems (remote method invocation [RMI] G06F9/548)}
- G06F 8/60: Software deployment
- G06F 9/5016: {the resource being the memory}
- G06F 9/54: Interprogram communication
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

In accordance with embodiments disclosed herein, there are provided mechanisms and methods for automating deployment of applications in a multi-tenant database environment. For example, in one embodiment, mechanisms include managing a plurality of machines operating as a machine farm within a datacenter by executing an agent provisioning script at a control hub, instructing the plurality of machines to download and instantiate a lightweight agent; pushing a plurality of URL (Uniform Resource Locator) references from the control hub to the instantiated lightweight agent on each of the plurality of machines specifying one or more applications to be provisioned and one or more dependencies for each of the applications; and loading, via the lightweight agent at each of the plurality of machines, the one or more applications and the one or more dependencies for each of the one or more applications into memory of each respective machine.

## Claims

### Claim 1

A method to deploy an application upgrade to a deployment group, the deployment group comprising machines of a machine farm, the method comprising:
executing, via a processor and a memory of a control hub of the machine farm, a code deployment agent to obtain the application upgrade, wherein the executing the code deployment agent comprises:
accessing a list specifying a location of each of the machines of the machine farm to be provided the application upgrade;
retrieving, by the code deployment agent, a unique reference to determine a respective Uniform Resource Locator (URL) from which to load the application upgrade and one or more dependencies for the application upgrade for each of the machines;
loading, by the code deployment agent, the application upgrade and the one or more dependencies from the URL into memory for each of the machines; and
executing one or more applications containing the application upgrade from the memory of the machine.

### Claim 2 (depends on 1)

The method of claim 1, wherein the code deployment agent loads the application upgrade according to the list specifying the location of each of the machines of the machine farm to be provided the application upgrade.

### Claim 3 (depends on 1)

The method of claim 1, wherein the retrieving is from a plurality of URL references.

### Claim 4 (depends on 1)

The method of claim 1, wherein the deployment group comprises a portion of the machines of the machine farm.

### Claim 5 (depends on 1)

The method of claim 1, wherein the machines are tagged for identification during deployment.

### Claim 6 (depends on 1)

The method of claim 1, wherein the executing the code deployment agent further comprises loading a provisioning script to each of the machines of the machine farm to be provided the application upgrade.

### Claim 7 (depends on 1)

The method of claim 1, wherein the unique references specify one or more of the following characteristics of the application upgrades: (i) name; (ii) file type; (iii) version identifier; (iv) electronic tag; (v) commit ID; (vi) assigned user name; and (vii) assigned group name.

### Claim 8 (depends on 1)

The method of claim 1, wherein the loading the application upgrade into the memory of the machine comprises:
allocating a respective memory space for the application upgrade within the memory of the machine; and
associating a dynamically generated class loader for the application upgrade within the respective memory space allocated to the application upgrade.

### Claim 9 (depends on 1)

The method of claim 1, wherein the machine farm is operating within a datacenter.

### Claim 10

Non-transitory computer readable storage media having instructions stored thereon that, when executed by a control hub of a machine farm having access to a processor and memory, cause a machine to perform operations comprising:
executing, via the processor and the memory of the control hub of the machine farm, a code deployment agent to obtain an application upgrade, wherein the executing the code deployment agent comprises:
accessing a list specifying a location of each of the machines of the machine farm to be provided the application upgrade;
retrieving, by the code deployment agent, a unique reference to determine a respective Uniform Resource Locator (URL) from which to load the application upgrade and one or more dependencies for the application upgrade for each of the machines;
loading, by the code deployment agent, the application upgrade and the one or more dependencies from the URL into memory for each of the machines; and
executing one or more applications containing the application upgrade from the memory of the machine.

### Claim 11 (depends on 10)

The non-transitory computer readable storage media of claim 10, wherein the code deployment agent loads the application upgrade according to the list specifying the location of each of the machines of the machine farm to be provided the application upgrade.

### Claim 12 (depends on 10)

The non-transitory computer readable storage media of claim 10, wherein the retrieving is from a plurality of URL references.

### Claim 13 (depends on 10)

The non-transitory computer readable storage media of claim 10, wherein the machines are tagged for identification during deployment.

### Claim 14 (depends on 10)

The non-transitory computer readable storage media of claim 10, wherein the executing the code deployment agent further comprises loading a provisioning script to each of the machines of the machine farm to be provided the application upgrade.

### Claim 15 (depends on 10)

The non-transitory computer readable storage media of claim 10, wherein the unique references specify one or more of the following characteristics of the application upgrades: (i) name; (ii) file type; (iii) version identifier; (iv) electronic tag; (v) commit ID; (vi) assigned user name; and (vii) assigned group name.

### Claim 16 (depends on 10)

The non-transitory computer readable storage media of claim 10, wherein the loading the application upgrade into the memory of the machine comprises:
allocating a respective memory space for the application upgrade within the memory of the machine; and
associating a dynamically generated class loader for the application upgrade within the respective memory space allocated to the application upgrade.

### Claim 17 (depends on 10)

The non-transitory computer readable storage media of claim 10, wherein the machine farm is operating within a datacenter.

### Claim 18

A system configured to deploy an application upgrade to a deployment group, the deployment group comprising machines of a machine farm, the system comprising:
a memory to store instructions;
a processor to execute the instructions stored in the memory, wherein the instructions, when executed by the processor, cause the system to perform operations comprising:
executing a code deployment agent to obtain the application upgrade, wherein the executing the code deployment agent comprises:
accessing a list specifying a location of each of the machines of the machine farm to be provided the application upgrade;
retrieving, by the code deployment agent, a unique reference to determine a respective Uniform Resource Locator (URL) from which to load the application upgrade and one or more dependencies for the application upgrade for each of the machines;
loading, by the code deployment agent, the application upgrade and the one or more dependencies from the URL into memory for each of the machines; and
executing one or more applications containing the application upgrade from the memory of the machine.

### Claim 19 (depends on 18)

The system of claim 18, wherein the code deployment agent loads the application upgrade according to the list specifying the location of each of the machines of the machine farm to be provided the application upgrade.

### Claim 20 (depends on 18)

The system of claim 18, wherein the executing the code deployment agent further comprises loading a provisioning script to each of the machines of the machine farm to be provided the application upgrade.
