Modelando diferentes variantes de implementación de una aplicación compuesta en un único modelo de implementación declarativo
Autores: Stötzner, Miles; Becker, Steffen; Breitenbücher, Uwe; Képes, Kálmán; Leymann, Frank
Idioma: Inglés
Editor: MDPI
Año: 2022
Acceso abierto
Artículo científico
2022
Modelando diferentes variantes de implementación de una aplicación compuesta en un único modelo de implementación declarativo
Categoría
Ingeniería y Tecnología
Subcategoría
Ingeniería de Software
Palabras clave
Automatización
Implementación
Declarativo
Componentes
Dependencias
Tecnologías
Licencia
CC BY-SA – Atribución – Compartir Igual
Consultas: 32
Citaciones: Sin citaciones
Para automatizar la implementación de aplicaciones compuestas, típicamente se utilizan modelos de implementación declarativos. Dependiendo del contexto, la implementación de una aplicación debe cumplir diferentes requisitos, como costos y elasticidad. Como consecuencia, una misma aplicación, es decir, sus componentes y sus dependencias, a menudo necesitan ser implementados en diferentes variantes. Si cada variante diferente de una implementación se describe utilizando un modelo de implementación individual, rápidamente resulta en un gran número de modelos, que son propensos a errores para mantener. Las tecnologías de implementación, como Terraform o Ansible, admiten componentes y dependencias condicionales que permiten modelar diferentes variantes de implementación de una aplicación compuesta en un único modelo de implementación. Sin embargo, hay tecnologías de implementación, como TOSCA y Docker Compose, que no admiten tales elementos condicionales. Para abordar esto, extendemos el Metamodelo de Implementación Esencial (EDMM) con componentes y dependencias condicionales. EDMM es un modelo de implementación declarativo que se puede mapear a varias tecnologías de implementación, incluidas Terraform, Ansible, TOSCA y Docker Compose. El preprocesamiento de un modelo extendido, es decir, los elementos condicionales se evalúan y se preservan o se eliminan, genera un modelo conforme a EDMM. Como resultado, los elementos condicionales se pueden integrar en las tecnologías de implementación existentes que desconocen tales conceptos. Evaluamos esto implementando un preprocesador para TOSCA, llamado OpenTOSCA Vintner, que emplea los orquestadores TOSCA de código abierto xOpera y Unfurl para ejecutar los modelos conformes a TOSCA generados.
Descripción
Para automatizar la implementación de aplicaciones compuestas, típicamente se utilizan modelos de implementación declarativos. Dependiendo del contexto, la implementación de una aplicación debe cumplir diferentes requisitos, como costos y elasticidad. Como consecuencia, una misma aplicación, es decir, sus componentes y sus dependencias, a menudo necesitan ser implementados en diferentes variantes. Si cada variante diferente de una implementación se describe utilizando un modelo de implementación individual, rápidamente resulta en un gran número de modelos, que son propensos a errores para mantener. Las tecnologías de implementación, como Terraform o Ansible, admiten componentes y dependencias condicionales que permiten modelar diferentes variantes de implementación de una aplicación compuesta en un único modelo de implementación. Sin embargo, hay tecnologías de implementación, como TOSCA y Docker Compose, que no admiten tales elementos condicionales. Para abordar esto, extendemos el Metamodelo de Implementación Esencial (EDMM) con componentes y dependencias condicionales. EDMM es un modelo de implementación declarativo que se puede mapear a varias tecnologías de implementación, incluidas Terraform, Ansible, TOSCA y Docker Compose. El preprocesamiento de un modelo extendido, es decir, los elementos condicionales se evalúan y se preservan o se eliminan, genera un modelo conforme a EDMM. Como resultado, los elementos condicionales se pueden integrar en las tecnologías de implementación existentes que desconocen tales conceptos. Evaluamos esto implementando un preprocesador para TOSCA, llamado OpenTOSCA Vintner, que emplea los orquestadores TOSCA de código abierto xOpera y Unfurl para ejecutar los modelos conformes a TOSCA generados.