Code Smells in Infrastructure as Code

Code Smells in Infrastructure as Code
复制标题

基础设施即代码中的代码味道

DOI:
10.1109/quatic.2018.00040
复制
发表时间:
2018
期刊:
2018 11th International Conference on the Quality of Information and Communications Technology (QUATIC)
影响因子:
--
通讯作者:
H. Lichter
H. Lichter
中科院分区:
--
文献类型:
--
作者:
Julian Schwarz;Andreas Steffens;H. Lichter

文献摘要

被引文献

相似文献

确保软件系统的高质量是一个众所周知的巨大挑战。基础设施即代码(IaC)近年来越来越受欢迎,但是关于这种代码质量的研究却很少。就像编程语言一样,我们发现语言和技术的多样性很高。现有的研究将代码气味从传统的软件工程引入到流行的配置工具Puppet,该工具使用IaC来指定所需的环境状态。结果表明,代码气味是评估Puppet代码质量的适当方法。在本文中,我们扩展了现有的研究,首先将代码IaC气味应用于其他技术,并研究是否可以实现类似的结果。我们在两个案例研究中将代码气味应用于开放源和封闭源IaC代码存储库。所提出的结果表明,IaC气味存在于其他工具和技术中。此外,研究结果表明,IaC气味与应用技术无关,可以在技术无关的水平上进行定义。其次,我们从软件工程领域引入了新的代码气味,这些气味还没有涉及到IaC领域。本文提供了17个应用于Chef的代码气味的目录,它们的实现是开源的。
Ensuring high quality in software systems is a wellknown and big challenge. Infrastructure as Code (IaC) gathered increasing popularity in recent years, but there is only little research done in terms of quality of this code. Like with programming languages we find a high diversity of languages and technologies. Existing research introduced code smells from traditional software engineering to the popular provisioning tool Puppet, which uses IaC to specify the desired state of environments. Results show that code smells are an adequate method to assess the quality of Puppet code. In this paper we extend the existing research by first applying code the IaC smells to an other technology and investigate if similar results can be achieved. We applied the code smells in two case studies to open and closed source IaC code repositories. The presented results indicate that IaC smells are present in other tools and technologies. Furthermore the results show that IaC smells are agnostic to the applied technology and can be defined on a technology agnostic level. Second, we introduce new code smells from the field of software engineering, which were not covered yet, to the domain of IaC. The paper presents a catalogue of 17 code smells which were applied to Chef and whose implementation is available as Open Source.