The Definitive Guide toAI Data Centers
Ask the GuideAboutAccount

Chapter 10.5

In this chapter · 6 sections
Term help
Terms in this chapter (75)

Provisioning, Bring-Up & Infrastructure as Code

Declarative, pipeline-driven provisioning decides how many GPU-hours a fleet burns between power-on and the first paid job: at initial bring-up, at every refresh and at every node failure.

ThreadsDensity rampGoodput

What you'll decide here

  1. Redfish, Ironic or MAAS automation versus a documented manual process for admitting racks to the pool, with explicit retries and destructive-test interlocks.
  2. Ansible or Puppet-style configuration versus immutable images, weighed against recovery and drift control; record what can change outside the approved image.
  3. The burn-in and acceptance gates a node must pass before a paying job: duration, thresholds, pass bar. A marginal node strands the whole synchronous job.
  4. Build or buy cluster management: NVIDIA Base Command Manager and Mission Control, or open MAAS/Ironic, Terraform, Ansible and Slurm. Time-to-first-job against lock-in and fleet flexibility.
  5. How a node is drained, repaired, reimaged when needed, re-tested and returned to service without losing its failure history.

By the time this chapter matters, the capital decisions are made. The silicon is bought (Part 7), the racks are integrated and leak-tested at the factory (Chapter 7.14), the fabric is cabled (Part 8), and the node software stack of driver, CUDA/ROCm, NCCL and firmware is specified (Chapter 10.4). What remains is the unglamorous seam that turns all of that into a node a scheduler can place a job on: provisioning and bring-up.

Nobody buys a data center to admire its PXE pipeline, but every day a rack sits powered and unprovisioned is a day of depreciation with no revenue. A fleet earning roughly $12–13B per GW per year defers about $23–25M of contracted revenue a week for every 100 MW still waiting on its first paid job, and about $30k a week for each NVL72-class rack (Chapter 2.2 works through the revenue timing).

One decision repeats at every layer of that seam: whether physical hardware is handled as pets or as cattle. In the pet model, a human follows a runbook: SSH into a BMC, mount an ISO, install an OS, run a few checks, bless the node. That works at ten nodes and fails at ten thousand. In the cattle model, every node is described declaratively, provisioned by a pipeline, validated by an automated gate and reimaged on demand. Only that model survives fleet scale and the generational refresh that defines the 2026 era.

We trace the bare-metal lifecycle (BMC/Redfish to cluster-join), the golden-image versus config-management fork, the burn-in and acceptance gates a node must clear, the build-versus-buy choice on the management platform, and the day-2 loop that makes provisioning continuous rather than one-shot.

The bare-metal lifecycle: from PDU-on to cluster-joined

A bare-metal node has a deterministic lifecycle, and every transition should be machine-driven rather than human-driven. The canonical sequence, as implemented by MAAS, OpenStack Ironic and every neocloud's home-grown equivalent, is enroll → power-control → network-boot → image → configure → validate → join → (eventually) decommission. Each step is an out-of-band (OOB) or in-band operation with its own protocol, and the protocol choice carries consequences.

Enroll and power-control happen out-of-band, through the BMC. The baseboard management controller is a small always-on computer beside the host, reachable on a separate management network even when the host is powered off. Historically you spoke to it with IPMI, a 1998-era protocol with a long CVE history and weak authentication. The modern path is Redfish, a RESTful, JSON, schema-defined DMTF standard that does the same job (power on, off and cycle, set a one-time PXE boot, read sensors, mount virtual media) but can be scripted and secured, and is increasingly the only thing a 2026 platform targets.

The choice has teeth. A fleet still leaning on IPMI inherits a fragile, hard-to-secure management plane, and that becomes a security liability because the BMC is a root-of-trust target (see Chapter 11.4). A fleet standardized on Redfish gets one uniform, auditable OOB API across Dell iDRAC, HPE iLO, Lenovo XCC and Supermicro. Redfish is also how power-smoothing and capping controls reach GB300-class racks at run time, so the management plane you build for provisioning is the one you later use for grid-friendliness (Chapter 4.5).

