IP Library › Granted Patent US 9,268,589
Granted Patent B2
US 9,268,589 · App. 13/315,342 · Granted Feb 23, 2016

Method and system for deploying multiple distributed application stacks on a target machine

Inventors: Andre Arcilla (San Jose, CA); Konstantin Boudnik (Castro Valley, CA); Roman V. Shaposhnik (Sunnyvale, CA)
Assignee: YAHOO! INC.
G06F9/45558G06F8/60
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 9,268,589
App. No.
13/315,342
Granted
Feb 23, 2016
Kind
B2
Abstract

Method, system, and programs for automatically deploying a plurality of distributed application stacks on a target machine. A plurality of virtual environments isolated from each other are first created on the target machine through which a user has access to a plurality of clusters. A distributed application stack is deployed from the plurality of distributed application stacks in a respective virtual environment created on the target machine. The plurality of distributed application stacks are deployed in the plurality of clusters. Based on the deployed distributed application stack, each of the virtual environments is then associated with a corresponding cluster.

Claims (57)

1. A method, implemented on at least one machine, each of the at least one machine having at least one processor, storage, and a communication platform connected to a network for automatically deploying a plurality of distributed application stacks on a target machine, the method comprising the steps of:

in each of a plurality of clusters, deploying at least one cluster-side software artifact of one of the plurality of distributed application stacks, wherein the at least one cluster-side software artifact is associated with a version that uniquely identifies the distributed application stack which the at least one cluster-side software artifact belongs to;

creating a plurality of virtual environments on the target machine through which a user has access to the plurality of clusters remotely, wherein the plurality of virtual environments are isolated from each other;

in each of the plurality of virtual environments, deploying at least one target-side software artifact of one of the plurality of distributed application stacks, wherein the at least one target-side software artifact is associated with a version that uniquely identifies the distributed application stack which the at least one target-side software artifact belongs to; and

associating each of the plurality of virtual environments with one of the plurality of clusters by matching the version of the at least one target-side software artifact deployed in the virtual environment with the version of the at least one cluster-side software artifact deployed in the cluster, wherein deploying at least one target-side software artifact comprises:

receiving an instruction to be used to direct the target machine to deploy the at least one target-side software artifact in the virtual environment;

identifying the at least one target-side software artifact from the plurality of target-side software artifacts for the virtual environment based on the instruction;

determining the version of the at least one target-side software artifact for the virtual environment based on the instruction;

fetching the at least one target-side software artifact in the determined version to the target machine; and

installing the at least one target-side software artifact in the determined version in the virtual environment of the target machine.

2. The method of claim 1 , further comprising:

receiving a request from a user to access one of the plurality of clusters through the target machine;

identifying one of the plurality of virtual environments created on the target machine that is associated with the cluster in accordance with the request; and

invoking at least some of the target-side software artifacts in the distributed application stack deployed in the identified virtual environment.

3. The method of claim 1 , wherein

at least one resource associated with the target machine is allocated to each of the virtual environments; and

the at least one target-side software artifact deployed in each virtual environment is capable of accessing the at least one resource allocated to the virtual environment.

4. The method of claim 1 , wherein the instruction includes an identifier for the virtual environment.

5. The method of claim 1 , wherein each of the target-side software artifacts and cluster-side software artifacts is in a version controlled package format.

6. A system having at least one processor, storage, and a communication platform connected to a network for automatically deploying a plurality of distributed application stacks on a target machine, comprising:

a deployment module implemented on the at least one processor and configured to

in each of a plurality of clusters, deploy at least one cluster-side software artifact of one of the plurality of distributed application stacks, wherein the at least one cluster-side software artifact is associated with a version that uniquely identifies the distributed application stack which the at least one cluster-side software artifact belongs to, and

in each of a plurality of virtual environments created on the target machine, at least one target-side software artifact of one of the plurality of distributed application stacks, wherein the at least one target-side software artifact is associated with a version that uniquely identifies the distributed application stack which the at least one target-side software artifact belongs to; and

a virtual environment manager implemented on the at least one processor and configured to:

