Automating Infrastructure Deployment: If a Human Built It, a Human Will Break It

Automating Infrastructure Deployment: If a Human Built It, a Human Will Break It

Series: From Container to Cluster, Part 4 of 4

This series started with a single container and has climbed the stack one layer at a time. Hardened images. Enforced consumption. A locked-down orchestrator. Now the last layer, which is really the first layer: the infrastructure all of it runs on, and how it gets built.

Here is the uncomfortable pattern we see across programs. The workloads are containerized and automated. The pipelines are slick. And underneath it all, the cluster itself was built by an engineer over three weeks, from a mix of scripts, tribal knowledge, and a wiki page that was last accurate in a previous fiscal year. The platform is a pet. Everything on top of it is cattle, but the platform is a pet.

Why hand-built infrastructure fails, specifically

The case for automation is usually made in terms of speed. Speed is real, but it is the least of it. The deeper problems with hand-built infrastructure are these.

Drift. Two clusters built by hand are never the same cluster. Different package versions, different kernel parameters, different "temporary" fixes that became permanent. When something works in one environment and fails in another, the investigation starts with an inventory of differences nobody recorded.

Fragility of knowledge. The cluster's true configuration lives in the head of whoever built it. When that person rotates out, PCSes, or takes a better offer, the program does not lose an engineer. It loses the ability to rebuild its own platform. Every DoD program office has lived some version of this story.

Unverifiable compliance. An assessor asks how the platform was configured. The honest answer for a hand-built system is "carefully, we think." There is no artifact that proves what was done, in what order, from what sources. The evidence is a person's memory and a stack of screenshots.

Upgrade paralysis. Part 3 ended on this. When rebuilding the platform is a three-week heroic effort, upgrades get deferred, and deferred upgrades are accumulating vulnerabilities with a schedule. The cost of change is so high that not changing feels rational, right up until it isn't.

What good looks like

Infrastructure automation done properly has a few defining properties, and they matter more than any particular tool choice.

Declarative, not procedural. You define the desired end state: this Kubernetes version, this OS, these components, this configuration. The tooling computes how to get there. Procedural scripts encode one path from one starting point; declarative definitions survive contact with reality.

Versioned and reviewable. The definition of your infrastructure lives in version control. Changes are proposed, reviewed, and merged like code, because they are code. The answer to "what changed and who approved it" is a commit log, not a meeting.

Deterministic. The same definition produces the same platform. Every time. This is the property that converts infrastructure from craft to engineering, and it is the property assessors can actually build an authorization on.

Rebuildable as a routine. The ultimate test: can you destroy the platform and rebuild it from its definition, without heroics? If yes, disaster recovery is a procedure, upgrades are a rollout, and new sites are a repetition. If no, everything above is decoration.

The airgap is where automation theater gets exposed

Connected environments let you cheat. Tooling can quietly pull whatever it needs from the internet at deploy time, and the automation looks complete because the network is filling in the gaps.

Disconnected environments forgive nothing. Every artifact the platform needs, every container image, every OS package, every binary, every dependency of a dependency, must be identified in advance, collected, verified, and moved across the gap as a coherent bundle. Miss one RPM and the deployment halts on the wrong side of an air gap, where there is no downloading your way out.

This is why we built Pioneer, AlphaBravo's Kubernetes lifecycle platform, around the disconnected deployment as the first-class scenario instead of the afterthought. Pioneer treats the entire platform, from host OS packages to Kubernetes distribution to supporting infrastructure, as a single deterministic, versioned artifact. The deployment workflow on the disconnected side is one binary and one bundle. The operator runs the binary, points it at the bundle, and Pioneer stands up its own embedded registry, bootstraps the control plane, and brings the cluster to its declared state. No internet assumed, ever. A platform that deploys that way in a SCIF deploys effortlessly everywhere else, because the hard case was the design case.

How Pioneer knows exactly what belongs in that bundle, and can prove it to an assessor, is its own story. It involves a component called Prospectr, and it gets a dedicated post following this series.

The payoff, in program terms

Automated infrastructure deployment converts the platform's biggest risks into routine operations.

The new site stands up in hours, identically to the last one. The Kubernetes upgrade that used to be a quarter-long project becomes a tested, reversible rollout. The departure of a key engineer is a personnel event, not a capability loss. And the compliance conversation changes shape entirely: instead of describing how the platform was built, you hand over the definition it was built from and the signed evidence that the build matched it.

Closing the loop

Four posts, one through-line. Consistency, provability, and repeatability at every layer. Hardened images you can attest. Consumption you can enforce. A cluster configured by policy instead of habit. And infrastructure that is an artifact, not an artisanal product.

None of this is theoretical. It is deployed today, in connected and disconnected DoD environments, by teams who got tired of rebuilding the same platform from memory. The stack is learnable, the tooling exists, and the alternative is another year of pets.


Pioneer is AlphaBravo's Kubernetes lifecycle platform, built disconnected-first for DoD and federal environments. Deployed and operated by the engineers who built it.