Smells-sus: Sustainability Smells in IaC
Seif Kosbar, Mohammad Hamdaqa
TL;DR
The paper addresses sustainability in IaC by identifying seven Terraform sustainability smells derived from cloud-provider best practices. It combines grounded theory to define smells, regex-based detection to measure prevalence, and a practitioner survey to validate relevance. The study analyzes 28,327 Terraform scripts across 401 AWS, 137 Azure, and 274 GCP repositories, with 1,860 scripts for qualitative coding; Monolithic Infrastructure is the most prevalent smell at 9.67%, and SS6 and SS2 also appear, highlighting a complex root-cause landscape. The work provides concrete smells, a categorization, and practical mitigation guidance to improve resource efficiency and reduce environmental impact in Terraform-based deployments.
Abstract
Practitioners use Infrastructure as Code (IaC) scripts to efficiently configure IT infrastructures through machine-readable definition files. However, during the development of these scripts, some code patterns or deployment choices may lead to sustainability issues like inefficient resource utilization or redundant provisioning for example. We call this type of patterns sustainability smells. These inefficiencies pose significant environmental and financial challenges, given the growing scale of cloud computing. This research focuses on Terraform, a widely adopted IaC tool. Our study involves defining seven sustainability smells and validating them through a survey with 19 IaC practitioners. We utilized a dataset of 28,327 Terraform scripts from 395 open-source repositories. We performed a detailed qualitative analysis of a randomly sampled 1,860 Terraform scripts from the original dataset to identify code patterns that correspond to the sustainability smells and used the other 26,467 Terraform scripts to study the prevalence of the defined sustainability smells. Our results indicate varying prevalence rates of these smells across the dataset. The most prevalent smell is Monolithic Infrastructure, which appears in 9.67\% of the scripts. Additionally, our findings highlight the complexity of conducting root cause analysis for sustainability issues, as these smells often arise from a confluence of script structures, configuration choices, and deployment contexts.
