Detectando e Reportando Inconsistências em Scripts da Ferramenta Puppet
Puppet. DevOps. Infraestrutura como Código. Integração Contínua
A utilização de scripts de infraestrutura como código permite provisionar e gerenciar confi-
gurações de software por meio de automação como nos processos de integração, entrega e
implantação contínua (DevOps), de forma simples. Todavia, é necessário compreender as causas
dos problemas nestes processos que promovem suscetíveis falhas de software. Um dos principais
objetivos desta pesquisa é ajudar os desenvolvedores a diminuir falhas presentes nos scripts de
automação ao utilizarem a ferramenta Puppet . Esta pesquisa investiga as inconsistências nos
scripts de infraestrutura como código escritos com Puppet em 129 projetos hospedados no
Github. Rahman et al. (RAHMAN; PARNIN; WILLIAMS, 2019) abordam certas vulnerabilida-
des de segurança nos scripts Puppet que são definidos em arquivos de manifesto e compilados
em forma de executáveis no formato JSON que possuem a lista de recursos de máquina necessá-
rios para instalação desejada, formando os catálogos. Sotiropoulos e colegas (SOTIROPOULOS;
MITROPOULOS; SPINELLIS, 2020) destacam mil módulos Puppet problemáticos com a
dependência de recursos e a ausência de notificadores. O detalhamento das falhas presentes nestes
projetos como antipadrões na escrita do código estão apontados em relatórios das organizações
Dynatrace no The Global DevOps Report e PuppetLabs no State of DevOps Report em 2021.
De forma qualitativa, foram avaliados 480 issues distribuídas como abertas e fechadas de um
total de 129 projetos diferentes que usam Puppet . Em nossos achados, foi possível detectar
que 75,20% (361) dos dados são de oito classes de problemas distintos e que 71,45% (343) do
mesmo conjunto são de sete classes de soluções. No ranking estão as classes de problema “Erros
de Configuração” (110) “Aprimoramento” (18), as classes de solução “Modificar Código Fixo”
(95), “Criar Modelo” (4) e “Importar Módulo” (24) demonstrados nas tabelas de Problemas
e Soluções mais comuns (SHAMBAUGH; WEISS; GUHA, 2016) e Tipos de Soluções para
o mesmo Problema ou defeitos (RAHMAN; STALLINGS; WILLIAMS, 2018). Esta pesquisa
pretende ajudar a minimizar inconsistências de scripts IaC no intuito de melhorar as boas práticas
do uso destes scripts de maneira mais automatizada para atender à demanda por inovação mais
rápida e de qualidade