Litcius/Paper detail

The do’s and don’ts of infrastructure code: A systematic gray literature review

Indika Kumara, Martín Garriga, Angel Urbano Romeu, Dario Di Nucci, Fabio Palomba, Damian A. Tamburri, Willem‐Jan van den Heuvel

2021Information and Software Technology59 citationsDOIOpen Access PDF

Abstract

Infrastructure-as-code (IaC) is the DevOps tactic of managing and provisioning software infrastructures through machine-readable definition files, rather than manual hardware configuration or interactive configuration tools. From a maintenance and evolution perspective, the topic has picked the interest of practitioners and academics alike, given the relative scarcity of supporting patterns and practices in the academic literature. At the same time, a considerable amount of gray literature exists on IaC. Thus we aim to characterize IaC and compile a catalog of best and bad practices for widely used IaC languages, all using gray literature materials. In this paper, we systematically analyze the industrial gray literature on IaC, such as blog posts, tutorials, white papers using qualitative analysis techniques. We proposed a definition for IaC and distilled a broad catalog summarized in a taxonomy consisting of 10 and 4 primary categories for best practices and bad practices, respectively, both language-agnostic and language-specific ones, for three IaC languages, namely Ansible, Puppet, and Chef. The practices reflect implementation issues, design issues, and the violation of/adherence to the essential principles of IaC. Our findings reveal critical insights concerning the top languages as well as the best practices adopted by practitioners to address (some of) those challenges. We evidence that the field of development and maintenance IaC is in its infancy and deserves further attention.

Topics & Concepts

Computer scienceBest practiceGray (unit)Taxonomy (biology)Data scienceWorld Wide WebSoftware engineeringManagementEconomicsBotanyRadiologyMedicineBiologySoftware System Performance and ReliabilitySoftware Engineering ResearchSoftware Reliability and Analysis Research
The do’s and don’ts of infrastructure code: A systematic gray literature review | Litcius