Safe host deployment for a heterogeneous host fleet
First Claim
1. A computer-implemented method for deploying updates to hosts in a set of hosts, the method comprising performing computer-implemented operations for:
- identifying one or more host attributes for individual hosts in a set of hosts;
computing a hash value for the identified host attributes for the individual hosts in the set of hosts;
dividing the set of hosts into one or more groups, each group comprising hosts having a same hash value for the identified host attributes;
assigning a priority to individual groups of the one or more groups;
building a pilot host set by selecting hosts for the pilot host set from groups assigned a higher priority before hosts from groups assigned a lower priority, such that the number of hosts in the pilot host set does not exceed a host count limit, wherein one or more head groups or tail groups is selected as the pilot host set, a head group having a group size larger than an average group size for the one or more groups and a tail group having a group size smaller than an average group size for the one or more groups;
deploying an update to hosts contained in the pilot host set;
determining that deploying the update to the hosts contained in the pilot host set is successful; and
deploying the update to at least a portion of the hosts in the set of hosts in response to determining that deploying the update to the hosts contained in the pilot host set is successful.
1 Assignment
0 Petitions
Accused Products
Abstract
Technologies are described herein for deploying an update to hosts in a heterogeneous host fleet. One or more relevant host attributes for hosts in the host fleet are identified. Hosts in the fleet of hosts are classified into groups based on the identified relevant host attributes. A pilot host set is built by selecting one or more hosts from one or more of the groups according to a pilot host selection criteria. The update is deployed to the hosts included in the pilot host set as a test deployment. If the test deployment is successful, the update is deployed to the remaining hosts in the fleet of hosts; otherwise, the deployment is modified to continue the deployment to a subset of the host or to cancel the deployment and to restore the hosts in the pilot host set to their previous states. An analysis may be conducted based on the deployment data to provide recommendations for future deployments.
-
Citations
14 Claims
-
1. A computer-implemented method for deploying updates to hosts in a set of hosts, the method comprising performing computer-implemented operations for:
-
identifying one or more host attributes for individual hosts in a set of hosts; computing a hash value for the identified host attributes for the individual hosts in the set of hosts; dividing the set of hosts into one or more groups, each group comprising hosts having a same hash value for the identified host attributes; assigning a priority to individual groups of the one or more groups; building a pilot host set by selecting hosts for the pilot host set from groups assigned a higher priority before hosts from groups assigned a lower priority, such that the number of hosts in the pilot host set does not exceed a host count limit, wherein one or more head groups or tail groups is selected as the pilot host set, a head group having a group size larger than an average group size for the one or more groups and a tail group having a group size smaller than an average group size for the one or more groups; deploying an update to hosts contained in the pilot host set; determining that deploying the update to the hosts contained in the pilot host set is successful; and deploying the update to at least a portion of the hosts in the set of hosts in response to determining that deploying the update to the hosts contained in the pilot host set is successful. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. A system for deploying updates to hosts, the system comprising:
-
a set of hosts to which an update is to be deployed; and at least one computing device executing a host deployment module configured to; identify one or more host attributes for individual hosts in the set of hosts; compute a hash value for the identified host attributes for the individual hosts in the set of hosts; divide the set of hosts into one or more groups, each group comprising hosts having a same hash value for the identified host attributes; assign a priority to individual groups of the one or more groups; build a pilot host set by selecting hosts for the pilot host set from groups assigned a higher priority before hosts from groups assigned a lower priority, such that the number of hosts in the pilot host set does not exceed a host count limit, wherein one or more head groups or tail groups is selected as the pilot host set, a head group having a group size larger than an average group size for the one or mere groups and a tail group having a group size smaller than an average group size for the one or more groups; deploy the update to hosts contained in the pilot host set; determine that deploying the update to the hosts contained in the pilot host set is successful; and cause the update to be deployed to at least a portion of the hosts in the set of hosts in response to determining that deploying the update to the hosts contained in the pilot host set is successful. - View Dependent Claims (8, 9, 10, 11)
-
-
12. A non-transitory computer-readable storage medium having computer-executable instructions stored thereupon which, when executed by a computer, cause the computer to:
-
identify one or more host attributes for individual hosts in a set of hosts; compute a hash value for the identified host attributes for the individual hosts in the set of hosts; divide the set of hosts into one or more groups, each croup comprising hosts having a same hash value for the identified host attributes; assign a priority to individual groups of the one or more groups; build a pilot host set by selecting hosts for the pilot host set from groups assigned a higher priority before hosts from groups assigned a lower priority, such that the number of hosts in the pilot host set does not exceed a host count limit, wherein one or more head groups or tail groups is selected as the pilot host set, a head group having a group size larger than an average group size for the one or more groups and a tail group having a group size smaller than an average group size for the one or more groups; deploy an update to hosts contained in the pilot host set; determine that deploying the update to the hosts contained in the pilot host set is successful; and deploy the update to at least a portion of the hosts in the set of hosts in response to determining that deploying the update to the hosts contained in the pilot host set is successful. - View Dependent Claims (13)
-
-
14. The non-transitory computer-readable storage medium of 12, further comprising computer executable instructions which, when executed by the computer, cause the computer to collect data regarding deploying the update to the hosts in the set of hosts, wherein the one or more host attributes are identified by analyzing the collected data.
Specification