Introducción
1.1. Motivación
1.2. Objetivos y metodología
1.3. Resultados obtenidos
1.4. Organización del documento
Marco teórico
2.1. Arquitecturas basadas en microservicios
2.1.1. Tendencia del software como servicio
2.1.2. Definición de arquitectura de microservicios
2.1.3. Arquitectura monolítica en comparación con la de microservicios
2.1.4. Características de los microservicios
2.1.5. Beneficios de los microservicios
2.2. Desafíos de los microservicios
2.3. La resiliencia como requerimiento no funcional
2.4. Fallos en arquitecturas de microservicios
2.4.1. Errores o lentitud en la red
2.4.2. Picos de tráfico
2.4.3. Priorización incorrecta
2.5. Concepto de patrones para resiliencia
Patrones de Resiliencia en una Arquitectura de Microservicios de PedidosYa
3.1. El ecosistema de microservicios de Pedidos Ya
3.2. Caso de estudio: el servicio Niles
3.2.1. Niles
3.2.2. Microservicios asociados
3.3. Tratamiento de fallos en Niles
3.3.1. Consideraciones generales
3.3.2. El patrón Timeout
3.3.2.1. Definición
3.3.2.2. Implementación
3.3.2.3. Aplicación al caso de estudio
3.3.3. El patrón Retry
3.3.3.1. Definición
3.3.3.2. Implementación
3.3.3.3. Aplicación al caso de estudio
3.3.4. El patrón Circuit Breaker
3.3.4.1. Definición
3.3.4.2. Implementación
3.3.4.3. Aplicación al caso de estudio
3.3.5. El patrón Bulkhead
3.3.5.1. Definición
3.3.5.2. Implementación
3.3.5.3. Aplicación al caso de estudio
3.3.6. Combinación de patrones
3.3.6.1. La combinación Timeout, Retry y Circuit Breaker
Resultados Experimentales
4.1. Diseño Experimental
4.2. Trabajo Experimental y Resultados Obtenidos para Timeout
4.2.1. Trabajo Experimental
4.2.2. Resultados en ausencia de Timeout
4.2.3. Resultados en presencia de Timeout
4.3. Trabajo Experimental y Resultados Obtenidos para Retry
4.3.1. Trabajo Experimental
4.3.2. Resultados en ausencia de Retry
4.3.3. Resultados en presencia de Retry
4.4. Trabajo Experimental y Resultados Obtenidos para Circuit Breaker
4.4.1. Trabajo Experimental
4.4.2. Resultados en ausencia de Circuit Breaker
4.4.3. Resultados en presencia de Circuit Breaker
4.5. Trabajo Experimental y Resultados Obtenidos para Bulkhead
4.5.1. Trabajo Experimental
4.5.2. Resultados en ausencia de Bulkhead
4.5.3. Resultados en presencia de Bulkhead
4.6. Trabajo Experimental y Resultados Obtenidos para combinación de patrones
4.6.1. Trabajo Experimental
4.6.2. Resultados en ausencia de combinación de patrones
4.6.3. Resultados en presencia de combinación de patrones
Conclusiones e ideas para trabajos futuros
Referencias