External Configuration Store pattern
Problema
Tenemos una aplicación Este servicio se comunica con
- Un servicio de cache
- Un storage
- Una cola
- Una Base de datos
- Un CDN* (Content Delivery Network)
Esto genera tener muchas configuraciones: Cadenas de conexión, tamaño maxima de archivos, numero de reintentos,etc.
Cuando se hagan despliegues de varias va a existir las configuraciones repetivas y si hay una más de una aplicación que necesita configurarse, va a necesitar abrir cada aplicación para configurarla (múltiples metodos: txt, web.config, etc). y puede necesitar reiniciar la aplicación (Perdida de confianza).
Solución
Tenemos una Aplicación A y una Aplicación B, donde la aplicación B, donde B es una aplicación de configuraciones, donde se va a solicitar la configuración (contraseña, cadena de conexión), B conoce la configuración pertinente de cada servicio.
Si se necesita reiniciar o recompilar, se recompila una única aplicación.
En Azure: Key Vault, App Configuration.
Consideraciones:
- Debe estar 100% up, si es un servicio en azure no nos preocupamos.
- Flexible (JSON, XML. Database)
- Mayor seguridad, por qué esta toda la información de acceso.
Cuando?
- Cuando compartimos configuración en múltiples aplicaciones
- Sistemas de configuración no soportan configuraciones necesarias.
- Nuestras configuraciones cambian a menudo
- Necesitamos monitorear el uso de las configuraciones.
Código Git: external-configuration-store
Referencias:
Buen aporte
ResponderBorrar