Skip to main content

PPG05 - Guía de deployment Frappé

Objetivo(s)

  • Generar una versión consumible del sistema en un ambiente de producción o staging

Pre-requisitos

Verificar que la línea a desplegar este lista para ello

  • Los test pasaron satisfactoriamente
  • Puede realizarse un build de la línea
  • Cumple con la revisión de calidad (Checklist de código, Lint y Statics Testing)
note

Para ver si la línea cumple con estos requisitos, el flujo de CI debe mostrar un check verde

Pasos a seguir

Staging

  • Realizar el merge de una Feature branch a la rama dev
note

Para monitorear el despliegue a staging, se puede acceder al flujo de CD Dev y ver el estatus actual. Si todo se ejecutó correctamente, deberá mostrar un check verde.

Production

  • Realizar el merge de la rama dev a la main
note

Para monitorear el despliegue a prod, se puede acceder al flujo de CD y ver el estatus actual. Si todo se ejecutó correctamente, deberá mostrar un check verde.

Una vez que se aprueba el merge de la rama, se llama el Workflow de GitHub Actions el cual hace lo siguiente:

  • Se genera un release en github (label en base a los commits generados)
  • Se selecciona el nombre del proyecto a desplegar
    • prod
      • API - Azure App Service - cinica-mx-node-express-api-prod
      • Front - Vercel - cinica-backoffice | cinica-ecommerce
    • staging (pruebas-cinica-mx-node)
      • API - Azure App Service - pruebas-cinica-mx-node
      • Front - Vercel - frappe-backoffice | frappe-ecommerce
  • Se inicia la creación y despliegue de los artefactos de release

Una vez finalizada la acción, en el area de releases aparecerá un release con los últimos commits realizados desde el último release.

Consideraciones

  • Existe un api gateway y dos front ends para cada etapa.
  • Las etapas estan asociadas a las ramas de github. La etapa de staging esta asociada a la rama dev, mientras que la etapa de producción esta asociada a la rama main, por tanto primero se hacen los merges a la rama dev, y ya despues eso se pasa a la rama main.
  • Aunque los merges son instantaneos, el procedimiento para generar una solución y subirla a los servicios correspondientes puede tardar alrededor de 10 minutos.

Salidas

  • Una solución consumible en el ambiente seleccionado (prod/staging)
  • Un tag con un release. El release contiene una lista de commits realizados desde el último despliegue.

Autores

  • Mauricio Alvarez
  • Vladimir Salvador
  • Eduardo Castillo

Auditoría

Bitácora de cambios

Versión 1.0

  • Se creó la guía