Smelly Variables in Ansible Infrastructure Code: Detection, Prevalence, and Lifetime

Research output: Chapter in Book/Report/Conference proceedingConference paper

4 Citations (Scopus)
412 Downloads (Pure)

Abstract

Infrastructure as Code is the practice of automating the provisioning, configuration, and orchestration of network nodes using code in which variable values such as configuration parameters, node hostnames, etc. play a central role. Mistakes in these values are an important cause of infrastructure defects and corresponding outages. Ansible, a popular IaC language, nonetheless features semantics which can cause confusion about the value of variables.
In this paper, we identify six novel code smells related to Ansible’s intricate variable precedence rules and lazy-evaluated template expressions. Their detection requires an accurate representation of control and data flow, for which we transpose the program dependence graph to Ansible. We use the resulting detector to empirically investigate the prevalence of these variable smells in 21,931 open-source Ansible roles, uncovering 31,334 unique smell instances across 4,260 roles. We observe an upward trend in the number of variable smells over time, that it may take a long time before they are fixed, and that code changes more often introduce new smells than fix existing ones. Our results are a call to arms for more in-depth quality checkers for IaC code, and highlight the importance of transcending syntax in IaC research.
Original languageEnglish
Title of host publicationProceedings of MSR ’22: Proceedings of the 19th International Conference on Mining Software Repositories (MSR 2022)
PublisherACM
Pages61-72
Number of pages12
ISBN (Electronic)978-1-4503-9303-4
DOIs
Publication statusPublished - 21 Jun 2022
Event19th International Conference on Mining Software Repositories (MSR 2022) - Pittsburgh, United States
Duration: 18 May 202224 May 2022
Conference number: 2022
https://conf.researchr.org/home/msr-2022

Publication series

NameProceedings - 2022 Mining Software Repositories Conference, MSR 2022

Conference

Conference19th International Conference on Mining Software Repositories (MSR 2022)
Abbreviated titleMSR
Country/TerritoryUnited States
CityPittsburgh
Period18/05/2224/05/22
Internet address

Keywords

  • Infrastructure as Code
  • Ansible
  • code smells
  • program dependence graphs
  • empirical study
  • software quality

Fingerprint

Dive into the research topics of 'Smelly Variables in Ansible Infrastructure Code: Detection, Prevalence, and Lifetime'. Together they form a unique fingerprint.

Cite this