Towards Reliable Infrastructure as Code
Journal
2023 IEEE 20th International Conference on Software Architecture Companion (ICSA-C)
Type
conference paper
Date Issued
2023
Author(s)
Abstract
Modern Infrastructure as Code (IaC) programs are increasingly complex and much closer to traditional software than to simple configuration scripts. Their reliability is crucial because their failure prevents the deployment of applications, and incorrect behavior can introduce malfunction and severe security issues. Yet, software engineering tools to develop reliable programs, such as testing and verification, are barely used in IaC. In fact, we observed that developers mainly rely on integration testing, a slow and expensive practice that can increase confidence in end-to-end functionality but is infeasible to systematically test IaC programs in various configurations—which is required to ensure robustness. On the other hand, fast testing techniques, such as unit testing, are cumbersome with IaC programs because, today, they require significant coding overhead while only providing limited confidence.To solve this issue, we envision the automated testing tool ProTI, reducing the manual overhead and boosting confidence in the test results. ProTI embraces modern unit testing techniques to test IaC programs in many different configurations. Out of the box, ProTI is a fuzzer for Pulumi TypeScript IaC programs, randomly testing the program in many different configurations for termination, configuration correctness, and existing policy compliance. Then developers can add specifications to their program to guide random-based value generation, test additional properties, and add further mocking, making ProTI a property-based testing tool. Lastly, we aim at automatically verifying IaC-specific properties, e.g., access paths between resources.
Keywords
Infrastructure as Code
Cloud Engineering
Fuzzing
Property-based Testing
Verification
File(s)![Thumbnail Image]()
open.access
Name
2023_Towards-Reliable-Infrastructure-as-Code.pdf
Size
152.13 KB
Format
Adobe PDF
Checksum (MD5)
e9caae191b98c3bc20f8045ac5971e47