Despliegue Local y en AWS de Aplicaciones con Docker y Postman
Clase 27 de 35 • Curso de MLOPS: Despliegue de Modelos de Machine Learning
Resumen
¿Cómo estructurar tu repositorio para un despliegue exitoso?
Cuando trabajas con aplicaciones complejas, es fundamental mantener una estructura de repositorio clara y bien organizada. Esto es especialmente importante si estás utilizando herramientas como Docker para el despliegue. En nuestro caso, todas las configuraciones e implementaciones deben manejarse en una rama específica de deploy para evitar confusiones. Aquí te mostramos cómo estructurar tu aplicación:
-
Directorio
app: Debes mantener los archivos esenciales dentro del directorioapp: -
__init__.py: Vacío, para designar el paquete. -
config: Configuraciones clave de la aplicación. -
convectorizer.pickle: Artefacto vital para transformar datos a representación matricial para el modelo. -
db.py: Configuraciones de la base de datos, incluyendo campos y tipos de datos. -
main.py: Encapsula toda la lógica de la aplicación. -
prestart.sh: Inicializa la base de datos, indicando el puerto 5432. -
Archivos externos a
app: -
Dockerfileydocker-compose.yml: Para la estructura de Docker. -
Model: Usado para leer al generar predicciones en batch. -
requerimientos: Todas las dependencias necesarias. -
Archivo para instancias en AWS: Configura la instancia, actualiza, y gestiona conexiones.
¿Cómo proceder con el despliegue local?
Desplegar una aplicación localmente antes del servidor final es un buen ejercicio para asegurar que todo funciona como se espera. A continuación, te guiamos en el proceso:
- Preparar la terminal:
- Asegúrate de estar en la correcta rama de trabajo en tu repositorio.
- Construir la imagen Docker:
-
Corre el siguiente comando:
docker compose build -
Este comando descarga requisitos y copia archivos de la aplicación.
- Levantar la aplicación:
- Usa
docker compose uppara ejecutar.
- Corregir errores:
- Si encuentras un error, como el de indentación en
db.pylínea 29, corrígelo. Requiere ajustar docstrings o llaves mal puestas.
- Validación con Postman:
- Cambia el método a POST.
- Introduce el entry point: IP local, puerto 5004 y método
predict. - Define el cuerpo como lista de diccionarios con campos
client nameytext.
¿Cómo realizar pruebas de predicciones?
Una vez la aplicación está funcionando localmente, será momento de probar las predicciones con Postman. Estos son los pasos que debes seguir:
-
Enviar solicitudes:
-
Usa el método POST a la API con el cuerpo de prueba.
-
Comprueba la estructura del
entry pointy asegúrate de que los datos están correctamente formateados. -
Verifica las respuestas:
-
Tras enviar la solicitud, deberías recibir un diccionario con el valor de
prediction. -
Si el
status codees 200, indica que la aplicación funcionó correctamente.
¿Cómo conectarse a la base de datos y validar datos?
Para garantizar que tus predicciones se almacenan adecuadamente en la base de datos, sigue estos pasos:
-
Usa tu gestor favorito de base de datos:
-
En este caso, puedes usar Visual Studio Code con la extensión de conexiones.
-
Configura tu conexión con
localhost, puerto 5433 y credenciales definidas en el Dockerfile. -
Verifica los datos:
-
Examina los registros almacenados, como
ID,client name,prediction. -
Confirma que las predicciones han sido decodificadas correctamente usando
label mapping.
Esta estructura y proceso ayudan a garantizar que el despliegue se realiza sin problemas, asegurando una transición fluida de local a producción. ¡No dudes en seguir experimentando y afinando estos pasos para perfeccionar tus despliegues!