El proceso de creación de una nueva construcción y su lanzamiento a producción es un paso crítico en el SDLC, pero a menudo se deja como una ocurrencia tardía y varía mucho de una empresa a la siguiente.Mejoras en el proceso de liberación
Espero que las personas compartan las mejoras que han realizado en este proceso en su organización para que todos podamos tomar medidas para 'reducir el dolor'.
Entonces, la pregunta es, especifique una parte dolorosa/que consume mucho tiempo de su proceso de lanzamiento y ¿qué hizo para mejorarla?
Mi ejemplo: en un empleador anterior, todos los desarrolladores realizaron cambios de base de datos en una base de datos de desarrollo común. Luego, cuando llegó el momento del lanzamiento, utilizamos SQL Compare de Redgate para generar un script enorme a partir de las diferencias entre las bases de datos Dev y QA.
Esto funciona razonablemente bien, pero los problemas con este enfoque son: -
- todos los cambios en la base de datos Dev están incluidos, algunos de los cuales todavía pueden ser 'obras en curso'.
- A veces los desarrolladores realizaron cambios conflictivos (que no se notaron hasta que la versión estuvo en producción)
- Fue un proceso lento y manual para crear y validar la secuencia de comandos (validar quiero decir, tratar de eliminar problemas como el problema 1 y 2).
- Cuando hubo problemas con el script (por ejemplo, el orden en que se ejecutaron las cosas, como crear un registro que se basa en un registro de clave externa que está en el script pero aún no se ejecutó) tardó un tiempo en "modificarlo" funcionó sin problemas.
- No es un escenario ideal para la integración continua.
Así que la solución era: -
- hacer cumplir una política de todos los cambios en la base de datos debe ser un guión.
- Una convención de nomenclatura era importante para garantizar el correcto orden de ejecución de los scripts.
- Crear/Usar una herramienta para ejecutar los scripts en el momento del lanzamiento.
- desarrolladores tenían su propia copia de la base de datos se desarrollan en contra (lo que no hubo más 'pisar los demás dedos de los pies')
El siguiente lanzamiento después de que empezamos este proceso fue mucho más rápido con menos problemas, de hecho los únicos problemas encontrados se debieron a que la gente "rompió las reglas", por ejemplo, no crear un guión.
Una vez que se solucionaron los problemas con la liberación de QA, llegó el momento de lanzar a producción y fue muy sencillo.
Aplicamos algunos otros cambios (como la introducción de CI) pero este fue el más significativo, en general redujimos el tiempo de liberación de alrededor de 3 horas a un máximo de 10-15 minutos.
ver también http://serverfault.com/questions/16698/what-do-you-wish-developers-would-do-differently ... muchas de las respuestas a esa pregunta se relacionan directa o indirectamente con el proceso de publicación pasos –