Implementar aplicaciones asegurando la reutilización, la alta disponibilidad y el correcto balanceo de la carga computacional, requiere que dichas aplicaciones se dividan en micro-servicios y que estos estén clusterizados, tanto a nivel de servicio - con balanceadores de carga - como a nivel de datos - con una plataforma de computación distribuida.

Estos requisitos plantean ciertos retos que debes tener en cuenta si quieres asegurar el éxito de tus proyectos:

  • ¿Cómo repartir las cargas de trabajo de forma eficiente entre tus aplicaciones en clúster?
  • ¿Cómo garantizar las consistencia de los datos?
  • ¿Cómo sincronizar procesos críticos entre aplicaciones en clúster?
  • ¿Cómo actualizar tus aplicaciones sin que se vea afectada la disponibilidad de tu sistema?
  • ¿Cómo monitorizar tus aplicaciones en un clúster con un número elevado de instancias?

El objetivo de diseñar aplicaciones como un conjunto de micro-servicios es desacoplar funcionalidades de alto nivel para permitir su reutilización, facilitar las actualizaciones y realizar escalados selectivos en función de, por ejemplo, si un determinado micro-servicio requiere más o menos recursos en un momento determinado.

Pero, ¿cómo puedes hacerlo con aplicaciones de Mule en Kubernetes?

En este artículo te daremos algunas claves uniendo la productividad de Mule dentro del ecosistema de Spring Boot junto con la potencia de computación distribuida de Apache Ignite - y los conectores de Apache Ignite para Mule 4 o de GridGain para Mule 4 - y las capacidades de orquestación de contenedores y servicios de Kubernetes.

Recientemente hemos liberado la librería Spring Boot starter para Mule 4, que te permitirá ejecutar el Runtime de Mule como una aplicación de Spring Boot y te proporcionará algunas características muy interesantes:

  • Despliegue sencillo de aplicaciones de Mule como micro-servicios en Kubernetes u otra plataforma de gestión de contenedores.
  • Desplegar artefactos de Mule (aplicaciones y dominios) almacenados en un repositorio externo.
  • Servicios de despliegue de artefactos de Mule a través de controladores REST de Spring Boot, a modo stand-alone.
  • Administración y monitorización de los runtime de Mule con Spring Boot Admin Server:
    • Gestión del nivel de log de forma sencilla.
    • Visualización y descarga del log.
    • Métricas de memoria y de la JVM.
    • Interactuar con JMX-beans.
    • Mostrar estado de salud de Mule y las aplicaciones desplegadas.

image

Como una imagen vale más que mil palabras, te recomendamos que le eches un vistazo a estos ejemplos:

image

image

Conclusiones

Desplegar aplicaciones de Mule 4 en Kubernetes junto con Apache Ignite o GridGain nos permitirá construir sistemas altamente productivos y fácilmente escalables: