Class DesignGraphBuilder
java.lang.Object
com.eqixiac.equinix.design.resilience.DesignGraphBuilder
Builds the
DesignGraph of a spec on a portfolio. Pure: the same spec, portfolio, placement,
context and options give the same graph.
What the graph holds and what is assumed
- One metro node per portfolio metro, with the catalogue's region and geo zones.
- One Cloud Router per metro when the design has cloud connections or more than one metro (the Layer-3 hub for cloud and inter-metro traffic, as the Deployment Wizard plans it), attached to its metro. Inter-metro backbone edges join every pair of routers with Fabric's round trip (measured where Fabric publishes it, estimated otherwise); their capacity is not provisioned by the spec and is left unknown, so it never constrains the simulation.
- One on-ramp per (cloud, metro) cloud leg of the
PlacementPlan, a cloud connection from the metro's router to it, and a provider link on to the cloud node. A connection's capacity is the bandwidth of the sized workloads it carries as primary plusstandbyCapacityFractionof those it carries as standby; unknown when it carries only unsized workloads. Its role is primary when it carries any workload as primary. - Each site has access circuits into its
accessHomingnearest portfolio metros by known round trip (the nearest is primary). Access capacity is unknown (the spec states none). A site with no known latency to any portfolio metro has no access edge and is reported as unknown. - Each workload has a hosting edge to its primary metro and, when it has one, its standby metro.
- Optional peer nodes, from peering data, joined to the portfolio metros where the peer is present.
-
Method Summary
Modifier and TypeMethodDescriptionstatic DesignGraphbuild(DesignContext context, MetroPortfolio portfolio, PlacementPlan plan, ResilienceOptions options, List<PeerPresence> peers) Builds the graph.static DesignGraphbuild(DesignContext context, MetroPortfolio portfolio, ResilienceOptions options) Builds the graph, placing the workloads withWorkloadPlacer.static List<PeerPresence> peers(PeeringIntelligenceResult result, DesignSpec spec) Peer presence from a peering analysis, forbuild(DesignContext, MetroPortfolio, PlacementPlan, ResilienceOptions, List): one entry per analysed network with every metro where it is present.
-
Method Details
-
build
public static DesignGraph build(DesignContext context, MetroPortfolio portfolio, ResilienceOptions options) Builds the graph, placing the workloads withWorkloadPlacer.- Parameters:
context- the facts of the run (its spec is the design)portfolio- the metrosoptions- build options- Returns:
- the graph
-
build
public static DesignGraph build(DesignContext context, MetroPortfolio portfolio, PlacementPlan plan, ResilienceOptions options, List<PeerPresence> peers) Builds the graph.- Parameters:
context- the facts of the run (its spec is the design)portfolio- the metrosplan- where every workload runs onportfoliooptions- build options;nullfor the defaultspeers- peer presence to draw in; may be empty- Returns:
- the graph
-
peers
Peer presence from a peering analysis, forbuild(DesignContext, MetroPortfolio, PlacementPlan, ResilienceOptions, List): one entry per analysed network with every metro where it is present.- Parameters:
result- a peering analysisspec- the design whosePeerIntents name the networks, ornullfor every analysed network- Returns:
- the presence, in ASN order
-