Infrastructure-as-Code for Data-Intensive Architectures: A Model-Driven Development Approach

Matej Artač, Tadej Borovšak, Elisabetta Di Nitto, Michele Guerriero, Diego Pérez-Palacín, Damian A. Tamburri

2018 · 37 citations · 15 references

Concepts

TL;DR

Infrastructure‑as‑Code enables automated creation, configuration, and management of complex infrastructures, but writing IaC is challenging due to the need to blend multiple specialized languages, a difficulty that grows with the scale and complexity of data‑intensive or microservice architectures. The study aims to use Model‑Driven Engineering to generate language‑agnostic models that can be automatically transformed into IaC. The authors propose DICER, a Model‑Driven Engineering approach that transforms domain‑specific models of data‑intensive applications into IaC, enabling automated generation of complex infrastructure configurations. The results demonstrate that DICER achieves substantial time savings in IaC design, deployment, and re‑deployment for data‑intensive applications.

Abstract

As part of the DevOps tactics, Infrastructure-as-Code (IaC) provides the ability to create, configure, and manage complex infrastructures by means of executable code. Writing IaC, however, is not an easy task, since it requires blending different infrastructure programming languages and abstractions, each specialized on a particular aspect of infrastructure creation, configuration, and management. Moreover, the more the architectures become large and complex (e.g. Data-Intensive or Microservice-based architectures), the more dire the need of IaC becomes. The goal of this paper is to exploit Model-Driven Engineering (MDE) to create language-agnostic models that are then automatically transformed into IaC. We focus on the domain of Data-Intensive Applications as these typically exploit complex infrastructures which demand sophisticated and fine-grained configuration and re-configuration - we show that, through our approach, called DICER, it is possible to create complex IaC with significant amounts of time savings, both in IaC design as well as deployment and re-deployment times.

References

15