Realizar una ejecución seca de la actualización en un entorno de preproducción

Azure DevOps Server 2022 | Azure DevOps Server 2020 | Azure DevOps Server 2019

¿Necesito molestarme?

Se recomienda encarecidamente realizar una ejecución seca de la actualización en un entorno de preproducción, pero no siempre tiene sentido. Si está debatiendo si va a realizar o no una actualización previa a la producción, pesa los costos de hacerlo con respecto a los costos de no hacerlo. En concreto, si algo va mal con la actualización de producción, el costo principal será el tiempo de inactividad implicado mientras revierte a la versión anterior de TFS. Dependiendo de los detalles de la actualización, esto podría ser un proceso rápido y sencillo, o podría tardar mucho tiempo e implicar una gran cantidad de piezas móviles. Al igual que con la actualización, la complejidad de la reversión dependerá de cosas como el tamaño de las bases de datos, el número de máquinas implicadas, etc.

Conceptos básicos

Si decide avanzar con una actualización de preproducción, el proceso general consta de:

  1. Levantar un entorno de preproducción similar al entorno de producción.
  2. Protección del entorno de producción.
  3. Restauración de bases de datos a partir de copias de seguridad.
  4. Realizar la actualización.

Levantar un entorno

En un mundo ideal, el entorno de preproducción tendría exactamente el mismo aspecto que el entorno de producción, de esta manera obtendría una imagen tan precisa como sea posible de cuánto tiempo tardará la actualización, si se producirán problemas a lo largo del camino, etc. Sin embargo, en el mundo real, esto no siempre es posible o deseable. Los costos de aprovisionamiento de un segundo conjunto de máquinas idénticas para las pruebas de preproducción pueden ser prohibitivos. Sin embargo, no deje que estas discrepancias le desconocen, pero casi cualquier entorno de preproducción es mejor que nada.

Protección de producción

Las bases de datos de TFS contienen una serie de configuraciones que apuntan a varios recursos en su entorno de implementación. Por ejemplo, las cadenas de conexión de la base de datos de recopilación se almacenan en la base de datos de configuración, tal como es el recurso compartido de red usado por la característica de copias de seguridad programadas. Como resultado, es posible que un entorno de preproducción cause problemas en un entorno de producción y es un procedimiento recomendado al levantar un entorno de preproducción para tomar medidas para evitar esto.

El paso más importante que puede realizar es usar una cuenta de servicio en el entorno de preproducción que no tiene permisos para el entorno de producción. Lo ideal es que no tenga permisos en TFS, en SQL, en recursos compartidos de red, etc. Las opciones aquí incluyen Servicio de red (suponiendo que la cuenta de máquina de preproducción no necesita permisos en producción) o una cuenta de dominio de preproducción dedicada, como en el ejemplo siguiente.

Ejemplo de cuenta de servicio de preproducción

Otro paso opcional consiste en agregar entradas a los archivos de hosts de las máquinas de preproducción para asignar los nombres de las máquinas de producción a direcciones IP no válidas. Consulte la entrada de Wikipedia aquí si no está seguro de qué es un archivo de hosts. Esto puede impedir la comunicación saliente con las máquinas de producción desde las máquinas de preproducción.

Ejemplo de redirección de archivos de hosts de AT y DT

Restauración de bases de datos

Si usa el Asistente para copias de seguridad programadas para generar copias de seguridad de base de datos a partir de la implementación de producción, también puede usarla para restaurar copias de seguridad en la implementación de preproducción. Si no es así, también puede seguir los procedimientos sql estándar para restaurar las copias de seguridad. La lista de bases de datos para realizar copias de seguridad y restauración siempre debe incluir la base de datos de configuración y todas las bases de datos de recopilación. Si el entorno de preproducción incluirá características de informes, también debe incluir las bases de datos del servidor de informes y de almacenamiento.

Realización de la actualización

Instale la nueva versión de TFS en las máquinas de nivel de aplicación. Antes de ejecutar el asistente para actualización, ejecute el comando ChangeServerId. Esto garantizará que no se produzcan problemas si accede a los entornos de producción y de preproducción desde los mismos clientes, y debe realizarse cada vez que va a clonar una colección o una implementación completa.

Una vez que esté listo, actualice el entorno de preproducción siguiendo los mismos pasos que usará para actualizar la producción. Asegúrese de que recuerda usar una cuenta de servicio que no tenga permisos en el entorno de producción.

Configuración de nuevas características

Algunas actualizaciones presentan nuevas características que realizan pasos adicionales para configurar, ya que implican cambios de proceso en los proyectos existentes. Dependiendo de los detalles de los proyectos y la versión de TFS desde la que se va a actualizar, esto podría ser más o menos complicado. Vea aquí para obtener más detalles.

Prueba de cosas

¡Saca el servidor de preproducción para un giro! Póngase un poco, pruebe algunas de las nuevas características... Tenga en cuenta que algunas cosas, como la ejecución de compilaciones, requerirán alguna configuración adicional.

Si detecta algún problema, intente solucionarlos aquí para evitar volver a alcanzarlos en producción. Cuando esté satisfecho, llámalo un día y pasa a la actualización de producción.