Ir al contenido
Kevin Arian

Prueba B

Servicio de clasificación de imágenes

Un modelo de machine learning sirviendo predicciones en 1.000 categorías de imágenes, desplegado como arquitectura de microservicios desacoplada en AWS y verificado bajo carga real.

Categorías
1.000 clases de imágenes
Arquitectura
API desacoplada de los workers de ML
Verificación
Pruebas de carga con Locust
Contexto
Fellowship de ingeniería en Anyone AI

Python · FastAPI · TensorFlow · Redis · Docker · AWS EC2 · Locust

El problema

Servir un modelo de machine learning en producción es un trabajo distinto a entrenarlo: las respuestas deben volver rápido mientras el modelo — una red TensorFlow pesada — tarda segundos por lote. Acoplar la API directamente al modelo significa que una consulta lenta bloquea a todas las demás.

Qué construí

Una arquitectura de microservicios que separa las dos responsabilidades:

  • Un servicio FastAPI recibe las consultas y responde de inmediato, sin tocar nunca el modelo.
  • Una cola en Redis entre la API y el modelo: las consultas entran, los resultados salen, y cada lado escala por separado.
  • Workers de TensorFlow consumen la cola y ejecutan la red (1.000 categorías de imágenes), aislados en sus propios contenedores.
  • Docker Compose sobre AWS EC2 une todo de forma reproducible — el mismo stack corre idéntico en una laptop y en la nube.

El resultado

El servicio se sostuvo bajo pruebas de estrés con Locust, con la API respondiendo mientras los workers procesaban la cola — el patrón de arquitectura estándar detrás de los sistemas de ML en producción, construido de punta a punta: diseño de API, colas, servido del modelo, contenedores, despliegue en la nube y verificación de carga.