- Application Programming Interface y microservicios: ¿Que es una API y cual es su utilización? ¿Qué es un microservicio y en qué se diferencia de un monolito? ¿Qué ventajas tiene usar un enfoque orientado a micro servicios? ¿Existen desventajas?
- Herramientas para la portabilidad del entorno: ¿Qué herramientas tenemos para mantener nuestro entorno invariante? Fijar dependencias y asegurar encapsulamiento en el funcionamiento. Docker, Kubernetes y VM.
- Comunicación entre servicios: Alternativas para la comunicación entre los microservicios.
- Machine Learning APIs: ¿Cómo usar feedback para retroalimentar nuestros modelos y así aumentar nuestra precisión?
- Servicios cloud: ¿Que es un servicio cloud? ¿Qué proveedores y qué herramientas existen?
- Aplicaciones web: ¿Que tener en cuenta cuando desarrollamos un servicio web? ¿Cómo manejar los datos? ¿Qué métodos de autenticación y autorización existen?
- Despliegue: ¿Como asegurar un funcionamiento robusto con posibilidad de escalar agilmente? ¿Cómo desplegar nuestros modelos todos en un mismo servidor pero bajo distintos dominios o paths?
- Testing: ¿Qué tipos de tests son necesarios para las APIs? ¿Cómo automatizarlos? ¿Cómo evaluarlos?
- Monitoreo: ¿Cómo puedo saber que mi aplicación está siendo utilizada? ¿Como verifico que mis clientes están obteniendo las respuestas que espero sin preguntárselo directamente?
- Laboratorio de Aplicación
Ellen Friedman, Ted Dunning. Machine Learning Logistics. 2017.
D. Sculley, Gary Holt, Daniel Golovin. Hidden Technical Debt in Machine Learning Systems. 2015.
Martín Abadi, Ashish Agarwal, Paul Barham. TensorFlow: Large-Scale Machine Learning on Heterogeneous Distributed Systems. 2016.
Grinberg. Flask Web Development_ Developing Web Applications with Python. 2014.
16 horas sincrónicas + 8 de apoyo
Entrega y aprobación de 2 trabajos prácticos.