Infrastructure as Code: Final Report

White Paper
This project explored infrastructure as code (IaC), developing prototype tools and automatically generating deployment scripts from architecture models.
Publisher

Software Engineering Institute

Abstract

This report concludes work on a research project to explore the feasibility of infrastructure as code, summarizing the problem addressed by the research, the research solution approach, and results. Infrastructure as code (IaC) is a set of practices that use code to set up virtual machines and networks, install packages, and configure environments. Successful IaC adoption by software sustainers requires a broad set of skills and knowledge. This project addresses the problem of accelerating IaC adoption among software sustainment organizations. Our goal was to answer this question:

Our approach included developing prototype tools to inventory the system computing nodes, applying heuristic rules to make sense of the inventory, populating a model of the deployment architecture, and automatically generating IaC scripts from that model.