IP Library Granted Patent US 8,949,824
Granted Patent B2
US 8,949,824 · App. 13/631,323 · Granted Feb 3, 2015

Systems and methods for installing, managing, and provisioning applications

Inventors: Tim G. Kimmet (Los Gatos, CA); Ramana Venkatesh Sivasubramanian (Foster City, CA); Kenneth Hansen (San Francisco, CA)
Assignee: Wal-Mart Stores, Inc.
G06F8/61G06F9/50G06F11/07G06F11/00G06F8/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 8,949,824
App. No.
13/631,323
Granted
Feb 3, 2015
Kind
B2
Abstract

Systems and methods are disclosed for provisioning resources for an application according to an application manifest. The resources may include database, network, and processing resources. The application manifest may be organized as a manifest tree with provisioned resources having their own application manifests for provisioning sub-resources. The application manifest may also define provisioning and de-provisioning of the application in response to loading of the application. Root cause analysis may be performed in accordance with the manifest tree. Also disclosed are systems and methods for rolling out an upgrade across a node cluster. Systems and methods are disclosed for routing traffic to different workflow paths in order to implement an overloaded path and evaluate performance of the overloaded path.

Claims (68)

1. A method for installation management comprising:

installing an application on one or more installation computers;

evaluating an application manifest for the application;

automatically provisioning one or more initial resources for the application in accordance with the application manifest;

associating the one or more resources with the application;

processing production tasks and production data by the application using the one or more resources;

evaluating loading of the one or more resources in accordance with the application manifest;

adjusting the one or more resources in accordance with the loading and the application manifest;

configuring the application to use the adjusted one or more resources;

wherein the application manifest defines a manifest tree defining provisioning for the one or more resources and a hierarchy of sub-resources for one or more resources; and

wherein the method further comprises:

detecting a failure in the application;

evaluating data logs documenting the failure;

evaluating the manifest tree to identify a failed resource of the one or more resources and the hierarchy of sub-resources that is a root cause of the failure according to an evaluation of the data logs and the manifest tree; and

reporting the failed resource;

wherein adjusting the one or more initial resources in accordance with the loading and the application manifest to define one or more adjusted resources further comprises:

evaluating historical loading of the one or more resources;

determining anticipated loading in accordance with the historical loading; and

performing one of augmenting and decrementing the one or more resources in accordance with anticipated loading and the application manifest.

2. The method of claim 1 , wherein adjusting the one or more initial resources in accordance with the loading and the application manifest to define one or more adjusted resources further comprises:

detecting an overloaded resource of the one or more resources in accordance with the application manifest; and

provisioning at least one additional resource corresponding to the overloaded resource in accordance with the application manifest.

3. The method of claim 1 , wherein adjusting the one or more initial resources in accordance with the loading and the application manifest to define one or more adjusted resources further comprises:

detecting an underused resource of the one or more resources in accordance with the application manifest; and

releasing the underused resource in accordance with the application manifest.

4. The method of claim 1 , further comprising:

detecting a failure in the application;

evaluating data logs documenting the failure;

evaluating the manifest tree to identify a failed resource of the one or more resources and the hierarchy of sub-resources is a root cause of the failure according to an evaluation of the data logs and the manifest tree; and

replacing the failed resource.

5. The method of claim 1 , wherein the application manifest defines one or more freeze periods, the method further comprising:

refraining from adjusting the one or more resources in accordance with the loading and the application manifest during the one or more freeze periods.

6. The method of claim 1 , wherein the one or more resources include at least one of a database resource, an application server resource, a processing resource, and a web server resource.

7. The method of claim 1 , wherein the one or more resources include at least one of a Cassandra™ database, a JBoss™ server, a Tomcat™ server, and a web server resource.

8. A system for installation management comprising one or more processors and one or more memory devices operably coupled to the one or more processors, the one or more memory devices storing executable and operational code effective to cause the one or more processors to:

install an application on one or more installation computers;

evaluate an application manifest for the application;

automatically provision one or more initial resources for the application in accordance with the application manifest;

associate the one or more resources with the application;

process production tasks and production data by the application using the one or more resources;

evaluate loading of the one or more resources in accordance with the application manifest;

adjust the one or more resources in accordance with the loading and the application manifest; and

configure the application to use the adjusted one or more resources;

wherein the application manifest defines a manifest tree defining provisioning for the one or more resources and a hierarchy of sub-resources for one or more resources; and

wherein the executable and operational data are further effective to cause the one or more processors to:

detect a failure in the application;

evaluate data logs documenting the failure;

evaluate the manifest tree to identify a failed resource of the one or more resources and the hierarchy of sub-resources is a root cause of the failure according to an evaluation of the data logs and the manifest tree; and

report the failed resource;

wherein the executable and operational data are further effective to cause the one or more processors to adjust the one or more initial resources in accordance with the loading and the application manifest to define one or more adjusted by:

evaluating historical loading of the one or more resources;

determining anticipated loading in accordance with the historical loading; and

performing one of augmenting and decrementing the one or more resources in accordance with anticipated loading and the application manifest.

9. The system of claim 8 , wherein the executable and operational data are further effective to cause the one or more processors to adjust the one or more initial resources in accordance with the loading and the application manifest to define one or more adjusted resources by:

detecting an overloaded resource of the one or more resources in accordance with the application manifest; and

provisioning at least one additional resource corresponding to the overloaded resource in accordance with the application manifest.

10. The system of claim 8 , wherein the executable and operational data are further effective to cause the one or more processors to adjust the one or more initial resources in accordance with the loading and the application manifest to define one or more adjusted resources by:

detecting an underused resource of the one or more resources in accordance with the application manifest; and

releasing the underused resource in accordance with the application manifest.

11. The system of claim 8 , wherein the executable and operational data are further effective to cause the one or more processors to:

detect a failure in the application;

evaluate data logs documenting the failure;

evaluate the manifest tree to identify a failed resource of the one or more resources and the hierarchy of sub-resources is a root cause of the failure according to an evaluation of the data logs and the manifest tree; and

replace the failed resource.

12. The system of claim 8 , wherein the application manifest defines one or more freeze periods; and

wherein the executable and operational data are further effective to cause the one or more processors to refrain from adjusting the one or more resources in accordance with the loading and the application manifest during the one or more freeze periods.

13. The system of claim 8 , wherein the one or more resources include at least one of a database resource, an application server resource, a processing resource, and a web server resource.

14. The system of claim 8 , wherein the one or more resources include at least one of a Cassandra™ database, a JBoss™ server, a Tomcat™ server, and a web server resource.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 2, 2018
From: WAL-MART STORES, INC.
To: WALMART APOLLO, LLC
Reel/Frame 045817/0115 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 12, 2012
From: KIMMET, TIM G.; SIVASUBRAMANIAN, RAMANA VENKATESH; HANSEN, KENNETH
To: WAL-MART STORES, INC.
Reel/Frame 029454/0937 →
Continuity (1)
Related Publication 20140096127A1 · Apr 3, 2014