Saltar al contenido principal

Inicio

Ver en Git



title: 1 - Inicio

Aurapi

Aurapi es el backend para las aplicaciones web y mobile de Auravant.

Setup docker

Se utiliza un Container Registry propio (GitLab), por lo que es necesario primero loguearse en GitLab con el fin de poder utilizar nuestras propias imágenes. Para esto, se debe generar un token en el perfil de GitLab. El token debe tener, al menos, el permiso read_registry.

Para registrar la imagen de GDAL

docker login git.auravant.com:5050/dev/api/gdal-python2.7

Una vez generado (guardarlo porque solo se muestra una vez), se debe loguear con el token recién generado en el registry para poder utilizar las imágenes

docker login git.auravant.com:5050 -u <GitLab Username> 

Una vez logueado, ya se está en condiciones de utilizar las imágenes de nuestro registry.

Build

En MAC M1 (procesador AMR)

docker buildx build -t api --platform=linux/amd64 .

en procesadores Intel

docker-compose build

Luego

docker-compose up

listo!

Deploy Preprod

Las ramas pre_tech, pre_agro, pre_productor tienen configurado el deploy automatico.

Docker en prod?

Cosas a revisar antes de poder pasar a produccion

  • Traducciones backend, cuando se levanta el servicio se descargan de s3, falta modificar la api para que las suba s3 y ver como recargar para obtener las traducciones.
  • Traducciones front.
  • Manejar versiones de imagenes en aws.
  • Revisar apis que utilicen archivos temporales.

Infraestructura

Configuraciones Backend

La organización de las aplicaciones en ambas instancias es la misma:

  • En /var/api se encuentran las aplicaciones.
  • Cada aplicación usa un virtual environment.
  • apache corre cada aplicación en un puerto distinto. Se indica con la instrucción python-home el intérprete.
  • apache corre un proxy inverso que según el serverName direcciona a cada puerto
  • los virtualHosts de apache están configurados para que no se loguee en el access.loc si el user-agent es el health-check de AWS.
  • aurapi24
    • api
      • Su venv: /var/api/api/venv
      • corre en el puerto 200
    • dashboards
      • su venv: /var/api/api/venv (usa el mismo que api, este proyecto no tiene definido un requirements)
      • corre en el puerto 220
  • aurapi24 - réplica
    • api
      • Su venv: /var/api/api/venv
      • corre en el puerto 200
    • preprod/tech
      • Su venv: /var/api/preprod/venv
      • corre en el puerto 350
    • preprod/agro
      • Su venv: /var/api/preprod/venv
      • corre en el puerto 360
  • aurapi24 - worker
    • tiene instalado pm2 para correr los workers de celery y flower
    • corre flower en el puerto 5555
    • apache redirecciona el puerto 80 al 5555
    • api → sobre el que corre pm2
      • Su venv: /var/api/api/venv
      • link simbólico en ~/workers/aurapi

Direccionamiento

Target groups:

  • dashboards
    • apunta a la instancia principal
  • aurapi
    • balancea entre ambas instancias
  • aurapi-fijo-traducciones
    • apunta a la instancia principal
  • Aurapi-preprod
    • apunta a la réplica
  • Aurapi-preprod-agro
    • apunta a la réplica

DNS:

  • api.internal.auravant.com
    • apunta a la principal
  • aurapiworker.internal.auravant.com
    • apunta al worker
  • apipreprodtech.internal.auravant.com (no se si se usa)
    • apunta a la réplica
  • apipreprodagro.internal.auravant.com (no se si se usa)
    • apunta a la réplica