Network-boot and image happen in-band, over the provisioning fabric. Once the BMC sets a one-time PXE boot and powers the node on, the node network-boots into an ephemeral environment (a small in-memory Linux). That environment writes the real OS image to local disk (MAAS uses curtin, Ironic uses its deploy ramdisk) and hands off to cloud-init for first-boot configuration. Configure applies the node's role: storage layout, network (above all the fabric NIC and RDMA setup) and the pinned node-software stack. Validate runs the acceptance gates described below. Only after the gates pass does the node join the scheduler's pool and become eligible to carry work.

The entire choreography must be expressible as code, parameterized by an inventory, and idempotent, so that re-running it on a flaky node is safe and produces an identical result. MAAS describes it as Allocate → PXE boot → ephemeral environment → curtin → cloud-init → reboot → deployed.

Golden images vs configuration management

Inside the declarative camp sits a second fork that practitioners argue about endlessly. Both answers are defensible, depending on what you optimize for: immutable golden images or live configuration management.

The golden-image model bakes a complete, tested OS into one immutable, versioned, signed artifact: kernel, pinned GPU driver, CUDA/ROCm, NCCL, container runtime, firmware-update tooling and health agents. Provisioning a node means writing that exact image and rebooting, so no per-node configuration step can drift. The payoff is the strongest reproducibility and the smallest drift surface: a node is running golden-image v2026.06.2 or it is not, and 'not' is a clean, detectable state. The cost is that every change, whether a driver bump, a security patch or an agent update, means building, testing and rolling a new image across the fleet. That makes small changes heavyweight and pushes you toward batched releases.

The configuration-management model (Ansible, Puppet, Salt) starts from a thinner base image and converges the node to a desired state by running roles or manifests in place. It is lighter for incremental change (patch one package, re-run the play) and more flexible for heterogeneous fleets. The cost is drift. A long-lived mutable node accumulates state no manifest captures: a hand-fixed config from an incident, a half-applied update, a package installed to debug something at 3 a.m. Over months no two nodes are truly identical. For a fleet whose headline failure mode is 'a marginal node silently degrades a synchronous job', drift is a goodput tax, not a hygiene issue.

The 2026 consensus for AI fleets leans toward immutable golden images for the OS and node-software stack, with thin config management only for per-node state such as hostname, fabric addressing and role labels. The reasoning matches the node-software stack: a synchronous training cluster wants every node bit-for-bit identical, and the cheapest guarantee is to make each node a disposable instance of a versioned artifact rather than a long-lived entity you keep patching. The table below lays out the tradeoff.

Golden image vs configuration management vs hybrid
DimensionImmutable golden imageLive config managementHybrid (default)
ReproducibilityStrongest — node is a versioned artifactWeak over time — converges but driftsStrong — stack is immutable, only per-node state varies
Drift surfaceNear-zero (node is rebuilt, not patched)Large — mutable nodes accumulate untracked stateSmall — confined to declared per-node config
Cost of a small changeHigh — rebuild + test + roll a new imageLow — patch a package, re-run the playMedium — image for the stack, play for the rest
RollbackTrivial — re-deploy the previous imageHard — un-applying state is rarely cleanTrivial for the stack; play-level for the rest
Fit for synchronous trainingExcellent — guarantees node-identical fleetRisky — version skew can hang collectivesExcellent — same guarantee, less rebuild churn
Best whenLarge homogeneous fleet, frequent refreshHeterogeneous fleet, many small bespoke changesAI fleet that wants identity + incremental agility
The practical fork for OS and node-software provisioning on an AI fleet. The 2026 default for synchronous-training clusters is the hybrid: an immutable golden image for the stack, thin config management for per-node state.

Burn-in and acceptance gates: what a node must prove

Provisioning a node is not the same as trusting it. The costliest provisioning mistake on an AI fleet is admitting a marginal node into a synchronous job: one that boots fine and passes a smoke test but fails under sustained thermal and bandwidth load. The whole job moves at the speed of its slowest straggler and restarts from a checkpoint when any node fails. So one bad node does not degrade gracefully; it strands hundreds or thousands of healthy GPUs (Chapter 10.7).

