1. Administrando las propiedades de configuración por entornos


Cuando desarrollas una aplicación en Anypoint Studio, es imprescindible que sea desplegable en los distintos entornos de la organización sin necesidad de modificar el proyecto. Para lograr esto, se definen las propiedades específicas de cada entorno dentro del proyecto de la aplicación.

 

Conceptos Básicos de Propiedades en Mule

Propiedades de Aplicación: Son configuraciones que pueden variar entre distintos entornos. No es necesario recodificar la aplicación para cambiar estas propiedades; se pueden usar marcadores de posición (placeholders) que permiten ajustes flexibles.

Gestión de Propiedades. Nivel de Aplicación:

  • Configuradas en archivos de propiedades específicos de la aplicación Mule (usualmente .properties o .yaml).
  • Empaquetadas dentro del JAR deployable de la aplicación Mule.
  • Solo afectan a la aplicación Mule para la cual están definidas.

Gestión de Propiedades. Nivel de Sistema:

  • Se establecen como variables del sistema Java Virtual Machine (JVM).
  • Se pueden configurar de varias maneras, dependiendo de la plataforma y el entorno de despliegue:
    1. Para aplicaciones locales o en servidores que no sean CloudHub, se suelen configurar en el archivo wrapper.conf, que forma parte del Mule Runtime, a través de la opción wrapper.java.additional. En Anypoint Studio al desplegar localmente se pueden configurar las propiedades de sistema.
    2. En entornos como CloudHub, puedes configurar las propiedades del sistema en la sección de Settings de la consola de administración de CloudHub al desplegar o actualizar una aplicación.

Sobrescritura de Propiedades:

  • Las propiedades a nivel del sistema sobrescriben las del nivel de aplicación.
  • El «Runtime Manager Properties» en Mule permite modificar valores de propiedades en tiempo de ejecución.

Tipos de Propiedades y Casos de Uso:

  • Conector: Hostnames, puertos, pools de conexiones, intervalos de sondeo.
  • Afinación de Rendimiento: Pools de conexión, límites de reconexión, frecuencias de sondeo.
  • Seguridad: Valores de propiedades seguras vs. no seguras.
  • Ambientes y Recursos: Nombres y ubicaciones externas de archivos y otros recursos.
  • Otras Propiedades de Aplicación: Configuraciones de mensajes JMS.

 

Externalización y Gestión de Configuración

Externalización:

  • Las propiedades que cambian con frecuencia deben estar externalizadas en archivos de configuración (.properties o .yaml).
  • Facilita la actualización y migración de aplicaciones Mule, especialmente útil para entornos alojados por el cliente.

Gestión de Configuración Avanzada:

  • Para CI/CD, se pueden tener propiedades externalizadas gestionadas por proveedores como HashiCorp Vault, Azure Vault, o Spring Cloud config.
  • Requiere una integración personalizada pero proporciona una gestión de configuración más robusta y segura.

Recuerda, puedes definir las propiedades de los entornos en dos formatos: .yaml, que es más legible y estructurado, y .properties, que es simple y tradicional. La elección entre uno y otro dependerá de tus necesidades específicas y del entorno en el que estés trabajando.

Conclusión

Entender y gestionar adecuadamente las propiedades de configuración en MuleSoft es clave para el éxito en el despliegue de aplicaciones adaptables a diversos entornos. Esta guía te ofrece el conocimiento esencial para manejar estas propiedades de forma efectiva, asegurando que tus aplicaciones sean tan dinámicas y flexibles como los entornos en los que operan.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *