Arquitectura de la aplicación ‐ Entrega 3 - caromerom1/VideoConverter GitHub Wiki

Vista funcional

En esta vista se puede ver a alto nivel se puede ver las características principales del VideoConverter, en la cual se puede ver las funciones principales de este. Por otro lado, podemos evidenciar la arquitectura a un alto nivel de la misma. Adicionalmente, se puede evidenciar la conexión y la comunicación entre los componentes de esta aplicación.

Vista Funcional (1)

Vista de despliegue

En esta vista podemos validar la distribución de la aplicación, para el caso puntual de VideoConverter, esta se va a distribuir en 3 VMs de compute engine, una instancia de base de datos de Cloud SQL de postgres, un Auto Scaling Group encargado de crear y borrar entre 1 y 3 VMs de compute engine encargadas de ejecutar la API y un load balancer encargado de distribuir las peticiones a las máquinas pertenecientes al grupo de autoscaling. En esta vista se puede evidenciar la topología de los contenedores implementados, facilitando el despliegue e implementación.

Vista Despliegue

Vista de información

A continuación se muestra a alto nivel el manejo de la información y la data de la aplicación, en esta se puede evidenciar que la aplicación hace uso de dos bases de datos, una CloudSQLPostgres, en la cual se almacena toda la información relacionada con los usuarios, los videos y las conversiones realizadas. Por otro lado, se encuentra una RedisDB, en la cual se almacena el estado de las tareas de conversión. Esta modularización permite favorecer seguridad y escalabilidad. Adicionalmente, se presenta un bucket de GCP, en el cual se almacenan los videos que se suben y convierten. Por último, se presente un Auto Scaling Group el cual se encarga de crear y eliminar entre 1 y 3 instancias de la API y un load balancer encargado de distribuir las peticiones entre las VMs del Auto Scaling Group.

Vista Informacion

Vista de concurrencia

En esta vista de concurrencia podemos evaluar la coordinación y ejecución simultánea de las tareas del VideoConverter. Por otro lado, esto facilita la escalabilidad a la hora de implementar esta aplicación en la nube.

Vista Concurrencia