Entornos / Ramas / Publicaciones


ENTORNOS EN AZURE

Se crearon 3 entornos en Azure dentro de un mismo grupo de recursos:

  • DEV: Web application Dev + SQL DataBase Dev.
  • UAT: Web application Test + SQL DataBase Test.
  • PROD: Web application PROD + SQL DataBase Prod.


RAMAS

Se plantearon 4 ramas:

  • DEV_Web: Rama donde integrar los nuevos desarrollos que cada miembro del equipo iba realizando para sincronizar el trabajo. Aunque una buena práctica es generar ramas por cada funcionalidad independiente luego realizar el Merge correspondiente en este caso se decidió abordarlo así por el tamaño del equipo de desarrolladores.
  • DEV: Rama donde integrar los nuevos desarrollos completos siendo desplegada en Azure DEV pasando previamente todos los Tests asociados. Una vez publicada en su aplicación web de Azure Dev se testeaban manualmente los cambios por parte del equipo.
  • UAT: Rama donde eran desplegada las modificaciones testeadas correctamente por el equipo para un chequeo por parte del equipo de negocio para verificar que éstas cumplían el comportamiento requerido.
  • PROD: Rama para ser desplegada en un entorno de PROD en Azure. Es la versión final testeada por el equipo de negocio y utilizada por el usuario final.


DESARROLLOS Y DESPLIEGUES

Una vez hecho un nuevo desarrollo por parte de un miembro del equipo en el proyecto local de Visual Studio se realizaba la subida a la rama de DEV_Web del siguiente modo:

  • "GetLatestVersion" por si existían cambios o conflictos en la copia local y no estaba sincronizada con otros desarrollos subidos.
  • "Build" para ver que el proyecto compilaba de forma correcta.
  • Si el desarrollo involucraba cambios en la Base de Datos asociada al entorno se aplicaban las nuevas migraciones generadas (EF Code First).
  • Comprobar que los Tests no contenían fallos al ejecutarlos.
  • Realizar CheckIn para sincronizar la rama asociada.

Una vez actualizada la rama DEV_Web se procedía al “Merge” desde esta rama a la de DEV.

El proyecto local asociado con la rama DEV desde Visual Studio se sincronizaba con ésta del siguiente modo:

  • "GetLatestVersion" por si existían cambios o conflictos en la copia local y no estaba sincronizada con otros desarrollos subidos.
  • "Build" para ver que el proyecto compilaba de forma correcta.
  • Si el desarrollo involucraba cambios en la Base de Datos asociada al entorno se aplicaban las nuevas migraciones generadas.
  • Comprobar que los Tests no contenían fallos al ejecutarlos modificando la cadena de conexión de la BBDD mediante el “Solution Configuration” de Visual Studio.
  • Realizar "CheckIn" para finalizar la sincronización.

El despliegue en el entorno DEV con los nuevos cambios comprendía los siguientes puntos:

  • Se recomendaba parar el Web application.
  • Desde el "Cloud Service" se desplegaba la API (Back).
  • Se publicaba el proyecto Web (Front)
  • Se reiniciaba el sitio (Web application).

Accediendo a la aplicación web asociada con DEV se observaban los nuevos cambios y su correcto funcionamiento.
El “Merge” entre las ramas de DEV y UAT y su despliegue en el entorno de Azure se realizaba de un modo similar al comentado.
Accediendo a la aplicación web asociada con UAT, negocio podía probar las nuevas funcionalidades y establecer si correspondían a los requisitos establecidos.
Si negocio determinaba que la web UAT estaba preparada, se desplegaba y publicaba en PROD para usuarios finales.