He disfrutado el uso de Rails en Heroku, y así puedo ajustar la propiedad de configuración de una aplicación Heroku sin tener que realizar un cambio en xyz.yml
y volver a implementarlo.Administrar config en aplicaciones de 12 factores
Sería bueno deshacerse por completo de los archivos de configuración de Yaml en mi aplicación Rails, y confiar tanto en almacenar la configuración en ENV. Esto va junto con el principio 12-factor config.
Sin embargo, hay algunas concesiones en el cambio de una administración de configuración basada en Yaml a una basada en Heroku/12-factor.
- Si bien es cierto que una proliferación de despliegues (QA, escenario, prod, dev, demo, laboratorios) puede dar lugar a una proliferación de archivos YAML, es muy fácil de copiar y pegar para crear un nuevo perfil de configuración. No veo una forma de 'copiar' los perfiles de configuración de una implementación a otra en Heroku.
- Almacenar los datos de configuración en el repositorio significa que, en el caso de Heroku, la implementación, la configuración y la aplicación se realizan en una sola operación. Si tuviera que mover mi configuración de archivos Yaml a variables ENV, tendría que configurar mi aplicación en un paso separado después de la implementación.
Me gustaría saber de las personas que han utilizado la configuración de estilo de 12 factores en sus aplicaciones privadas, y cómo han administrado muchas variables de configuración en muchas implementaciones.
- ¿Cómo se configura rápidamente una nueva implementación?
- ¿Dónde guarda su fuente autorizada de variables de configuración, sino el repositorio? ¿Cómo se distribuye entre los desarrolladores?
Gracias!
No trabajo con Heroku, pero considero que 12 factor podría aplicarse a cualquier aplicación SaaS. Puedo crear un script de shell personalizado para crear esa configuración en mi entorno. Pero, después de este trasfondo, mi pregunta es: ¿no hay una preocupación de seguridad en hacer que mis valores de configuración, como los datos de acceso a la base de datos, se conviertan en env vars? –