create a plurality of virtual environments on the target machine through which a user has access to the plurality of clusters remotely, wherein the plurality of virtual environments are isolated from each other, and

associate each of the plurality of virtual environments with one of the plurality of clusters by matching the version of the at least one target-side software artifact deployed in the virtual environment with the version of the at least one cluster-side software artifact deployed in the cluster, wherein the deployment module comprises:

a node deployment unit configured to receive an instruction to be used to direct the target machine to deploy the at least one target-side software artifact in the virtual environment, identify the at least one target-side software artifact from the plurality of target-side software artifacts for the virtual environment based on the instruction, and determine the version of the at least one target-side software artifact for the virtual environment based on the instruction,

a fetching unit configured to fetch the at least one target-side software artifact in the determined version to the target machine, and

an installation unit configured to install the at least one target-side software artifact in the determined version in the virtual environment of the target machine.

7. The system of claim 6 , wherein the virtual environment manager is further configured to:

receive a request from a user to access one of the plurality of clusters through the target machine;

identify one of the plurality of virtual environments created on the target machine that is associated with the cluster in accordance with the request; and

invoking at least some of the target-side software artifacts in the distributed application stack deployed in the identified virtual environment.

8. The system of claim 6 , wherein

at least one resource associated with the target machine is allocated to each of the virtual environments; and

the at least one target-side software artifact deployed in each virtual environment is capable of accessing the at least one resource allocated to the virtual environment.

9. The system of claim 6 , wherein the instruction includes an identifier for the virtual environment.

10. The system of claim 6 , wherein each of the target-side software artifacts and cluster-side software artifacts is in a version controlled package format.

11. A machine-readable tangible and non-transitory medium having information recorded thereon for automatically deploying a plurality of distributed application stacks on a target machine, wherein the information, when read by the machine, causes the machine to perform the following:

in each of a plurality of clusters, deploying at least one cluster-side software artifact of one of the plurality of distributed application stacks, wherein the at least one cluster-side software artifact is associated with a version that uniquely identifies the distributed application stack which the at least one cluster-side software artifact belongs to;

creating a plurality of virtual environments on the target machine through which a user has access to the plurality of clusters remotely, wherein the plurality of virtual environments are isolated from each other;

in each of the plurality of virtual environments, deploying at least one target-side software artifact of one of the plurality of distributed application stacks, wherein the at least one target-side software artifact is associated with a version that uniquely identifies the distributed application stack which the at least one target-side software artifact belongs to; and

associating each of the plurality of virtual environments with one of the plurality of clusters by matching the version of the at least one target-side software artifact deployed in the virtual environment with the version of the at least one cluster-side software artifact deployed in the cluster, wherein deploying at least one target-side software artifact comprises:

receiving an instruction to be used to direct the target machine to deploy the at least one target-side software artifact in the virtual environment;

identifying the at least one target-side software artifact from the plurality of target-side software artifacts for the virtual environment based on the instruction;

determining the version of the at least one target-side software artifact for the virtual environment based on the instruction;

fetching the at least one target-side software artifact in the determined version to the target machine; and

installing the at least one target-side software artifact in the determined version in the virtual environment of the target machine.

12. The medium of claim 11 , further comprising:

receiving a request from a user to access one of the plurality of clusters through the target machine;

identifying one of the plurality of virtual environments created on the target machine that is associated with the cluster in accordance with the request; and

invoking at least some of the target-side software artifacts in the distributed application stack deployed in the identified virtual environment.

13. The medium of claim 11 , wherein

at least one resource associated with the target machine is allocated to each of the virtual environments; and

the at least one target-side software artifact deployed in each virtual environment is capable of accessing the at least one resource allocated to the virtual environment.

14. The medium of claim 11 , wherein the instruction includes an identifier for the virtual environment.

15. The medium of claim 11 , wherein each of the target-side software artifacts and cluster-side software artifacts is in a version controlled package format.

