Deployment of software applications on server clusters
Assigneesalesforce.com, inc.
InventorsGopi Krishna Mudumbai, Ram Narsimhamurty Mantri Pragada, Jayant Kumar
Life of this patent
Estimating the term…
Abstract
Disclosed are some implementations of systems, apparatus, methods and computer program products for deploying software applications on server clusters. Characteristics of the server clusters are used to generate a deployment plan indicating an order in which the server clusters are to be updated and a timing with which the server clusters are to be updated. The characteristics of a server cluster can include a risk rating associated with the server cluster, an amount of traffic processed by the server cluster, and/or a size of the server cluster.
Claims20
A system comprising:
- a database system implemented using a server system, the database system configurable to cause:
- identifying a plurality of server clusters on which to deploy software including a set of computer-readable instructions, each of the server clusters including a plurality of servers;
- retrieving a plurality of risk ratings, each of the risk ratings being associated with a corresponding one of the plurality of server clusters;
- ascertaining, for each server cluster of the plurality of server clusters, an amount of traffic processed by the server cluster and a size of the server cluster, the size of the server cluster indicating a number of servers in the server cluster;
- generating a deployment plan indicating a deployment order and a deployment timing based, at least in part, on the plurality of risk ratings, the amount of traffic processed by each of the server clusters, and the size of each of the server clusters, the deployment order indicating an order in which deployment is to proceed on the server clusters, the deployment timing indicating a timing with which the software is to be deployed on the server clusters;
- and deploying the software on the server clusters based, at least in part, on the deployment plan, wherein deploying the software includes:
- installing the software on at least a first one of the server clusters according to the deployment plan;
- dynamically updating the deployment plan based, at least in part, on 1) a minimum confidence measure threshold associated with the risk rating of a server cluster of a first subset of the server clusters on which the software has not been deployed and 2) a confidence measure of a status of deployment of the software on at least a second subset of the server clusters on which the software has been deployed;
- and installing the software on at least a second one of the server clusters according to the updated deployment plan.
A computer program product comprising one or more non-transitory computer-readable media having computer-readable program code stored therein, the program code capable of being executed by one or more processors, the program code comprising computer-readable instructions configurable to cause:
- identifying a plurality of server clusters on which to deploy software including a set of computer-readable instructions, each of the server clusters including a plurality of servers;
- retrieving a plurality of risk ratings, each of the risk ratings being associated with a corresponding one of the plurality of server clusters;
- ascertaining, for each server cluster of the plurality of server clusters, an amount of traffic processed by the server cluster and a size of the server cluster, the size of the server cluster indicating a number of servers in the server cluster;
- generating a deployment plan indicating a deployment order and a deployment timing based, at least in part, on the plurality of risk ratings, the amount of traffic processed by each of the server clusters, and the size of each of the server clusters, the deployment order indicating an order in which deployment is to proceed on the server clusters, the deployment timing indicating a timing with which the software is to be deployed on the server clusters;
- and deploying the software on the server clusters based, at least in part, on the deployment plan, wherein deploying the software includes:
- installing the software on at least a first one of the server clusters according to the deployment plan;
- dynamically updating the deployment plan based, at least in part, on 1) a minimum confidence measure threshold associated with the risk rating of a server cluster of a first subset of the server clusters on which the software has not been deployed and 2) a confidence measure of a status of deployment of the software on at least a second subset of the server clusters on which the software has been deployed;
- and installing the software on at least a second one of the server clusters according to the updated deployment plan.
A method, comprising:
- identifying a plurality of server clusters on which to deploy software including a set of computer-readable instructions, each of the server clusters including a plurality of servers;
- retrieving a plurality of risk ratings, each of the risk ratings being associated with a corresponding one of the plurality of server clusters;
- ascertaining, for each server cluster of the plurality of server clusters, an amount of traffic processed by the server cluster and a size of the server cluster, the size of the server cluster indicating a number of servers in the server cluster;
- generating a deployment plan indicating a deployment order and a deployment timing based, at least in part, on the plurality of risk ratings, the amount of traffic processed by each of the server clusters, and the size of each of the server clusters, the deployment order indicating an order in which deployment is to proceed on the server clusters, the deployment timing indicating a timing with which the software is to be deployed on the server clusters;
- and deploying the software on the server clusters based, at least in part, on the deployment plan, wherein deploying the software includes:
- installing the software on at least a first one of the server clusters according to the deployment plan;
- dynamically updating the deployment plan based, at least in part, on 1) a minimum confidence measure threshold associated with the risk rating of a server cluster of a first subset of the server clusters on which the software has not been deployed and 2) a confidence measure of a status of deployment of the software on at least a second subset of the server clusters on which the software has been deployed;
- and installing the software on at least a second one of the server clusters according to the updated deployment plan.
Dependencies are inferred from the claim text.