La administración de la configuración de la aplicación es fundamental para los microservicios que se ejecutan en la nube porque las instancias de microservicio deben iniciarse rápidamente con una mínima intervención humana. Cada vez que un ser humano necesita configurar o tocar manualmente un servicio para implementarlo, es una oportunidad para un cambio de configuración, una interrupción inesperada y un retraso en la respuesta a los desafíos de escalabilidad con la aplicación.
Comencemos nuestra discusión sobre la administración de la configuración de aplicaciones estableciendo cuatro principios que queremos seguir:
- Segregar: queremos separar completamente la información de configuración de los servicios de la implementación física real de un servicio. La configuración de la aplicación no debe implementarse con la instancia de servicio. En cambio, la información de configuración debe pasarse al servicio inicial como variables de entorno o leerse desde un repositorio centralizado cuando se inicia el servicio.
- Resumen: en lugar de escribir código que acceda directamente al repositorio de servicios (es decir, leer los datos de un archivo o una base de datos usando JDBC), debemos hacer que la aplicación use un servicio JSON basado en REST para recuperar los datos de configuración.
- Centralizar: dado que una aplicación basada en la nube puede tener literalmente cientos de servicios, es fundamental minimizar la cantidad de repositorios diferentes que se utilizan para almacenar información de configuración. Centralice la configuración de su aplicación en el menor número posible de repositorios.
- Solida: debido a que la información de configuración de la aplicación estará completamente segregada y centralizada, es fundamental que cualquier solución que utilice se pueda implementar para que sea altamente disponible y redundante.
Cuando separamos la información de configuración fuera de su código real, se está creando una dependencia externa que deberemos administrar y controlar. No puedo enfatizar lo suficiente que los datos de configuración de la aplicación deben ser rastreados y controlados por versiones porque la configuración de la aplicación mal administrada es un caldo de cultivo fértil para errores difíciles de detectar e interrupciones no planificadas.
La carga de la administración de la configuración para un microservicio ocurre durante la fase de arranque del microservicio.
Tomemos los cuatro principios que presentamos anteriormente y veamos cómo se aplican estos cuatro principios cuando el servicio se está iniciando.
Cuando aparece una instancia de microservicio, llamará a un end point de servicio para leer su información de configuración que es específica del entorno en el que está operando. La información de conexión para la gestión de la configuración (credenciales de conexión, end point del servicio, etc.) se pasará a el microservicio cuando se inicia.
La configuración real residirá en un repositorio. Según la implementación de su repositorio de configuración, puede optar por utilizar diferentes implementaciones para almacenar sus datos de configuración. Las opciones de implementación pueden incluir archivos bajo control de fuente, una base de datos relacional o un almacén de datos de valor clave.
La gestión real de los datos de configuración de la aplicación se produce independientemente de cómo se implemente la aplicación. Los cambios en la administración de la configuración generalmente se manejan a través de la canalización de construcción e implementación, donde los cambios de la configuración se pueden etiquetar con información de versión e implementar a través de los diferentes entornos.
Cuando se realiza un cambio en la gestión de la configuración, los servicios que utilizan esos datos de configuración de la aplicación deben ser notificados del cambio y actualizar su copia de los datos de la aplicación.
En este punto, hemos trabajado en la arquitectura conceptual que ilustra las diferentes piezas de un patrón de gestión de la configuración y cómo encajan estas piezas. Ahora pasaremos a analizar las diferentes soluciones para el patrón y luego veremos una implementación concreta. Pero como el post me quedo muy largo, esto va a sen analizado en el siguiente post.
Dejo link : https://emanuelpeg.blogspot.com/2021/12/la-gestion-de-la-configuracion-en_22.html