Soporte al ciclo de vida de los microservicios


Introducción

La plataforma proporciona la integración con los sistemas al cargo del ciclo CI/CD.

A tal fin, la plataforma proporciona una herramienta para crear y administrar el ciclo de vida de aplicaciones web y microservicios desde la consola web del panel de control, siguiendo los estándares del ciclo CI/CD: creación, compilación, ejecución de pruebas, generación de imágenes Docker y despliegue en CaaS


Las funcionalidades que proporciona este ciclo de vida desde la plataforma son:

  1. Creación de microservicios.
  2. Descarga de código y desarrollo.
  3. Compilación del código y generación de imágenes Docker desde Jenkins.
  4. Despliegue de las imágenes Docker en la plataforma CaaS.
  5. Actualización de un Microservicio.

Creación de microservicios

Al crear un microservicio en la plataforma, un desarrollador registra un nuevo artefacto desplegable. Automáticamente la plataforma genera toda la infraestructura para soportar el ciclo de vida completo :

  • Proyecto en repositorio GIT basado en Maven y Spring Boot, con un esqueleto predefinido según el propósito del artefacto, e incluyendo las APIs de la plataforma para facilitar a los desarrolladores la interacción con los diferentes módulos de la plataforma.
  • Pipeline Jenkins encargado de descargar el código desde una rama estable del repositorio GIT, y lanzar las tareas de compilación, ejecución de pruebas unitarias y de integración, aseguramiento de la calidad, generación de imágenes Docker y publicación de imágenes en el registro Docker.
  • Despliegue y ejecución en plataforma CaaS del microservicio encargado de descargar la imagen desde un registro Docker y desplegarla en contenedor en un entorno donde se exponga como servicio y pueda consumir servicios de la plataforma y otros microservicios.


Al crear un nuevo microservicio, el desarrollador con proporcionar información del propio microservicio, como su identificación, tipo de microservicio (plantilla), ontologías que utilizará y configuración del servicio (puerto y path de contexto).

Cada plantilla de tipo de microservicio proporciona un arquetipo para generar un esqueleto de código para iniciar el desarrollo.
Dependiendo de la plantilla, el esqueleto de código base cambiará y se añadirán o no dependencias del proyecto, incluyendo las que son APIs de la plataforma. Por ejemplo :

    • APIs para conectar con el broker de la plataforma.
    • APIs para registrar el artefacto en la plataforma como Digital Twin.
    • APIs para autenticar con el Single-Sign-On de la plataforma.




Durante la creación del microservicio también se proporciona la configuración de la plataforma GIT, Jenkins y containers CaaS que apoyarán el ciclo de vida CI/CD del microservicio. El desarrollador puede elegir entre la configuración por defecto (proporcionada por un administrador de la plataforma) o una configuración manual para proporcionar una instancia específica de cualquiera de estos sistemas.


También es posible crear un microservicio a partir de un proyecto existente. En este caso, el desarrollador proporcionará la configuración del repositorio GIT donde está asignado el proyecto y se saltará el paso de crear un nuevo proyecto en un repositorio.


Descarga de código y desarrollo

Una vez generado el microservicio, está disponible para su descarga desde el repositorio GIT. Para ello, la url del proyecto en Gitlab está disponible desde el Panel de Control:





Usando las herramientas del IDE de los desarrolladores, un desarrollador puede clonar el repositorio del proyecto, descargando el código generado por la plataforma para el microservicio:

Una vez descargado, se puede importar en Eclipse para comenzar el desarrollo. Como puedes ver, el esqueleto proporciona un conjunto de paquetes y fragmentos de código para facilitar el desarrollo:

Una vez que se desarrolle una nueva funcionalidad, el código se subirá al repositorio GIT:

Compilación del código y generación de imágenes Docker desde Jenkins

Una vez creado el microservicio, el código fuente subido al repositorio GIT puede ser compilado para generar una imagen Docker. Un pipeline de Jenkins generado durante la creación del microservicio realiza esta tarea.
Este pipeline también se encarga de ejecutar las pruebas unitarias y de integración y de las reglas de aseguramiento de la calidad.
Desde el panel de control de la plataforma podemos ejecutar el pipeline seleccionando la rama de origen en el repositorio GIT y generar imágenes Docker con una etiqueta específica, registrándolas en un registro Docker.

Despliegue de las imágenes Docker en la plataforma CaaS

Desde el panel de contro, puedes desplegar en la plataforma CaaS una imagen Docker generada en el paso anterior. En este caso, el desarrollador debe seleccionar el entorno en la plataforma CaaS, el host donde el CaaS creará el contenedor y el DNS donde se expondrán los servicios.




Una vez desplegado, el Microservicio estará disponible en la dirección DNS.

Actualización de un Microservicio

Un microservicio desplegado puede ser redistribuido para cambiar cualquier propiedad o para desplegar una nueva imagen Docker.