Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.1145/3540250.3558912acmconferencesArticle/Chapter ViewAbstractPublication PagesfseConference Proceedingsconference-collections
research-article
Open access

Infrastructure as code for dynamic deployments

Published: 09 November 2022 Publication History

Abstract

Modern DevOps organizations require a high degree of automation to achieve software stability at frequent changes. Further, there is a need for flexible, timely reconfiguration of the infrastructure, e.g., to use pay-per-use infrastructure efficiently based on application load. Infrastructure as Code (IaC) is the DevOps tool to automate infrastructure. However, modern static IaC solutions only support infrastructures that are deployed and do not change afterward. To implement infrastructures that change dynamically over time, static IaC programs have to be (updated and) re-run, e.g., in a CI/CD pipeline, or configure an external orchestrator that implements the dynamic behavior, e.g., an autoscaler or Kubernetes operator. Both do not capture the dynamic behavior in the IaC program and prevent analyzing and testing the infrastructure configuration jointly with its dynamic behavior.
To fill this gap, we envision dynamic IaC, which augments static IaC with the ability to define dynamic behavior within the IaC program. In contrast to static IaC programs, dynamic IaC programs run continuously. They re-evaluate program parts that depend on external signals when these change and automatically adjust the infrastructure accordingly. We implement DIaC as the first dynamic IaC solution and demonstrate it in two realistic use cases of broader relevance. With dynamic IaC, ensuring the program’s correctness is even harder than for static IaC because programs may define many target configurations in contrast to only a few. However, for this reason, it is also more critical. To solve this issue, we propose automated, specialized property-based testing for IaC programs and implement it in ProTI.

References

