Arquitectura
OWS es una arquitectura multi-tenant implementada bajo el patrón de diseño de microservicos, los cuales se comunican internamente (IPC) vía eventos.
Estado del arte
A continuación, se presenta — de forma acotada — un diagrama que representa el estado actual de diseño de la composición de servicios de OWS; montados en un cloud provider.
Cada servicio expone una REST API las cuales se encuentran bajo el dominio https://ostrichapi.com
.
Servicio de predicciones
Como se comenta en la introducción, DeepAgro posee diversos modelos de computer vision — ya en producción. Estos, en la actualidad, son ejecutados de forma offline y en hardware específico como sucede con DeepAgro SprAI.
En la actualidad, se está trabajando en un servicio web que pueda ejecutar estos modelos vía REST APIs: de esta forma, diferentes aplicaciones de terceros podrán hacer uso del conteo de plantas de maíz, detección de malezas en cultivos de soja y maíz, además de barbecho.
Tecnologías
Con respecto a tecnologías utilizadas, se pueden nombrar las que siguen:
- Python, para el desarrollo de servicios. En particular, FastAPI.
- Docker para el orquestrado de servicios.
- Traefik como load balancer y gateway.
- PostgreSQL y DynamoDB para serialización de recursos lógicos.
- S3 para serialización de objetos, tales como imágenes y archivos temporales.
- Redis como broker pub/sub para implementar IPC vía eventos.
- OpenSearch para el indexado de metadata de objetos y recuperación elástica de datos.
- ZooKeeper para centralizar la serialización de configuraciones globales de la arquitectura de servicios presentada.