Assignments (9)
CORRECTIVE ASSIGNMENT TO CORRECT THE THE ASSIGNOR NAME PREVIOUSLY RECORDED AT REEL: 052853 FRAME: 0153. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Mar 29, 2021
From: R2 SOLUTIONS LLC
To: STARBOARD VALUE INTERMEDIATE FUND LP, AS COLLATERAL AGENT
Reel/Frame 056832/0001 →
CORRECTIVE ASSIGNMENT TO CORRECT THE ASSIGNEE NAME PREVIOUSLY RECORDED ON REEL 053654 FRAME 0254. ASSIGNOR(S) HEREBY CONFIRMS THE RELEASE OF SECURITY INTEREST GRANTED PURSUANT TO THE PATENT SECURITY AGREEMENT PREVIOUSLY RECORDED. Recorded Dec 30, 2020
From: STARBOARD VALUE INTERMEDIATE FUND LP
To: R2 SOLUTIONS LLC
Reel/Frame 054981/0377 →
RELEASE OF SECURITY INTEREST IN PATENTS Recorded Jul 8, 2020
From: STARBOARD VALUE INTERMEDIATE FUND LP
To: ACACIA RESEARCH GROUP LLC; AMERICAN VEHICULAR SCIENCES LLC; BONUTTI SKELETAL INNOVATIONS LLC; CELLULAR COMMUNICATIONS EQUIPMENT LLC; INNOVATIVE DISPLAY TECHNOLOGIES LLC; LIFEPORT SCIENCES LLC; LIMESTONE MEMORY SYSTEMS LLC; MOBILE ENHANCEMENT SOLUTIONS LLC; MONARCH NETWORKING SOLUTIONS LLC; NEXUS DISPLAY TECHNOLOGIES LLC; PARTHENON UNIFIED MEMORY ARCHITECTURE LLC; R2 SOLUTIONS LLC; SAINT LAWRENCE COMMUNICATIONS LLC; STINGRAY IP SOLUTIONS LLC; SUPER INTERCONNECT TECHNOLOGIES LLC; TELECONFERENCE SYSTEMS LLC; UNIFICATION TECHNOLOGIES LLC
Reel/Frame 053654/0254 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 25, 2020
From: EXCALIBUR IP, LLC
To: R2 SOLUTIONS LLC
Reel/Frame 053459/0059 →
PATENT SECURITY AGREEMENT Recorded Jun 5, 2020
From: ACACIA RESEARCH GROUP LLC; AMERICAN VEHICULAR SCIENCES LLC; BONUTTI SKELETAL INNOVATIONS LLC; CELLULAR COMMUNICATIONS EQUIPMENT LLC; INNOVATIVE DISPLAY TECHNOLOGIES LLC; LIFEPORT SCIENCES LLC; LIMESTONE MEMORY SYSTEMS LLC; MERTON ACQUISITION HOLDCO LLC; MOBILE ENHANCEMENT SOLUTIONS LLC; MONARCH NETWORKING SOLUTIONS LLC; NEXUS DISPLAY TECHNOLOGIES LLC; PARTHENON UNIFIED MEMORY ARCHITECTURE LLC; R2 SOLUTIONS LLC; SAINT LAWRENCE COMMUNICATIONS LLC; STINGRAY IP SOLUTIONS LLC; SUPER INTERCONNECT TECHNOLOGIES LLC; TELECONFERENCE SYSTEMS LLC; UNIFICATION TECHNOLOGIES LLC
To: STARBOARD VALUE INTERMEDIATE FUND LP, AS COLLATERAL AGENT
Reel/Frame 052853/0153 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 3, 2016
From: YAHOO! INC.
To: EXCALIBUR IP, LLC
Reel/Frame 038950/0592 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 1, 2016
From: EXCALIBUR IP, LLC
To: YAHOO! INC.
Reel/Frame 038951/0295 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 18, 2016
From: YAHOO! INC.
To: EXCALIBUR IP, LLC
Reel/Frame 038383/0466 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 9, 2011
From: ARCILLA, ANDRE; BOUDNIK, KONSTANTIN; SHAPOSHNIK, ROMAN V.
To: YAHOO! INC.
Reel/Frame 027354/0632 →
Continuity (1)
Related Publication 20130152078A1 · Jun 13, 2013