Terraform and AWS CDK: A Comparative Analysis of Infrastructure Management Tools

  • João Frois PUC-MG
  • Lucas Padrão PUC-MG
  • Johnatan Oliveira UFLA
  • Laerte Xavier PUC-MG
  • Cleiton Tavares PUC-MG

Resumo


Infrastructure as Code is a fundamental concept in DevOps that automates infrastructure management processes using code. Several tools, such as Terraform and CDK, support this environment. Selecting the appropriate tool is crucial to a project’s success, yet there is ambiguity about the circumstances in which developers should choose between these tools. Therefore, this study aims to compare Terraform and CDK across four aspects: abstraction, scalability, maintainability, and performance. Our findings indicate that each tool performs particularly well in specific scenarios. For instance, Terraform is better suited for experienced teams focused on rapid implementations, while CDK is more appropriate for less experienced teams prioritizing resource efficiency during implementation.

Palavras-chave: AWS CDK, Terraform, DevOps, Infrastructure as Code

Referências

Juncal Alonso, Radosław Piliszek, and Matija Cankar. 2023. Embracing IaC Through the DevSecOps Philosophy: Concepts, Challenges, and a Reference Framework. IEEE Software 40, 1 (2023), 56–62. DOI: 10.1109/MS.2022.3212194

Justus Bogner and Manuel Merkel. 2022. To Type or Not to Type? A Systematic Comparison of the Software Quality of JavaScript and TypeScript Applications on GitHub. In 2022 IEEE/ACM 19th International Conference on Mining Software Repositories (MSR). 658–669. DOI: 10.1145/3524842.3528454

David Chappell. 2008. A Short Introduction to Cloud Platforms: An Enterprise-Oriented View. Technical Report. David Chappell & Associates. [link]

Stefano Dalla Palma, Dario Di Nucci, Fabio Palomba, and Damian Andrew Tamburri. 2020. Toward a catalog of software quality metrics for infrastructure code. Journal of Systems and Software 170 (2020), 110726. DOI: 10.1016/j.jss.2020.110726

MIchele Guerriero, Martin Garriga, Damian A. Tamburri, and Fabio Palomba. 2019. Adoption, Support, and Challenges of Infrastructure-as-Code: Insights from Industry. In 2019 IEEE International Conference on Software Maintenance and Evolution (ICSME). 580–589. DOI: 10.1109/ICSME.2019.00092

Manu Gupta, Mandepudi Nobel Chowdary, Sankeerth Bussa, and Chennupati Kumar Chowdary. 2021. Deploying Hadoop Architecture Using Ansible and Terraform. In 2021 5th International Conference on Information Systems and Computer Networks (ISCON). 1–6. DOI: 10.1109/ISCON52037.2021.9702299

Gene Kim, Jez Humble, Patrick Debois, and John Willis. 2018. Manual de DevOps: como obter agilidade, confiabilidade e segurança em organizações tecnológicas (1a ed. ed.). Editora Alta Books, Rio de Janeiro. 427 pages.

Patrick E. McKnight and Julius Najab. 2022. Mann–Whitney U Test. The SAGE Encyclopedia of Research Design (2022). [link]

Chris Parnin, Akond Rahman, and Laurie Williams. 2019. The Seven Sins: Security Smells in Infrastructure as Code Scripts. 2019 IEEE/ACM 41st International Conference on Software Engineering (ICSE) (2019), 164–175. DOI: 10.1109/ICSE.2019.00033

Jagdish Chandra Patni, Souradeep Banerjee, and Devyanshi Tiwari. 2020. Infrastructure as a Code (IaC) to Software Defined Infrastructure using Azure Resource Manager (ARM). In 2020 International Conference on Computational Performance Evaluation (ComPE). 575–578. DOI: 10.1109/ComPE49325.2020.9200030

Akond Rahman, Rezvan Mahdavi-Hezaveh, and Laurie Williams. 2019. A systematic mapping study of infrastructure as code research. Information and Software Technology 108 (2019), 65–77. DOI: 10.1016/j.infsof.2018.12.004

Baishakhi Ray, Daryl Posnett, Vladimir Filkov, and Premkumar Devanbu. 2014. A Large Scale Study of Programming Languages and Code Quality in Github. In Proceedings of the 22nd ACM SIGSOFT International Symposium on Foundations of Software Engineering (Hong Kong, China) (FSE 2014). Association for Computing Machinery, New York, NY, USA, 155–165. DOI: 10.1145/2635868.2635922

Julio Sandobalín, Emilio Insfran, and Silvia Abrahão. 2020. On the Effectiveness of Tools to Support Infrastructure as Code: Model-Driven Versus Code-Centric. IEEE Access 8 (2020), 17734–17761. DOI: 10.1109/ACCESS.2020.2966597

Daniel Sokolowski and Guido Salvaneschi. 2023. Towards Reliable Infrastructure as Code. In 2023 IEEE 20th International Conference on Software Architecture Companion (ICSA-C). 318–321. DOI: 10.1109/ICSA-C57050.2023.00072

Werner Vogels. acessado em 03 de março de 2023. Werner Vogels on the AWS Cloud Development Kit (AWS CDK). [link]

Claes Wohlin, Per Runeson, Martin Höst, Magnus C Ohlsson, Björn Regnell, and Anders Wesslén. 2012. Experimentation in software engineering. Springer Science & Business Media.
Publicado
30/09/2024
FROIS, João; PADRÃO, Lucas; OLIVEIRA, Johnatan; XAVIER, Laerte; TAVARES, Cleiton. Terraform and AWS CDK: A Comparative Analysis of Infrastructure Management Tools. In: SIMPÓSIO BRASILEIRO DE ENGENHARIA DE SOFTWARE (SBES), 38. , 2024, Curitiba/PR. Anais [...]. Porto Alegre: Sociedade Brasileira de Computação, 2024 . p. 620-626. DOI: https://doi.org/10.5753/sbes.2024.3577.