×

Using canary instances for software analysis

  • US 10,318,399 B2
  • Filed: 03/12/2013
  • Issued: 06/11/2019
  • Est. Priority Date: 03/12/2013
  • Status: Active Grant
First Claim
Patent Images

1. A method for evaluating a second version of a software application program, comprising:

  • selectively routing, via a load balancing algorithm, incoming requests to a plurality of baseline software instances of the software application program executing on a plurality of hardware platforms and a plurality of canary software instances of the software application program also executing on the plurality of hardware platforms, wherein each of the plurality of baseline software instances comprises a first version of the software application program, each of the plurality of canary software instances comprises the second version of the software application program;

    collecting, via one or more hardware processors, performance data for a plurality of performance metrics measuring a performance of one or more computing devices related to the plurality of baseline software instances executing on the plurality of hardware platforms;

    collecting, via the one or more hardware processors, performance data for the plurality of performance metrics measuring a performance of one or more other computing devices related to the plurality of canary software instances executing on the plurality of hardware platforms;

    for each of the plurality of performance metrics;

    calculating, via the one or more hardware processors, an aggregate baseline performance metric for the performance metric by averaging the performance data measuring the performance of the one or more computing devices related to the plurality of baseline software instances; and

    calculating, via the one or more hardware processors, a performance value for each canary software instance included in the plurality of canary software instances by calculating a difference between the aggregate baseline performance metric for the performance metric and the performance data measuring the performance of the one or more other computing devices related to a corresponding canary software instance; and

    calculating, via the one or more hardware processors, a final measure of performance for the second version of the software application program by at least one of;

    calculating an average of the performance values calculated for the canary software instances included in the plurality of canary software instances;

    calculating one or more variances of the performance data for one or more of the canary software instances included in the plurality of canary software instances relative to one or more of the aggregate baseline performance metrics calculated for the plurality of baseline software instances; and

    calculating an average variance of the performance data for the canary software instances included in the plurality of canary software instances relative to the aggregate baseline performance metrics calculated for the plurality of baseline software instances.

View all claims
  • 1 Assignment
Timeline View
Assignment View
    ×
    ×