Class AvailabilityModel

java.lang.Object
com.eqixiac.equinix.design.resilience.AvailabilityModel

public final class AvailabilityModel extends Object
Composes per-element availability assumptions into a figure per workload, in series and in parallel over the graph's redundant paths. All elements are assumed to fail independently.

For a workload with hosts H (primary and, when it has one, standby) and clouds C:

  leg(h, c)    = A(connection) x A(on-ramp)                          when h has its own connection to c
               = A(backbone) x A(metro m) x A(router m) x A(connection) x A(on-ramp)
                                                                      otherwise, over the nearest metro m that has one
  branch(h)    = A(metro h) x A(router h) [if it needs a cloud] x  product over c of leg(h, c)
  core         = (1 - product over h of (1 - branch(h)))  x  product over distinct cloud regions of A(cloud region)
  access(site) = 1 - product over its access circuits of (1 - A(site access))
  end-to-end   = core x (site-weighted mean of access(site))

Approximations, stated in each result's notes: the hosts' branches are treated as independent (exact when each host has its own connections; a branch that borrows another metro's connection shares elements with it, which slightly overstates the result), and a site's access is composed apart from the metros it lands in (their failure is counted in core).