Skip to content

ADR. Despliegue Aplicación v2 [CI CD]

Miguel Gonzalez Navarro edited this page May 1, 2023 · 6 revisions

Título

Estrategia y diseño de la aplicación para desplegar la aplicación en la nube. Modificación del diseño original.

Estado

Aceptado

Contexto

Desde el ADR original, se ha eliminado la parte de REST API de la aplicación, ya que la comunicación con los PODS se realizada desde el lado del cliente. Es necesario buscar un servicio de despliegue que se adapte a las necesidades actuales:

  • Que permita desplegar una aplicación en React.
  • Admita integración continua (CI/CD) para poder integrarlo con la versión actual del proyecto.
  • El servicio sea gratuito u ofrezca la posibilidad de probar, durante un periodo de tiempo suficiente, de forma gratuita, la funcionalidad que ofrece y mantener la aplicación operativa en todo momento.

Decisión

Para desplegar la aplicación cumpliendo los puntos del apartado anterior es necesario acotar las opciones a las siguiente propuestas a continuación:

  • GitHub Pages. Opción elegida, por su integración con GitHub, que es la tecnología utilizada para el control de versiones, y es posible integrarlo de una forma relativamente fácil. Sin embargo, GitHub Pages solo admite una instancia por repositorio, y actualmente la documentación técnica de la aplicación está desplegada en este servicio. Para ello, es necesario crear un repositorio de GitHub nuevo, clonando el contenido del repositorio original (latest) en el nuevo, que es una gran desventaja.

  • Vercel. Es muy buena opción, ya que es muy fácil de utilizar e integrar con GitHub. Sin embargo, es necesario disponer de una cuenta Team (De pago) para poder desplegar la aplicación, debido a que pertenece a una organización de GitHub.

  • Netlify. Servicio similar a Vercel, no se ha encontrado aparentes desventajas en cuanto a su integración con GitHub. Las razones de su exclusión, junto con el resto de tecnologías se expondrán más adelante.

  • Azure App Services. Es necesario disponer de una cuenta con crédito suficiente, teniendo en cuenta que es una cuenta de estudiante con un crédito limitado. En base a las métricas de consumo, que se han experimentado con anterioridad en otras asignaturas, no es una opción viable para tener la aplicación operativa durante un largo periodo de tiempo. En el caso de consumir el crédito de estudiante, Azure solicitaría un método de pago para continuar dando servicio, lo que no es una opción aceptable para este proyecto.

Consecuencias

GitHub Pages es un servicio de GitHub, lo que permite no depender de servicios externos de otros proveedores. Consideramos una opción razonable debido a su ligera curva de aprendizaje y buena integración con CI/CD. Sin embargo, es necesario crear un repositorio nuevo para desplegar el proyecto en dicho servicio.

Reuniones

Reuniones extraordinarias

Decisiones Arquitectónicas (ADR)

Clone this wiki locally