The defense is a burn-in and acceptance gate: a battery of stress and benchmark tests, with explicit pass/fail thresholds, that a node must clear before it enters the schedulable pool. It is the provisioning-side counterpart to the factory burn-in done at integration (Chapter 7.14), and it must be repeated, because nodes that passed at the factory routinely fail again after transport, install and the first thermal cycle in the actual hall.

The mature reference is a phased, subsystem-by-subsystem validation that builds from the single GPU to the full cluster, codified by practitioners like Together AI. The phases run in order: preparation/config, GPU validation, NVLink/NVSwitch, network fabric, storage, end-to-end model build, then continuous observability. A failure is thereby localized to the cheapest layer that can explain it, instead of surfacing as a mysterious slowdown in a full training run. Each phase has specific tools and thresholds.

Phased acceptance gate: subsystem → tool → pass bar
PhaseWhat it provesPrimary toolsRepresentative pass bar
GPU validationEach GPU is present, healthy, thermally stable under sustained load and computing correct resultsDCGM Diagnostics, gpu-burn, a silent-data-corruption (SDC) screenNo XID/SXID errors; no thermal throttle; ECC clean over a multi-hour soak; no wrong answers on the SDC screen
NVLink / NVSwitch (node or NVL72 rack)Every GPU reaches every other GPU in its NVLink domain at spec: eight in an HGX node, 72 across an NVL72 rack’s 18 compute trays and nine switch traysnvbandwidth, NCCL tests; on NVL72 also nvidia-smi fabric and NVLink status, the IMEX domain check (nvidia-imex-ctl), switch-tray health, multinode nvbandwidth and NCCL across all 72 GPUsNode: NVLink bandwidth near spec, no degraded links. Rack: every GPU registered with the fabric with all its NVLinks up (18 on GB200 and GB300), IMEX domain up on every tray, full-domain busbw within tolerance of a golden-rack baseline, no SXid errors
Network fabric (RDMA)IP/TCP reachability baseline, RDMA verbs bandwidth and latency, and collective behavior across the job boundaryiperf3 (IP/TCP baseline); ib_send_bw / ib_write_bw / ib_*_lat; RoCE perftest / rping; NCCL collectivesiperf3 does not validate RDMA. Perftest or rping must meet the project's IB/RoCE bandwidth and latency criteria, and NCCL all_reduce busbw must be within a declared tolerance of a measured golden-node baseline for the purchased node/tray, topology, NCCL build, collective, message-size range and scale
StorageI/O meets the checkpoint/data-load budgetFIORead/write throughput and IOPS meet the storage SLA for the workload
End-to-end model buildThe whole stack delivers expected MFU on a reference jobReference training runAchieved MFU and step time within tolerance of the validated reference
Burn-in soakNo early-life failures under sustained load for the soak duration the project set, with any liquid loop running at full heat loadDCGM + gpu-burn + NCCL loops; for liquid-cooled racks, logs of CDU flow, coolant ΔT and leak sensorsClean run for the duration the project, OEM and contract set, ended by the plan’s stopping rule; liquid-cooled racks also keep coolant flow, ΔT and leak sensors in range throughout
Practitioner-standard validation sequence (Together AI; NVIDIA DGX BasePOD; NVIDIA’s multi-node NVLink user guide for the rack checks). Thresholds are 2026 reference points; fix the bar in writing before the cluster ships.

The fabric gate anchors to a measured baseline, not a portable ratio. Together AI’s August 2024 cluster-testing guide gave roughly 370 GB/s against 400 GB/s as a rule of thumb, without a transferable rank, rail or normalization basis. For each purchased node or tray, freeze a golden-node baseline and tolerance across the topology, NCCL build, collective, message-size range and scale you will run. A result below that tolerance triggers diagnosis of optics, cabling, routing, congestion, NCCL configuration, firmware and PCIe/NUMA placement before admission, because one weak node can slow a whole synchronous job.

