Class SimulatedResilienceObjective
java.lang.Object
com.eqixiac.equinix.design.resilience.SimulatedResilienceObjective
- All Implemented Interfaces:
Objective
"simulated_resilience": the share of a portfolio's baseline service that survives its worst single-element
failure, 0 to 100, measured by building the design graph and simulating every metro, Cloud Router,
on-ramp and connection loss (
N1Survival). A workload's service is the site weight that still
reaches it within its limits times the share of its bandwidth its cloud connections still carry, so
"survives at 40% capacity" scores 40, not 100. Larger is better.
Richer than the built-in resilience objective (which only removes metros and counts
what is left): it sees Cloud Routers, on-ramps, single connections, capacity and failover latency.
Contributed by ResiliencePlugin; weight it in a spec with
objectives.weights.simulated_resilience.
-
Field Summary
FieldsFields inherited from interface Objective
COMPLIANCE, COST, LATENCY, PROVIDER_COVERAGE, RESILIENCEModifier and TypeFieldDescriptionstatic final StringShare of the stated compliance and sovereignty zones the portfolio satisfies, 0 to 100.static final StringTotal monthly cost of the portfolio in the spec's currency.static final StringSite-weighted round-trip latency from the sites to their nearest metro in the portfolio, in ms.static final StringShare of the required clouds and service providers reachable from the portfolio, 0 to 100.static final StringHow well the portfolio survives losing a metro or a region, 0 to 100. -
Constructor Summary
ConstructorsConstructorDescriptionAlways evaluates, with the default options.SimulatedResilienceObjective(ResilienceOptions options, boolean onlyWhenWeighted) -
Method Summary
Modifier and TypeMethodDescriptionevaluate(MetroPortfolio portfolio, DesignContext context) Measures a portfolio.id()scale(DesignContext context) A percentage is its own score.unit()
-
Field Details
-
ID
-
-
Constructor Details
-
SimulatedResilienceObjective
public SimulatedResilienceObjective()Always evaluates, with the default options. -
SimulatedResilienceObjective
- Parameters:
options- graph and simulation optionsonlyWhenWeighted- whentrue, a spec that gives "simulated_resilience" no positive weight (after its profile is applied) gets an unknown value without simulating, which keeps a large search fast; the explanation says so
-
-
Method Details
-
id
- Specified by:
idin interfaceObjective- Returns:
- the id weights refer to (for example
Objective.LATENCY); stable, lower_snake_case
-
direction
-
scale
A percentage is its own score. -
unit
- Specified by:
unitin interfaceObjective- Returns:
- the unit of
ObjectiveValue.value(), for display (for examplems,USD/month,score)
-
evaluate
Description copied from interface:ObjectiveMeasures a portfolio.- Specified by:
evaluatein interfaceObjective- Parameters:
portfolio- the metros of one candidate designcontext- the facts of this run- Returns:
- the measurement, or
ObjectiveValue.unknown(String)when it cannot be made
-