Imagine un sistema que tiene una gran cantidad de servidores. Cada uno de ellos tiene una serie de configuraciones:
- Algunos específicos para el servidor.
- Algunos específicos de la región.
- Algunos comunes en todos ellos
- Tal vez pueda tener algunas agrupaciones personalizadas, como este grupo de servidores es solo para lectura
- etc.
La práctica actual que tengo en mente es una estructura de propiedad simple con habilidades primordiales.
Tomemos los servidores de Google para el propósito del ejemplo. Cada uno de ellos tiene una lista de configuraciones para cargar.
Por ejemplo, el servidor de Londres puede tener:
rootsettings.properties
, europesettings.properties
, londonsettings.properties
, searchengine.properties
, Etc.
Donde cada archivo contiene un conjunto de propiedades y la secuencia de carga le permite anular propiedades, cuanto más avance.
Por ejemplo: rootsettings.properties
puede tener accessible=false
por defecto, pero se reemplaza searchengine.properties
conaccessible=true
El problema que tengo con esta estructura es que es muy fácil perder el control. No está estructurado en absoluto, lo que significa que puede definir cualquier propiedad en cualquier nivel y muchos elementos pueden quedar obsoletos.
Además, cambiar un nivel medio se vuelve imposible a medida que la red crece, ya que ahora afecta a una gran cantidad de servidores.
Por último, pero no menos importante, cada instancia individual puede necesitar 1 propiedad especial, lo que significa que su árbol termina con una configuración para cada servidor de todos modos, por lo que no es una solución muy óptima.
Le agradecería mucho si tiene alguna sugerencia / idea de una mejor arquitectura de gestión de la configuración.