On an NVL72-class rack the unit of acceptance is the rack, not the tray. Its 72 GPUs share one NVLink domain through nine switch trays and a copper backplane, so a tray-by-tray gate can pass every tray and still admit a rack with a weak switch tray or a damaged backplane cable. SemiAnalysis’s August 2025 benchmarks blamed early GB200 rack downtime on that backplane and on diagnostics too immature to find faults quickly (Chapter 10.4). Confirm that every GPU has registered with the fabric and has all its NVLinks up, that the IMEX domain is up on every tray and that the switch trays report healthy. Then run multinode nvbandwidth and an NCCL all-reduce across all 72 GPUs against a golden-rack baseline. Chapter 13.7 engineers the fabric side of that gate.

Two more checks belong in the soak. A liquid-cooled rack needs its loop watched at full load: log CDU flow, coolant ΔT and the leak sensors, since a badly seated cold plate or a manifold branch short of flow appears only at sustained power. Every node, air- or liquid-cooled, also gets a silent-data-corruption screen, because a GPU that returns wrong answers raises no error and nothing else in the gate would flag it (Chapter 13.8 covers both checks).

Burn-in has no universal hour count or pass bar. Published reference points run from SemiAnalysis’s 2024 advice of at least 3–4 weeks of factory burn-in down to the 8-hour GPU and network burn-in that opens its 2026 rental evaluations (Chapter 13.8). Set the duration from the OEM’s procedures, the workload’s thermal and power cycles, the contract’s acceptance terms, fleet size and the defect-discovery curve you observe, and write down when you will stop. Freeze pass, re-soak, quarantine and vendor-return criteria in the contract before testing; a timer expiring is not acceptance. ATP-10A above keeps the failed results alongside the repair and the successful rerun, and a missing record keeps the node fenced.

≈370 of 400 GB/s (~92%)estimate
NCCL all_reduce bandwidth Together AI expected on a 400 GB/s fabric (2024 rule of thumb); a golden-node baseline decides
Scope & caveats

Historical rule of thumb only. The project gate requires a declared collective, message size, ranks, library/transport/algorithm, metric normalization, topology and measured baseline tolerance.

1 every ~3 hr (419 in 54 days)
Llama 3 405B on up to 16,384 H100s: unexpected whole-job interruptions (466 counting planned ones); not a per-GPU rate
Scope & caveats

Whole-job interruptions for one run under Meta's event definition; not a per-GPU MTBF, an equipment AFR, facility availability or a scaling law for another fleet size.

Table 5 prints 30.1% beside its 148 faulty-GPU events, but 148 of 419 is 35.3% (the 72 HBM3 events are 17.2%), so the paper's 58.7% GPU share, the sum of the printed percentages, understates the counted 64% (268 of 419). Use the counts and state your denominator.

24–35 min automatic; 43–57 min with manual steps
Time to replace a failed HGX node after an injected fault, end to end (SemiAnalysis ClusterMAX 3.0)
Scope & caveats

HGX-class nodes with hot spares. Fully automatic replacements took 24 min (AWS EKS Auto Mode) and 35 min (Together AI). TensorWave (~43 min) needed a click to approve, and Hyperstack (52 min) and Moonlite (57 min) relied on manual SRE steps. A failed NVL72 tray cannot be hot-swapped: Nebius returned a GB300 node to service automatically in 8 h 40 min. ClusterMAX 1.0 (Mar 2025) said top clouds spin up new nodes within 90 seconds, an unattributed observation rather than a measurement.

often <2 days
Lead time at the fastest neoclouds, first contact to a provisioned 128-GPU cluster (Mar 2025): speed as a sales lever
Scope & caveats

Commercial lead time for two named providers, not a bring-up benchmark. ClusterMAX 3.0 (Sep 2026) reports a Verda cluster provisioned 30 min after purchase.

~$12–13B/GW-yrestimate
Contracted AI-cloud revenue per GW-year: what each week from rack arrival to first paid job defers
Scope & caveats

