DevOps & Middleware: un nuevo proyecto para facilitar la gestión de nuestros despliegues y mejorar su fiabilidad

Compartir por correo electrónico

Se ha iniciado un nuevo proyecto de colaboración con el equipo Espirales de INRIA Lille laboratorio. En este proyecto, queremos abordar los mecanismos de dirección, orquestación y mantenimiento de las actividades de empaquetado, entrega y despliegue de nuestras aplicaciones. La falta de formalización y trazabilidad sobre las acciones que se llevan a cabo para el despliegue de nuestras aplicaciones, y el hecho de que algunas de ellas sean manuales o deban adaptarse a especificidades técnicas o funcionales, crea una complejidad difícil de gestionar sólo mediante el uso de plataformas tradicionales de integración continua y despliegue continuo (CI/CD). Además, esta falta de visibilidad y de dominio de un proceso DevOps automatizado y controlado representa un verdadero obstáculo para nuestro crecimiento, ya que Berger-Levrault siempre tiene la intención de ganar clientes en todo el mundo.

Por ello, y con el objetivo de mejorar continuamente nuestro nivel de servicio y la confianza de nuestros clientes en los recursos digitales que proporcionamos, nos planteamos en este proyecto la gestión y el seguimiento de nuestras actividades de despliegue. El objetivo es aprovechar el proceso de despliegue, facilitar su ejecución y aumentar su fiabilidad. A continuación se exponen algunos de los enfoques científicos y técnicos considerados:

Un metamodelo y una base de conocimientos para explotar los elementos de despliegue

Múltiples informaciones describen un entorno de despliegue: modos de despliegue (On-premise, SaaS, IaaS, PaaS, híbridos o multicloud), entornos operativos de los clientes, características de los sistemas a desplegar (versiones, prerrequisitos, SO, espacio, navegadores, etc.), parches y actualizaciones, etc. Estas informaciones no deben ser conocidas únicamente por los equipos de operaciones ni estar almacenadas en archivos de configuración. Por lo tanto, nuestro objetivo es formalizar un metamodelo para representar y manipular los elementos que constituyen un despliegue. Esto permite la construcción de una base de conocimientos que puede utilizarse como entrada para los sistemas automatizados de gestión de la configuración. Las pistas seleccionadas para investigar son los enfoques automáticos para descubrir y catalogar las infraestructuras de despliegue y infraestructura como código técnicas que permiten la definición y el almacenamiento de contextos de despliegue.

Seguimiento del proceso de despliegue

El objetivo aquí es estudiar las posibilidades de recuperar información sobre las acciones que se llevan a cabo, rastrearlas y recogerlas para tener una visión general del estado de los despliegues y los problemas. Esto permite mejorar la retroalimentación en caso de problemas o suspender el proceso para evitar la pérdida de datos o la interrupción del servicio durante el despliegue. Los pipelines CI/CD pueden ser una forma de realizar esta monitorización, pero permiten la monitorización por proyecto. Por ello, probamos herramientas de monitorización como la combinación de Prometheus y Grafana para proporcionar en una única vista un conjunto de indicadores sobre los pipelines de varios proyectos. En su estado actual, la pila probada nos permite recopilar información sobre los repositorios del proyecto, el versionado del código y el estado de la construcción. Queda por controlar el estado de las acciones de entrega y despliegue. También tenemos que investigar las correlaciones existentes entre los indicadores descritos para ayudar al diagnóstico en caso de problemas. Además, hay que destacar la relación con los entornos de despliegue y las características de las aplicaciones desplegadas.

Además, proyectamos estudiar la posibilidad de utilizar técnicas de aprendizaje automático para hacer uso de los datos recogidos para realizar predicciones sobre el estado del despliegue, detectar comportamientos inusuales y aprender a mejorar continuamente las actividades de entrega y despliegue. La monitorización también es esencial si queremos reparar (o reparar automáticamente) las acciones (actualización de configuraciones, infraestructuras, etc.) como reacción a los eventos percibidos por el sistema de monitorización. Esto ayudará a mantener el sistema de entrega y despliegue y a garantizar su fiabilidad.

Medios de administración para la configuración y el despliegue de nuestras aplicaciones

El objetivo aquí es facilitar la implementación de nuevos despliegues, con medios de administración y configuración. Para ello, necesitamos un enfoque que ayude a especificar los entornos de despliegue y las aplicaciones a desplegar y los medios administrativos para aplicar los elementos descritos. Esto puede basarse en el metamodelo mencionado anteriormente, junto con un DSL (Domain Specific Language). El equipo de Spirals ha trabajado en este tipo de DSL en su investigación sobre la gestión de la configuración basada en modelos de las aplicaciones en la nube. Estos medios tienen que tener en cuenta :

  • Empaquetar varias de nuestras aplicaciones empresariales para formar una suite de software, siendo gestionadas por un único administrador, sin tener que movilizar un administrador dedicado para cada aplicación de la suite
  • La distribución de nuestras aplicaciones, donde una aplicación puede consistir en partes interconectadas que se ejecutan en hosts distribuidos
  • El despliegue de un subconjunto de las funcionalidades de nuestra aplicación en el caso de las líneas de productos, por ejemplo, o de un subconjunto de componentes que permitan construir aplicaciones a medida

La infraestructura como código ha demostrado ser una buena pista para una forma sistemática de crear y mantener la infraestructura y desplegar aplicaciones. Una pregunta relevante que se puede plantear es: ¿hasta qué punto podemos suministrar nuestras propias aplicaciones con técnicas de infraestructura como código?

Por último, es importante mencionar que BL-Forge, una plataforma de integración continua, ha sido creada por los equipos de BL-Tech, con herramientas DevOps actualizadas (GitLab, GitLab-CI, gestor del registro de Docker, SonarQube, Nexus, Ansible, Jenkinsetc.). Este trabajo sobre una plataforma que será utilizada por todas las instancias de Berger Levrault muestra un verdadero compromiso con la modernización de nuestros métodos de entrega y despliegue. Por lo tanto, consideraremos la conformidad de cualquier propuesta futura durante este proyecto con los requisitos de esta plataforma. También podemos cuestionar el uso de una plataforma tan "moderna" en el contexto de nuestras aplicaciones Legacy. Será necesario un análisis de viabilidad junto con la definición del camino a seguir para alcanzar este objetivo.

Más ...

Ir arriba