USING CANARY INSTANCES FOR SOFTWARE ANALYSIS
First Claim
1. A method for evaluating a second version of software, comprising:
- selectively routing incoming requests to software instances within a plurality of software instances, wherein the plurality of software instances comprises a plurality of baseline instances and a plurality of canary instances, wherein the plurality of baseline instances are running a first version of the software, and the plurality of canary instances are running the second version of the software;
monitoring the plurality of software instances to collect performance data for a plurality of performance metrics;
calculating a plurality of aggregate baseline performance metrics, wherein each of the plurality of aggregate baseline performance metrics corresponds to one of the plurality of performance metrics, and wherein each of the plurality of aggregate baseline performance metrics is calculated based on the collected performance data for the plurality of baseline instances, relating to a corresponding one of the plurality of performance metrics;
for each of the plurality of performance metrics and for each of the plurality of canary instances, calculating a relative performance value that measures the collected performance data for the respective canary instance and for the respective performance metric, relative to the corresponding aggregate baseline performance metric from the plurality of aggregate baseline performance metrics; and
calculating a final overall measure of performance for the second version of software, based on the relative performance values.
1 Assignment
0 Petitions
Accused Products
Abstract
Techniques for evaluating a second version of software. Embodiments selectively route incoming requests to software instances within a plurality of baseline instances and a plurality of canary instances, where the baseline instances run a first software version and the canary instances run the second software version. The software instances are monitored to collect performance data for a plurality of performance metrics. Embodiments calculate aggregate baseline performance metrics, where each of the aggregate baseline performance metrics is calculated based on the collected performance data for the plurality of baseline instances. For each of the performance metrics and canary instances, embodiments calculate a relative performance value that measures the collected performance data for the respective canary instance and for the respective performance metric, relative to the corresponding aggregate baseline performance metric. A final measure of performance is calculated for the second version of software, based on the relative performance values.
17 Citations
24 Claims
-
1. A method for evaluating a second version of software, comprising:
-
selectively routing incoming requests to software instances within a plurality of software instances, wherein the plurality of software instances comprises a plurality of baseline instances and a plurality of canary instances, wherein the plurality of baseline instances are running a first version of the software, and the plurality of canary instances are running the second version of the software; monitoring the plurality of software instances to collect performance data for a plurality of performance metrics; calculating a plurality of aggregate baseline performance metrics, wherein each of the plurality of aggregate baseline performance metrics corresponds to one of the plurality of performance metrics, and wherein each of the plurality of aggregate baseline performance metrics is calculated based on the collected performance data for the plurality of baseline instances, relating to a corresponding one of the plurality of performance metrics; for each of the plurality of performance metrics and for each of the plurality of canary instances, calculating a relative performance value that measures the collected performance data for the respective canary instance and for the respective performance metric, relative to the corresponding aggregate baseline performance metric from the plurality of aggregate baseline performance metrics; and calculating a final overall measure of performance for the second version of software, based on the relative performance values. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A non-transitory computer-readable medium containing a program that, when executed, performs an operation for evaluating a second version of software, the operation comprising:
-
selectively routing incoming requests to software instances within a plurality of software instances, wherein the plurality of software instances comprises a plurality of baseline instances and a plurality of canary instances, wherein the plurality of baseline instances are running a first version of the software, and the plurality of canary instances are running the second version of the software; monitoring the plurality of software instances to collect performance data for a plurality of performance metrics; calculating a plurality of aggregate baseline performance metrics, wherein each of the plurality of aggregate baseline performance metrics corresponds to one of the plurality of performance metrics, and wherein each of the plurality of aggregate baseline performance metrics is calculated based on the collected performance data for the plurality of baseline instances, relating to a corresponding one of the plurality of performance metrics; for each of the plurality of performance metrics and for each of the plurality of canary instances, calculating a relative performance value that measures the collected performance data for the respective canary instance and for the respective performance metric, relative to the corresponding aggregate baseline performance metric from the plurality of aggregate baseline performance metrics; and calculating a final overall measure of performance for the second version of software, based on the relative performance values. - View Dependent Claims (10, 11, 12, 13, 14, 15, 16)
-
-
17. A system, comprising:
-
a processor; and a memory containing a program that, when executed by the processor, performs an operation for evaluating a second version of software, comprising; selectively routing incoming requests to software instances within a plurality of software instances, wherein the plurality of software instances comprises a plurality of baseline instances and a plurality of canary instances, wherein the plurality of baseline instances are running a first version of the software, and the plurality of canary instances are running the second version of the software; monitoring the plurality of software instances to collect performance data for a plurality of performance metrics; calculating a plurality of aggregate baseline performance metrics, wherein each of the plurality of aggregate baseline performance metrics corresponds to one of the plurality of performance metrics, and wherein each of the plurality of aggregate baseline performance metrics is calculated based on the collected performance data for the plurality of baseline instances, relating to a corresponding one of the plurality of performance metrics; for each of the plurality of performance metrics and for each of the plurality of canary instances, calculating a relative performance value that measures the collected performance data for the respective canary instance and for the respective performance metric, relative to the corresponding aggregate baseline performance metric from the plurality of aggregate baseline performance metrics; and calculating a final overall measure of performance for the second version of software, based on the relative performance values. - View Dependent Claims (18, 19, 20, 21, 22, 23, 24)
-
Specification