The denominator is contracted critical IT, not the facility's gross electrical capacity, and the figure is gross revenue brought forward, not profit or NPV. It is SemiAnalysis's rental/IaaS number, and it is contested. SemiAnalysis's Tokenomics model (Aug 2026) puts lab API inference revenue far higher, above $100B/GW/year on a GB300 cluster against about $12B/GW/year of rental cost. That figure comes from a model and moves with utilization and price mix, so keep the two numbers separate.

Build vs buy the cluster-management platform

Everything above can be assembled from open components or bought as an integrated stack. This is the provisioning-layer instance of the build-versus-buy fork that recurs across the platform (Chapter 10.1). The open, assembled path wires together a bare-metal provisioner (MAAS or OpenStack Ironic), an IaC layer (Terraform driving Redfish/Ironic, plus Ansible/cloud-init), a scheduler (Slurm or Kubernetes) and your own health-check and observability glue. The integrated vendor path buys a turnkey product from NVIDIA. Base Command Manager provisions and manages the cluster. Mission Control layers autonomous validation and hardware recovery on top. It supports DGX B200/B300 and DGX and OEM GB200/GB300 NVL72 systems; Vera Rubin is not yet listed (Mission Control 2.3.1, October 2026). Both ship the bring-up, health-check and recovery workflows as a supported product.

The tradeoff is the familiar one. The integrated path compresses time-to-first-job, because the workflows are pre-built, validated against the reference architecture and supported. The price is lock-in: one vendor's hardware and operating model. Base Command Manager costs nothing for an operator's own clusters; the free licence covers up to eight accelerators per system, comes without NVIDIA support and renews yearly. The free licence excludes any organization that resells services built on it, and that clause can catch a neocloud. The premium sits in support, and in the Run:ai, UFM, NetQ and autonomous-recovery features that Mission Control adds.

The open path preserves fleet flexibility: heterogeneous vendors, a second-source GPU such as AMD MI355X on ROCm (version 10.1 as of this writing; the qualified tuple is in Chapter 10.4) and bespoke validation gates. It avoids vendor support and platform licensing, at the cost of carrying the integration and reliability engineering yourself, which is real headcount, not a weekend project.

A workable decision rule: a single-vendor, homogeneous, NVIDIA-reference fleet that values speed-to-revenue over flexibility leans buy. A multi-vendor neocloud that competes on bring-up speed and tenant flexibility, or anyone hedging GPU lock-in, leans build. Even then, the open pipeline's scheduler has a GPU vendor behind it: NVIDIA has owned Slurm's developer, SchedMD, since December 2025 (Chapter 10.1). Many large operators do both, buying the integrated stack for the homogeneous reference pods and building the open pipeline for heterogeneous and experimental capacity.

In September and October 2026 a middle path appeared: NVIDIA open-sourced DSX AI Factory components that grew out of its DGX Cloud operations. The Cluster Readiness Engine (open-sourced in September 2026 under Apache-2.0, v0.7.0 announced at OCP in October 2026) runs workload-simulation stress tests before training and reports failing nodes. It never cordons or modifies a node, so quarantine stays with the operator. Separately, the Rack Management Service handles rack-level firmware. A Cluster API provider for NVIDIA's Infrastructure Controller takes bare metal to a cluster, which NVIDIA says takes hours instead of days. Config Manager configures switches but is in Developer Preview and not recommended for production. All of it is open code that targets NVIDIA hardware. Check each piece's maturity and the hardware it supports before you build an acceptance gate on it.

Deep dive: MAAS/Ironic + Terraform/Redfish — bare-metal-as-code, and why it is an economic lever

The phrase that captures the 2026 shift is bare-metal-as-code: treating a physical rack the way a cloud treats a VM, as a programmable, reservable, declaratively described resource rather than an artifact a technician hand-builds. The reference open stack is MAAS or OpenStack Ironic at the physical layer, exposing each machine through its BMC (Redfish preferred, IPMI legacy). Terraform drives it, so 'allocate, image and configure this rack' is a version-controlled plan, with Ansible/cloud-init handling in-OS convergence. MAAS 3.7 even provisions NVIDIA BlueField-3 DPUs as machines in their own right through the DPU's onboard BMC (commission, deploy, release), extending the same model to the smart-NIC layer.