[1]
ACM Special Interest Group on Software Engineering. 2021. Empirical Standards: Questionnaire Surveys. https://github.com/acmsigsoft/EmpiricalStandards/blob/master/docs/QuestionnaireSurveys.md
[2]
Jonathan Aldrich, Craig Chambers, and David Notkin. 2002. ArchJava: Connecting Software Architecture to Implementation. In Proceedings of the 24th International Conference on Software Engineering (ICSE ’02). Association for Computing Machinery, New York, NY, USA. 187–197. isbn:158113472X https://doi.org/10.1145/581339.581365
[3]
Amazon Web Services. 2021. AWS CloudFormation. https://aws.amazon.com/cloudformation/
[4]
Ansible and Red Hat. 2022. Ansible is Simple IT Automation. https://www.ansible.com/
[5]
Luciano Baresi, Carlo Ghezzi, Xiaoxing Ma, and Valerio Panzica La Manna. 2017. Efficient Dynamic Updates of Distributed Components Through Version Consistency. IEEE Transactions on Software Engineering, 43, 4 (2017), 340–358. https://doi.org/10.1109/TSE.2016.2592913
[6]
Julian Bellendorf and Zoltán Ádám Mann. 2020. Specification of cloud topologies and orchestration using TOSCA: a survey. Computing, 102, 8 (2020), 1793–1815. issn:1436-5057 https://doi.org/10.1007/s00607-019-00750-3
[7]
Chef. 2022. Chef Software DevOps Automation Tools & Solutions. https://chef.io
[8]
Koen Claessen and John Hughes. 2000. QuickCheck: A Lightweight Tool for Random Testing of Haskell Programs. In Proceedings of the Fifth ACM SIGPLAN International Conference on Functional Programming (ICFP ’00). Association for Computing Machinery, New York, NY, USA. 268–279. isbn:1581132026 https://doi.org/10.1145/351240.351266
[9]
Flavio Corradini, Fabrizio Fornari, Andrea Polini, Barbara Re, and Francesco Tiezzi. 2019. RePROSitory: a Repository Platform for Sharing Business PROcess modelS. BPM (PhD/Demos), 149–153.
[10]
Nicolas Dubien. 2022. fast-check: Property based testing framework for JavaScript/TypeScript. https://github.com/dubzzz/fast-check
[11]
George Fink and Matt Bishop. 1997. Property-Based Testing: A New Approach to Testing for Assurance. SIGSOFT Softw. Eng. Notes, 22, 4 (1997), jul, 74–80. issn:0163-5948 https://doi.org/10.1145/263244.263267
[12]
Nicole Forsgren, Dustin Smith, Jez Humble, and Jessie Frazelle. 2019. 2019 Accelerate State of DevOps Report. https://services.google.com/fh/files/misc/state-of-devops-2019.pdf
[13]
M. Guerriero, M. Garriga, D. A. Tamburri, and F. 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. https://doi.org/10.1109/ICSME.2019.00092
[14]
HashiCorp. 2022. CDK for Terraform. https://www.terraform.io/cdktf
[15]
HashiCorp. 2022. Terraform. https://www.terraform.io/
[16]
Mark Kasunic. 2005. Designing an Effective Survey. https://doi.org/10.1184/R1/6573062.v1
[17]
Barbara A. Kitchenham and Shari L. Pfleeger. 2008. Personal Opinion Surveys. In Guide to Advanced Empirical Software Engineering, Forrest Shull, Janice Singer, and Dag I. K. Sjøberg (Eds.). Springer, 63–92. isbn:978-1-84800-043-8
[18]
Jeff Kramer and Jeff Magee. 1990. The evolving philosophers problem: dynamic change management. IEEE Transactions on Software Engineering, 16, 11 (1990), 1293–1306. https://doi.org/10.1109/32.60317
[19]
Ingolf Krüger, Barry Demchak, and Massimiliano Menarini. 2012. Dynamic Service Composition and Deployment with OpenRichServices. Springer Berlin Heidelberg, Berlin, Heidelberg. 120–146. isbn:978-3-642-30835-2 https://doi.org/10.1007/978-3-642-30835-2_9
[20]
Changbin Liu, Boon Thau Loo, and Yun Mao. 2011. Declarative Automated Cloud Resource Orchestration. In Proceedings of the 2nd ACM Symposium on Cloud Computing (SOCC ’11). Association for Computing Machinery, New York, NY, USA. Article 26, 8 pages. isbn:9781450309769 https://doi.org/10.1145/2038916.2038942
[21]
Microsoft. 2022. Azure Resource Manager. https://azure.microsoft.com/en-us/features/resource-manager/
[22]
Kief Morris. 2021. Infrastructure as Code: Dynamic Systems for the Cloud Age (second ed.). O’Reilly Media, Inc., Sebastopol, CA, USA. isbn:9781098114671
[23]
OASIS. 2013. Topology and Orchestration Specification for Cloud Applications Version 1.0. OASIS Standard, http://docs.oasis-open.org/tosca/TOSCA/v1.0/os/TOSCA-v1.0-os.html
[24]
Ruben Opdebeeck, Ahmed Zerouali, and Coen De Roover. 2022. Smelly Variables in Ansible Infrastructure Code: Detection, Prevalence, and Lifetime. In 2022 IEEE/ACM 19th International Conference on Mining Software Repositories (MSR). 61–72. https://doi.org/10.1145/3524842.3527964
[25]
Ruben Opdebeeck, Ahmed Zerouali, Camilo Velázquez-Rodríguez, and Coen De Roover. 2021. On the practice of semantic versioning for Ansible galaxy roles: An empirical study and a change classification model. Journal of Systems and Software, 182 (2021), 111059. issn:0164-1212 https://doi.org/10.1016/j.jss.2021.111059
[26]
Pulumi. 2022. Pulumi: Universal Infrastructure as Code. https://github.com/pulumi/pulumi
[27]
Pulumi. 2022. Testing. https://www.pulumi.com/docs/guides/testing/
[28]
Puppet. 2022. Powerful Infrastructure Automation and Delivery. https://puppet.com/
[29]
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. issn:0950-5849 https://doi.org/10.1016/j.infsof.2018.12.004
[30]
Akond Rahman, Chris Parnin, and Laurie Williams. 2019. The Seven Sins: Security Smells in Infrastructure as Code Scripts. In 2019 IEEE/ACM 41st International Conference on Software Engineering (ICSE). 164–175. https://doi.org/10.1109/ICSE.2019.00033
[31]
Akond Rahman, Md Rayhanur Rahman, Chris Parnin, and Laurie Williams. 2021. Security Smells in Ansible and Chef Scripts: A Replication Study. ACM Trans. Softw. Eng. Methodol., 30, 1 (2021), Article 3, Jan., 31 pages. issn:1049-331X https://doi.org/10.1145/3408897
[32]
Rajiv Ranjan, Boualem Benatallah, Schahram Dustdar, and Michael P. Papazoglou. 2015. Cloud Resource Orchestration Programming: Overview, Issues, and Directions. IEEE Internet Computing, 19, 5 (2015), 46–56. https://doi.org/10.1109/MIC.2015.20
[33]
Julian Schwarz, Andreas Steffens, and Horst Lichter. 2018. Code Smells in Infrastructure as Code. In 2018 11th International Conference on the Quality of Information and Communications Technology (QUATIC). 220–228. https://doi.org/10.1109/QUATIC.2018.00040
[34]
Amazon Web Services. 2022. AWS Cloud Development Kit. https://aws.amazon.com/cdk/
[35]
Tushar Sharma, Marios Fragkoulis, and Diomidis Spinellis. 2016. Does Your Configuration Code Smell? In Proceedings of the 13th International Conference on Mining Software Repositories (MSR ’16). Association for Computing Machinery, New York, NY, USA. 189–200. isbn:9781450341868 https://doi.org/10.1145/2901739.2901761
[36]
Daniel Sokolowski, Pascal Weisenburger, and Guido Salvaneschi. 2021. Automating Serverless Deployments for DevOps Organizations. In Proceedings of the 29th ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software Engineering (ESEC/FSE 2021). Association for Computing Machinery, New York, NY, USA. 57–69. isbn:9781450385626 https://doi.org/10.1145/3468264.3468575
[37]
Daniel Sokolowski, Pascal Weisenburger, and Guido Salvaneschi. 2022. Change is the Only Constant: Dynamic Updates for Workflows. In Proceedings of the 44th International Conference on Software Engineering (ICSE ’22). Association for Computing Machinery, New York, NY, USA. 350–362. isbn:9781450392211 https://doi.org/10.1145/3510003.3510065
[38]
Daniel Sokolowski, Pascal Weisenburger, and Guido Salvaneschi. 2022. Dependencies in DevOps Survey 2021: Version 2.0 (Until April 15, 2021). https://doi.org/10.5281/zenodo.6372120
[39]
Ricardo Terra and Marco Tulio Valente. 2009. A dependency constraint language to manage object-oriented software architectures. Software: Practice and Experience, 39, 12 (2009), 1073–1094. https://doi.org/10.1002/spe.931
[40]
Yves Vandewoude, Peter Ebraert, Yolande Berbers, and Theo D’Hondt. 2007. Tranquility: A Low Disruptive Alternative to Quiescence for Ensuring Safe Dynamic Updates. IEEE Transactions on Software Engineering, 33, 12 (2007), 856–868. https://doi.org/10.1109/TSE.2007.70733
[41]
Simon Friis Vindum and Emil Holm Gjørup. 2019. Hareactive. https://github.com/funkia/hareactive
[42]
Jóakim von Kistowski, Simon Eismann, Norbert Schmitt, André Bauer, Johannes Grohmann, and Samuel Kounev. 2018. TeaStore: A Micro-Service Reference Application for Benchmarking, Modeling and Resource Management Research. In 2018 IEEE 26th International Symposium on Modeling, Analysis, and Simulation of Computer and Telecommunication Systems (MASCOTS). 223–236. https://doi.org/10.1109/MASCOTS.2018.00030
[43]
Denis Weerasiri, Moshe Chai Barukh, Boualem Benatallah, Quan Z. Sheng, and Rajiv Ranjan. 2017. A Taxonomy and Survey of Cloud Resource Orchestration Techniques. ACM Comput. Surv., 50, 2 (2017), Article 26, May, 41 pages. issn:0360-0300 https://doi.org/10.1145/3054177
[44]
Michael Wurster, Uwe Breitenbücher, Michael Falkenthal, Christoph Krieger, Frank Leymann, Karoline Saatkamp, and Jacopo Soldani. 2020. The Essential Deployment Metamodel: A Systematic Review of Deployment Automation Technologies. SICS Software-Intensive Cyber-Physical Systems, 35 (2020), 63–75. issn:2524-8529 https://doi.org/10.1007/s00450-019-00412-x
[45]
Michael Wurster., Uwe Breitenbücher., Lukas Harzenetter., Frank Leymann., Jacopo Soldani., and Vladimir Yussupov. 2020. TOSCA Light: Bridging the Gap between the TOSCA Specification and Production-ready Deployment Technologies. In Proceedings of the 10th International Conference on Cloud Computing and Services Science - Volume 1: CLOSER,. SciTePress, 216–226. isbn:978-989-758-424-4 https://doi.org/10.5220/0009794302160226

