Litcius/Paper detail

Infrastructure as code for dynamic deployments

Daniel Sokolowski

2022Proceedings of the 30th ACM Joint European Software Engineering Conference and Symposium on the Foundations of Software Engineering16 citationsDOIOpen Access PDF

Abstract

Modern DevOps organizations require a high degree of automation to achieve software stability at frequent changes. Further, there is a need for flexible, timely reconfiguration of the infrastructure, e.g., to use pay-per-use infrastructure efficiently based on application load. Infrastructure as Code (IaC) is the DevOps tool to automate infrastructure. However, modern static IaC solutions only support infrastructures that are deployed and do not change afterward. To implement infrastructures that change dynamically over time, static IaC programs have to be (updated and) re-run, e.g., in a CI/CD pipeline, or configure an external orchestrator that implements the dynamic behavior, e.g., an autoscaler or Kubernetes operator. Both do not capture the dynamic behavior in the IaC program and prevent analyzing and testing the infrastructure configuration jointly with its dynamic behavior.

Topics & Concepts

DevOpsComputer scienceControl reconfigurationAutomationPipeline (software)Code (set theory)SoftwareDistributed computingConfiguration Management (ITSM)Software engineeringSoftware deploymentEmbedded systemOperating systemComputer networkProgramming languageEngineeringMechanical engineeringSet (abstract data type)Software System Performance and ReliabilityAdvanced Software Engineering MethodologiesDistributed systems and fault tolerance