This is an economic lever because the metric that matters is time from rack to revenue: every week a pipeline saves is a week of contracted revenue that arrives sooner. A declarative pipeline turns a multi-day, technician-bound bring-up into a parameterized run that images and validates racks in parallel, unattended, overnight. Speed also sells: SemiAnalysis reported in March 2025 that Nebius and Crusoe often took a customer from first contact to a provisioned ~128-GPU cluster in under two days.

It also makes the day-2 loop cheap. When the health policy flags a failed node, the hot-spare pool restores tenant capacity. SemiAnalysis injected faults in 2026 and timed how long providers took to replace a failed HGX node end to end. The two fully automatic replacements took 24 minutes (AWS EKS Auto Mode) and 35 minutes (Together AI); providers that needed a click to approve or manual SRE steps took 43 to 57 minutes. SemiAnalysis’s bar is under one hour, with fault detection in about two minutes. Once a spare has taken its place, the failed node follows a separate drain, wipe, re-image, diagnostics, burn-in and re-admission path, measured as remediation time. Rack-scale NVL72 trays cannot be hot-swapped this way: Nebius’s automated process took 8 hours 40 minutes to return a GB300 node to service. GB300 contracts price that in. The most common NVL72 SLA pattern SemiAnalysis reports, which it calls “NVL64+”, counts a rack as down only when three or more of its 18 compute trays have failed at once (Chapter 14.6).

The capital case is straightforward: the engineering cost of building the pipeline is fixed and one-time, while the GPU-hours it saves recur on every node, every refresh, for the life of the fleet. → continuous-recovery framing in Chapter 10.7; the productization of fast provisioning as an SLA in Chapter 10.9.

Day-2 lifecycle: provisioning as a continuous loop

A successful initial deployment tempts teams to file provisioning under done. Two facts say otherwise. Meta’s Llama 3 405B run on up to 16,384 H100s was interrupted about once every three hours (Chapter 10.7), so repair never stops. And a generational hardware refresh arrives on a 12–18 month cadence. Provisioning is therefore a continuous loop, and the same declarative pipeline that did day-0 bring-up runs it. The day-2 cycle is: detect a failing or suspect node → cordon and drain its jobs → wipe and re-image from the current golden image → re-run the acceptance gate → re-admit to the pool (or route to break-fix).

Done well, this loop also catches wear before it reaches a job. Reimaging resets software and configuration drift to the golden baseline; it does not repair hardware. Periodic re-validation, including a pre-allocation burn-in before a node goes to a new tenant, finds hardware that has degraded (rising correctable-ECC rates, weakening optics, throttling) and routes it to break-fix before it strands a synchronous job. Validation-first fleet management has replaced reactive break-fix as standard practice for that reason.

