Published on

September 20, 2007

Construyendo un entorno de lanzamiento de producción de múltiples niveles en SQL Server

Para mantener un sistema de producción estable y protegido, muchas empresas, incluida la nuestra, han implementado un entorno de desarrollo, aseguramiento de calidad (QA), puesta en escena y producción de múltiples niveles. Este artículo discutirá los procesos y herramientas que utilizamos para mover datos y estructuras desde el desarrollo hasta la producción, así como los desafíos que hemos enfrentado en el camino.

El entorno de desarrollo

El entorno de desarrollo a menudo se conoce como el “Lejano Oeste” porque los desarrolladores tienen la libertad de crear y cambiar procedimientos y funciones según sea necesario. Sin embargo, para garantizar un proceso de desarrollo controlado y organizado, recopilamos todos los cambios estructurales y los publicamos una vez a la semana en el entorno de desarrollo. Esto permite a los desarrolladores abordar cualquier problema causado por los cambios en la base de datos y garantiza que solo se verifiquen en el control de versiones los procedimientos probados a nivel de unidad.

Utilizamos Embarcadero ERStudio para mantener nuestro modelo de base de datos y Visual Source Safe (VSS) para el control de versiones de nuestro código SQL. El control de código fuente y la versión han demostrado ser invaluables para mantener un proceso de desarrollo confiable y consistente.

El entorno de QA

Una vez que se completa la prueba de unidad en el entorno de desarrollo, realizamos una compilación del entorno de QA. Utilizamos Embarcadero ChangeManager para migrar estructuras desde el desarrollo hasta QA. Esta herramienta captura con precisión las diferencias en las estructuras, aunque a veces es necesario generar scripts diferenciales varias veces para asegurarse de que se capturen todos los cambios.

Para migrar datos de tablas de búsqueda, utilizamos la utilidad Data Compare de RedGate. Esta herramienta nos permite mover datos entre entornos con precisión, aunque ocasionalmente puede ser necesario generar scripts para asegurarse de que todos los datos se migren correctamente.

Utilizando estas herramientas, hemos establecido un proceso repetible y seguro que nos permite realizar múltiples compilaciones de QA por semana a medida que nos acercamos a un lanzamiento.

El entorno de puesta en escena

El entorno de puesta en escena sirve como un clúster de respaldo en caso de una pérdida catastrófica de producción. También es donde eliminamos cualquier problema restante antes de pasar a producción. Restauramos la copia de seguridad más reciente del entorno de producción en el sistema de puesta en escena y generamos scripts utilizando Embarcadero ChangeManager y RedGate Data Compare. A diferencia de QA, no ejecutamos la comparación varias veces hasta que sea perfecta. En su lugar, editamos el script para solucionar cualquier error y lo probamos contra la base de datos de producción restaurada en puesta en escena.

Este proceso se repite hasta que el script, con todos los cambios estructurales y de datos, se pueda ejecutar sin errores en el entorno de puesta en escena. Luego se realiza otra comparación para asegurarse de que todos los cambios se hayan migrado correctamente.

Lanzamiento a producción

Después de una prueba exhaustiva en el entorno de puesta en escena, estamos listos para lanzar a producción. El proceso de lanzamiento a producción es relativamente simple. Ejecutamos el script que se ha probado en puesta en escena como parte del proceso de lanzamiento de código. Antes de ejecutar el script, nos aseguramos de que todas las conexiones de usuario se hayan cerrado y aislamos la base de datos. También realizamos una copia de seguridad para mayor seguridad.

Si el script se ejecuta sin errores y pasa una verificación de consistencia, hemos actualizado con éxito el sistema de producción. Sin embargo, si ocurren errores durante el lanzamiento a producción, estamos preparados para aplicar las copias de seguridad para garantizar la continuidad del sistema de producción.

Lecciones aprendidas

A lo largo de este proceso, hemos enfrentado varios desafíos y aprendido lecciones valiosas. La compilación semanal de desarrollo puede ser una bendición y una maldición, dependiendo del número de cambios. La comunicación entre los equipos de desarrollo y el equipo de DBA es crucial para evitar sorpresas causadas por dependencias en otros equipos.

Las compilaciones de QA, debido a su naturaleza y frecuencia, pueden ser problemáticas. Asegurar que los cambios incrementales se implementen con precisión sin pérdida de datos requiere atención cuidadosa. Los retrasos en el proceso de compilación de QA pueden afectar la productividad del equipo de QA y ralentizar el desarrollo.

Aunque la compilación de puesta en escena es relativamente sencilla, el tiempo requerido para hacer todo correctamente puede afectar los horarios. Los gerentes de proyecto deben asignar suficiente tiempo para el proceso de compilación para garantizar su éxito.

Una de las mayores victorias en todo este proceso ha sido la documentación y el cumplimiento del proceso documentado. Al identificar y abordar deficiencias, hemos podido mejorar el proceso e incorporar a otros DBA y equipos de desarrollo de manera más fluida. El éxito de este esfuerzo de desarrollo incluso ha llevado a la migración de estos procesos a otros proyectos.

En conclusión, construir un entorno de lanzamiento de producción de múltiples niveles en SQL Server requiere una planificación cuidadosa, el uso de herramientas adecuadas y una comunicación efectiva entre los equipos. Siguiendo un proceso estructurado y mejorándolo continuamente, las empresas pueden garantizar un sistema de producción estable y protegido.

Recuerda, siempre es mejor estar preparado y tomar precauciones adicionales, como realizar copias de seguridad adicionales, para proteger el entorno de producción.

Click to rate this post!
[Total: 0 Average: 0]

Let's work together

Send us a message or book free introductory meeting with us using button below.