Cited By

View all
  • (2024)An LLM-driven Framework for Dynamic Infrastructure as Code GenerationProceedings of the 25th International Middleware Conference: Demos, Posters and Doctoral Symposium10.1145/3704440.3704778(9-10)Online publication date: 2-Dec-2024
  • (2024)Strategies and Challenges in Cloud-to-Cloud Migration Using Infrastructure as CodeProduct-Focused Software Process Improvement. Industry-, Workshop-, and Doctoral Symposium Papers10.1007/978-3-031-78392-0_1(3-18)Online publication date: 27-Nov-2024
  • (2023)Systematic Analysis of Infrastructure as Code TechnologiesGazi University Journal of Science Part A: Engineering and Innovation10.54287/gujsa.137330510:4(452-471)Online publication date: 31-Dec-2023
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
ESEC/FSE 2022: Proceedings of the 30th ACM Joint European Software Engineering Conference and Symposium on the Foundations of Software Engineering
November 2022
1822 pages
ISBN:9781450394130
DOI:10.1145/3540250
This work is licensed under a Creative Commons Attribution 4.0 International License.

Sponsors

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 09 November 2022

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. Cloud
  2. DevOps
  3. Infrastructure as Code
  4. Software Evolution
  5. Testing

Qualifiers

  • Research-article