The day-2 loop is also where the density-ramp thread reappears. A refresh is not a like-for-like swap. A hall provisioning GB300 NVL72 today must re-image and re-validate against a new node-software stack, new firmware and new fabric parameters, and again against a heavier power and thermal load as Vera Rubin NVL72 ramps (OEM operating profiles of 188 kW Max Q / 228 kW Max P; NVIDIA's DSX reference design plans 330 kW TDP per cabinet as the facility basis for power and cooling). Rubin Ultra Kyber (~600 kW; NVIDIA targets H2 2027; SemiAnalysis reported 2028 in July 2026) follows. A declarative pipeline absorbs this as a new image version and a new acceptance threshold, while an imperative, pet-based process treats every refresh as a fresh manual project, and the difference compounds across the asset's life. The provisioning architecture you choose at day-0 is, in effect, a bet on how cheaply you can absorb every refresh after it. → refresh execution economics in Chapter 14.9.

Deep dive: the security seam — provisioning is also where supply-chain and firmware trust is established

Bring-up is not only an availability problem. It is the moment the fleet's hardware root of trust is established or forfeited. The OOB management plane you build for provisioning (the BMCs, the Redfish endpoints, the provisioning network) is also a high-value attack surface: a compromised BMC sits below the OS, persists across reimaging and can subvert measured boot. The move from IPMI to Redfish is therefore a security decision as much as an operational one, and the provisioning pipeline must enforce signed golden images, verified firmware (PLDM-over-MCTP, OCP firmware-update spec) and platform attestation at join time, rather than trust that a node is what it claims to be.

The discipline: a node should not enter the schedulable pool until it has (1) booted a signed image, (2) attested its firmware and boot measurements against expected values, and (3) passed the performance acceptance gate. Folding attestation into the join gate that already runs the burn-in tests is the cheap, correct place to do it, because the node is already isolated and under test and the trust check costs nothing extra operationally. Skipping it makes your fast, automated provisioning pipeline also a fast, automated way to admit a tampered or counterfeit node. The canonical treatment of the firmware/BMC root of trust lives in Chapter 11.4; supply-chain provenance and HBOM/RIM in Chapter 11.3.

Anti-patterns

The same provisioning failures recur, and each traces back to treating hardware as pets or skipping a gate:

  • Bring-up that never proves a compatible node state. In a runbook-driven fleet, nodes provisioned weeks apart differ in driver, NCCL or firmware version with no mixed-tuple qualification. The cost stays invisible until a synchronous job hangs on a collective or silently runs at degraded bandwidth. Debugging is slow because the difference is buried in version skew no one tracked (Chapter 10.4).
  • Skipping or shortcutting burn-in to hit a deadline. Nodes that passed a smoke test but never soaked under sustained load get admitted. The marginal ones leak into production and strand synchronous jobs, at a cost far above the GPU-hours the shortcut saved.
  • Mutable long-lived nodes that drift. In a config-management fleet, nodes are patched in place for years while incident-time hand-fixes escape the desired-state record. Repair requires reconciling the desired and observed state, reimaging where needed, and retaining hardware and acceptance history; a golden image alone does not fix a physical fault.
  • Provisioning treated as one-time. A pipeline built for day-0 and abandoned leaves the day-2 loop (drain, reimage, re-validate, re-admit) manual. The fleet then falls behind whenever repairable failures arrive faster than the recovery pipeline can process them, and goodput bleeds out one un-recycled node at a time.

Make admission the final step of a recorded provisioning operation, and repeat the applicable gates after repair. A fenced node costs capacity you can count. A node admitted on a boot-success flag moves that uncertainty into a customer job, where its failure spends everyone else’s GPUs too.

Provisioning sits between the node-software stack it deploys (driver, CUDA/ROCm, NCCL, firmware, the golden stack) in Chapter 10.4 and the scheduler it joins nodes into, in Chapter 10.1 and Chapter 10.2. The acceptance gates here are the deploy-time counterpart of factory burn-in in Chapter 7.14. The continuous day-2 recovery loop is engineered in Chapter 10.7 and observed in Chapter 10.6. Fast provisioning becomes a sellable SLA in Chapter 10.9. The OOB/Redfish management plane is a security root-of-trust surface in Chapter 11.4, with supply-chain provenance in Chapter 11.3. The refresh economics that make a cheap day-2 loop pay off are in Chapter 14.9.
Cite this chapter
Fehn, J. (2026). Provisioning, Bring-Up & Infrastructure as Code (Chapter 10.5). The Definitive Guide to AI Data Centers. https://aidatacenterguide.com/part-10-software-orchestration-and-service-delivery/10-5-provisioning-bring-up-and-infrastructure-as-code (accessed 2026-10-25).
@misc{aidc-10-5,
  author       = {Fehn, Jacob},
  title        = {Provisioning, Bring-Up & Infrastructure as Code (Chapter 10.5)},
  howpublished = {The Definitive Guide to AI Data Centers},
  year         = {2026},
  url          = {https://aidatacenterguide.com/part-10-software-orchestration-and-service-delivery/10-5-provisioning-bring-up-and-infrastructure-as-code},
  note         = {Accessed 2026-10-25}
}
Spotted an error? Suggest an edit