-
Notifications
You must be signed in to change notification settings - Fork 0
Despliegue
El proyecto ha sido dockerizado desde su inicio buscando que el CI/CD sea sencillo, extendible y eficiente.
- Descargar e instalar python
- Instalar dependencias de python con
pip install -r requirements - Descargar e instalar mongo
- Configurar un usuario administrador mongo
- Descargar e instalar postgress
- Configurar un usuario administrador postgress y bd
- Instalar node
- Instalar docker(Opcional)
- Configurar archivo .env introduciendo las siguientes variables según se hayan configurado en pasos anteriores ejemplo:
MONGO_INITDB_ROOT_USERNAME=root
MONGO_INITDB_ROOT_PASSWORD=root
MONGO_INITDB_DATABASE=doit
POSTGRES_USER=doit
POSTGRES_PASSWORD=doit
POSTGRES_DB=doit
POSTGRES_HOST=postgres_db
En un entorno local, se puede desplegar el proyecto tanto manualmente, instanciando Mongo y postgres como servicios y ejecutando el proyecto django desde la raíz mediante el comando ./manage.py runserver habiendose construido el frontend previamente con cd frontend && nvm use && npm install && npm run build.
Para agilizar el desarrollo frontend se puede instanciar un proceso paralelo que, mediante hot module reloader, mantiene los cambios de la app en vivo y, gracias a configuraciones de CORS en el backend, puede comunicarse correctamente con la API de django. Para ello ejecutese, desde la raíz, cd frontend && nvm use && npm install && npm start
Nota: se recomienda el uso de nvm pero también puede ignorarse y usar la versión de npm instalada en su local, no se garantiza que no hayan errores con veriones de node inferiores a la 16.
Adicionalmente, puede ejecutarse la aplicación completa mediante la configuración de docker-compose local. Para ello basta con construir la imagen de la aplicación con sudo docker build . y posteriormente ejecutar sudo docker-compose build && docker-compose up.
Los archivos locales de docker son: Dockerfile y docker-compose.yml
Mediante pipelines de release se construyen y publican en nuestro registro privado en github (github container registry) las imagenes de los contenedores correspondientes a la rama de desarrollo (development) y la rama de producción (main), así como, los correspondientes a las bases de datos a usar.
Para las imagenes de las bases de datos a usar, se han construido manualmente y subido al registro privado imagenes de mongo y postgres para evitar dependencias con registros externos y agilizar el despliegue en Azure.
Posteriormente, en Azure, se mantinen dos aplicaciones diferentes en las que, mediante un archivo de configuración de composición concreto para azure, se despliegan contenedores de las base de datos y la aplicación que se obtienen del registro privado de la organización en github.
Archivo de configuración de composición (docker-compose) para azure: azure-compose.yml
- local: http://localhost:8000 o http://localhost o http:/localhost:3000
- test: https://doit-test.azurewebsites.net/
- prod: https://doit-app.azurewebsites.net/
- Inicio
- Planificación
- Diseño
- Desarrollo
- Control
- Calidad: por sprint
- Costes: por fase | por sprint
- Interés: por versión