Herramienta para almacenar la configuración por entorno


11

Tengo el requisito de almacenar información de configuración por entorno en una herramienta.

Esta es una herramienta con una GUI para agregar / actualizar valores de configuración (por ejemplo, cadenas de conexión). Esto debería tener un valor predeterminado y poder cambiarlo en función de diferentes entornos.

Debe haber una API para recuperar estos valores de configuración durante la implementación en un entorno particular para agregar a la aplicación.

He buscado durante un tiempo y no puedo ver ninguna herramienta que se ajuste a esta factura. ¿Hay alguna sugerencia?

Nota : Actualmente, la configuración está en las variables de TeamCity y la implementación se realiza mediante scripts de PowerShell.


¿Por cosas pagas? ¿Tiene algún sistema de gestión de configuración? ¿Qué utilizas para implementar?
Tensibai

Las opciones pagas se configurarán. Actualmente, la configuración está en las variables de TeamCity y la implementación se realiza mediante scripts de PowerShell.
tim

No es estrictamente una respuesta, por lo tanto, un comentario: ¿ha considerado usar Octopus Deploy para implementaciones, ya que le permite administrar la configuración ambiental de una manera altamente flexible?
Richard Slater

Si utiliza un sistema de control de fuente de ramificación disperso, como ClearCase, simplemente puede ramificar los archivos con modificaciones, puede observar estrategias para manejar los cambios OSD (dependientes del sistema operativo) en VCS. Si usa git, necesitaría seguir cambiando las ramas no predeterminadas constantemente. Algunas herramientas de configuración tienen configuraciones por entorno a través de variables. En Ansible tengo un archivo con valores predeterminados variables y superposiciones para entornos que no son de producción. No almacene ninguna configuración en las herramientas de CI, deben estar todas en VCS. Incluyendo las configuraciones TC.
Jiri Klouda

Recomendamos almacenar toda la configuración con la fuente. Tenemos múltiples servicios azure y utilizamos la sintaxis de transformación azure para todas las personalizaciones del entorno. ver msdn.microsoft.com/en-us/library/dd465318(v=vs.100).aspx . Y en realidad hacemos esto con powershell en el momento de la implementación como parte de la instalación. Dependiendo de dónde se conecte a la tubería, puede hacer esto antes de poner bits en la caja o, para las contraseñas, después. Usamos Azure Key Vault para los secretos para que nunca aparezcan en el control de código fuente.
No hay reembolsos No hay devoluciones

Respuestas:


6

Hay muchas herramientas que pueden hacer algo como esto, incluidas las herramientas de administración de configuración como Chef, Ansible o Puppet; y herramientas KVS como Consul y etcd. También puede integrarlo como un paso de compilación en su servidor CI, o eludir el problema usando la configuración en vivo en tiempo de ejecución contra un almacén de configuración externo (de nuevo, algo como Consul o etcd, o cualquier base de datos).


1

Posiblemente un repositorio diferente? Uno con ramas para QA, UAT, Prod (de ni más). Un repositorio diferente a los repositorios habituales de "Código como Código" e "Infraestructura como Código".

Es muy matizado. Cuánta configuración por env. ¿Se alterna entre lanzamientos? Si esos estados de alternancia mantienen el estado a pesar de las implementaciones binarias. ¿Para qué cliente, cliente, invitado o usuario mantiene la configuración?

Escribí un montón de entradas de blog (y prototipos / demostraciones) sobre el tema durante 5 años, incluidas las IU para alternar (si las necesita).

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.