mejores prácticas para la implementación (OMI)
- copias de seguridad de base de datos/sitio web
- Todo está escrito: no se conecta manualmente a la base de datos para agregar en esa columna adicional
- Ya ha probado la implementación en un área de ensayo (en una copia de los datos en vivo)
- Tiene un plan de reversión (incluso si solo restaura las bases de datos)
- La implementación es repetible: debe contener todos los archivos necesarios para configurar el sitio según esa versión, no solo los archivos que cambiado
- Libera la misma compilación en cada entorno, no compila una nueva versión del código al pasar de la etapa a la producción
- Versión del servidor de compilación, no de una máquina de desarrollo individual, de esa manera debería sé el mismo sin importar quién haga la liberación.
- Cuanto menor sea el cambio que está liberando viven menos que pueden salir mal, la liberación debería ocurrir a menudo y que debe ser fácil
Técnicamente no hay nada malo con la liberación directamente de TFS a la producción, siempre y cuando' he probado suficientemente el código en el camino.
El entorno ideal que una gran cantidad de desarrolladores sueño de tener más o menos así
- Desarrollador cheques en código
- servidor de compilación agarra el código, asegura que se construye, ejecuta pruebas de toda la unidad
- El servidor de compilación implementa el código en una máquina de prueba y ejecuta pruebas automáticas
- Si todo se aprueba, el código se envía en vivo
Por supuesto, no hay muchas casas de desarrollo que tengan suficientes unidades/pruebas automatizadas en su lugar que se sientan seguras empujándolas en vivo tan rápidamente.
TFS Deployer hace mucho de su trabajo en segundo plano, la mayoría de la gente ni siquiera tendrá que saber que no es una característica de TFS. También se puede integrar en gran medida con todas las características de compilación y prueba para garantizar que la calidad del código sea buena desde el principio.
Código de congelación es una mala idea, no desea que sus recursos de desarrollo tengan un tiempo de inactividad en el que no puedan tocar el código. En su lugar, debería buscar una estrategia de ramificación que funcione para usted. Hay muchos por ahí, pero aquí está el principal 3 que se me ocurre:
basada en la calidad - usted guarda una rama de Dev, uno para la estadificación y uno para la producción. A medida que el código pasa cada conjunto de pruebas, fusiona manualmente sus conjuntos de cambios en la siguiente rama. Esto también significa que puede corregir fácilmente un error en la producción sin liberar nuevos cambios que aún no están listos.
Basado en versión - Hace todos los desarrolladores en la rama principal, cuando una versión está completa, la ramifica y solo toca esa rama para hacer correcciones de errores. Esto también le permite corregir los errores en vivo (o en cualquier otra versión que pueda estar respaldando) sin tener que revelar un nuevo código no probado.
Característica basada - todo el desarrollo ocurre en nuevas ramas, una vez que se completa se fusiona de nuevo en el tronco. El tronco es la única rama que se libera.
Recomendaría que no se bifurquen hasta que se necesite la derivación. Mucha gente no sabe que puedes ramificar desde un conjunto de cambios específico/fecha. Esto significa que, si sabe cuándo se realizó un lanzamiento, puede ramificarlo cuando necesite aplicar una corrección de error, luego vuelva a fusionarlo en el tronco. Por supuesto, requiere mucha más disciplina al momento de la publicación, ya que siempre debe saber qué conjunto de cambios se está ejecutando en el servidor.
Por supuesto que podría estar leyendo su publicación de forma incorrecta, quizás no esté solicitando las mejores prácticas en materia de implementación, pero realmente le pregunto cómo hacer que su gerente crea que las cosas deben probarse antes de que se publiquen. Si es así, tienes un problema mucho más grande. Los desarrolladores (normalmente) no son buenos evaluadores, ciertamente no por algo que codificaron. Si no cuenta con probadores y procesos dedicados para hacer cumplir las pruebas unitarias y las pruebas automáticas, entonces realmente debería considerarlas primero.
¿Está utilizando Visual SourceSafe (VSS) o está utilizando Team Foundation Server (TFS)? –
VSS, BTW, que tiene aproximadamente otros 360 días de compatibilidad. Consulte http://support.microsoft.com/lifecycle/search/default.aspx?sort=PN&qid=&alpha=Visual+SourceSafe+2005&Filter=FilterNO –
Estamos usando TFS. Lo siento, pensé que lo había dejado claro. –