Repository logo
Research Outputs
Projects
People
Statistics
  1. Home
  2. HSG CRIS
  3. HSG Publications
  4. Reliable infrastructure as Code for Decentralized Organizations
Details

Reliable infrastructure as Code for Decentralized Organizations

Journal
Dissertation, Universität St. Gallen
Series
2024; 5462
Type
doctoral thesis
Date Issued
2024
Author(s)
Daniel Sokolowski  
DOI
https://nbn-resolving.org/urn:nbn:ch-bel-hsg-10608
Research Team
Programming Group
Abstract
IT must be reliable for organizations to thrive and quickly adaptable for their swift reaction to their environment. Agility is vital, and DevOps achieves these goals by empowering independent cross-functional teams in decentralized organizations and automating the entire software pipeline. Infrastructure as Code (IaC) is the critical tool to automate software operations, including infrastructure provisioning, application deployment, and configuration. Beyond simple IaC scripts, developers implement IaC programs in programming languages like TypeScript and Python. Such IaC programs are software, and their reliability is crucial to the functionality and security of the deployed systems. Still, techniques for the rapid development of reliable IaC programs are missing, limiting organizations’ agility. Specifically, developers lack automation for deployment coordination and updating and quality assurance tools for, e.g., testing and verification.

We surveyed 134 IT professionals, finding that coordination across deployments is commonly needed and often requires manual coordination, even though IT professionals believe automated coordination yields better agility. However, automated approaches are centralized, limiting team independence and agility in decentralized organizations. To solve this issue, we propose automating coordination across deployments in a decentralized fashion through μs ([mju:z] “muse”), a novel IaC solution. With μs, teams have separate IaC programs, which express and jointly automate the correct order of operations across deployments. We further show how μs enables safe updating through IaC programs, preventing updates from breaking distributed transactions or workflows.

Beyond automating the coordination of IaC programs, we address the reliability of IaC program code. To unblock studies, we built a dataset of 37 712 public IaC programs. In initial analyses, only a vanishing fraction implements tests. We identified that available testing techniques are either slow and resource-intensive or require excessive development effort. To solve this dilemma, we propose ACT, an extensible automated unit testing approach that enables testing IaC programs quickly in hundreds of configurations, often without writing additional testing code.

This dissertation studies the coordination and testing of IaC programs. Empirically motivated, we present μs for safe deployment coordination and updating in decentralized setups and ACT for efficient testing of IaC programs. Our contributions nurture future research and reliable deployments in decentralized organizations, ensuring agility.
Abstract (De)
IT muss zuverlässig und anpassungsfähig sein, damit Unternehmen florieren und schnell auf ihre Umgebung reagieren können. Agilität ist entscheidend, und DevOps erreicht diese Ziele, indem es unabhängige, funktionsübergreifende Teams in dezentralen Organisationen stärkt und die gesamte Software-Pipeline automatisiert. Infrastructure as Code (IaC) ist das entscheidende Tool zur Automatisierung des Softwarebetriebs, einschließlich Deployment und Konfiguration. Mittlerweile implementieren Entwickler IaC-Programme in Programmiersprachen wie TypeScript und Python. Solche IaC-Programme sind Software und ihre Zuverlässigkeit ist entscheidend für die Funktionalität und Sicherheit der Systeme. Dennoch fehlen Techniken für die schnelle Entwicklung zuverlässiger IaC-Programme. Insbesondere mangelt es an Automatisierung für Koordinierung und Aktualisierung sowie an Qualitätssicherungswerkzeugen, z.B., zum Testen und Verifizieren.

Wir befragten 134 IT-Experten und stellten fest, dass Koordination über Deployments hinweg erforderlich und oft manuell ist, obwohl IT-Experten der Meinung sind, dass automatisierte Koordination zu besserer Agilität führt. Allerdings sind automatisierte Ansätze zentralisiert, was die Unabhängigkeit von Teams in dezentralen Organisationen einschränkt. Um dieses Problem zu lösen, koordinieren wir Deployments dezentral mit μs ([mju:z] “muse” ), einer neuartigen IaC-Lösung. Mit μs verfügen Teams über sepa- rate IaC-Programme, die den Koordinationsbedarf ausdrücken und gemeinsam automatisieren. Wir zeigen außerdem, wie μs sichere Aktualisierungen durch IaC-Programme ermöglicht, die verhindern, dass Aktualisierungen verteilte Transaktionen abbrechen.

Zudem befassen wir uns mit der Zuverlässigkeit des IaC-Programmcodes. Um Studien zu ermöglichen, erstellten wir einen Datensatz mit 37 712 öffentlichen IaC-Programmen und analysierten, dass nur für einen verschwindenden Anteil Tests implementiert wurden. Verfügbare Testtechniken sind entweder langsam und ressourcenintensiv oder sie erfordern übermäßigen Entwicklungsaufwand. Um dieses Dilemma zu lösen, präsentieren wir ACT, eine erweiterbare automatisierte Unit-Test-Lösung, die das schnelle Testen von IaC-Programmen in Hunderten Konfigurationen ermöglicht.

Diese Dissertation untersucht die Koordination und das Testen von IaC-Programmen. Wir stellen μs für die sichere Koordinierung von Deployments in dezentralen Umgebungen und ACT für das effiziente Testen von IaC-Programmen vor. Unsere Beiträge fördern zukünftige Forschung und die Agilität von dezentralen Organisationen.
Language
English
Keywords
Infrastructure as Code
Cloud
Cloud Provisioning
Configuration Management
Deployment Coordination
Testing
HSG Classification
contribution to scientific community
Refereed
Yes
Publisher
University of St. Gallen
Publisher place
St. Gallen, Switzerland
Official URL
https://nbn-resolving.org/urn:nbn:ch-bel-hsg-10608
URL
https://www.alexandria.unisg.ch/handle/20.500.14171/120951
Subject(s)

computer science

Division(s)

SCS - School of Compu...

Contact Email Address
unisg@d.sokolowski.org
File(s)
Thumbnail Image

open.access

Name

dissertation-daniel-sokolowski.pdf

Size

2.34 MB

Format

Adobe PDF

Checksum (MD5)

86f87aa191720c3f3d05764c895c9129

Support
HSG researchers can find instructions here for adding or importing publications (DOI, ORCID). Please send questions to alexandria@unisg.ch

Built with DSpace-CRIS software - Extension maintained and optimized by 4Science

  • Accessibility settings
  • Privacy policy
  • End User Agreement
  • Send Feedback
Repository logo COAR Notify