En mi experiencia, la estrecha comunicación entre el equipo de desarrollo y el equipo de infraestructura se puede fomentar lanzando con frecuencia. Mientras más liberes, más sabes realmente cuál es la variabilidad entre tus entornos. Esto también le permite eliminar configuraciones innecesarias.
Aquí se aplica un corolario a la ley de conway: sus archivos de configuración se parecerán a la variedad de entornos en los que se implementa su aplicación (planificada o real). Cuando tengo un equipo que despliega aplicaciones internas, tiendo a conducir hacia config en código para todos los problemas arquitectónicos (pools de conexión, etc.) y config en archivos para todas las configuraciones ambientales (nombres de usuario, cadenas de conexión, direcciones IP). Si hay diferentes inquietudes arquitectónicas en diferentes entornos, los encapsularé en una sola clase y convertiré ese nombre de clase en parte de los archivos de configuración, p.
container.config = FastInMemoryConfigurationForTesting container.config = ProductionSizedConfiguration
Cada uno de estos va a utilizar una configuración común, pero anulará/reemplazar aquellas partes de la arquitectura que deba sustituirse.
Sin embargo, esto no siempre es apropiado. Hay varias cosas que afectarán su elección:
1) cuánto tarda después de liberar una nueva gota antes de desplegarse con éxito en cada entorno de producción y recibe comentarios sobre ese entorno (tiempo de ciclo) 2) La variabilidad en entornos implementados 3) La precisión de los comentarios obtenidos de los entornos de producción.
Por lo tanto, cuando tiene un cliente que distribuye su aplicación a sus equipos de desarrollo para la implementación, tendrá que hacer que su aplicación sea mucho más configurable que si la implementara usted mismo. Usted podría seguir confiando en la configuración en el código, pero eso requiere que el público objetivo entienda su código. Si utiliza un enfoque de configuración común (por ejemplo, Spring), le facilitará a los usuarios finales la adaptación y los problemas de solución en su producción.
Pero una rúbrica es: la capacidad de configuración es un sustituto de la comunicación.
¿Qué quiere decir con "configuración"? –
Encontré lo que se estaba perdiendo: cumplimiento de palabra de moda. ;-) –
En primavera, la configuración sería el cableado de frijoles usualmente hecho a través del archivo XML applicationContext.xml –