Funding Sources

Conference

ESEC/FSE '22
Sponsor:

Acceptance Rates

Overall Acceptance Rate 112 of 543 submissions, 21%

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)486
  • Downloads (Last 6 weeks)64
Reflects downloads up to 25 Dec 2024

Other Metrics

Citations

Cited By

View all
  • (2024)An LLM-driven Framework for Dynamic Infrastructure as Code GenerationProceedings of the 25th International Middleware Conference: Demos, Posters and Doctoral Symposium10.1145/3704440.3704778(9-10)Online publication date: 2-Dec-2024
  • (2024)Strategies and Challenges in Cloud-to-Cloud Migration Using Infrastructure as CodeProduct-Focused Software Process Improvement. Industry-, Workshop-, and Doctoral Symposium Papers10.1007/978-3-031-78392-0_1(3-18)Online publication date: 27-Nov-2024
  • (2023)Systematic Analysis of Infrastructure as Code TechnologiesGazi University Journal of Science Part A: Engineering and Innovation10.54287/gujsa.137330510:4(452-471)Online publication date: 31-Dec-2023
  • (2023)Cost-Effective Automation: Cloud-Based Monitoring Combining HPA with VPA for Scalable Startups2023 9th International Conference on Wireless and Telematics (ICWT)10.1109/ICWT58823.2023.10335324(1-5)Online publication date: 6-Jul-2023
  • (2023)Towards Reliable Infrastructure as Code2023 IEEE 20th International Conference on Software Architecture Companion (ICSA-C)10.1109/ICSA-C57050.2023.00072(318-321)Online publication date: Mar-2023

View Options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Login options

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media