- 1

Arquitectura de Backend: Diseño e Implementación de Sistemas Avanzados
02:42 - 2

Conceptos Fundamentales de Back End en Arquitectura Web
03:25 - 3

Sistemas Monolíticos vs. Distribuidos en Arquitectura Backend
04:31 - 4

Componentes de un Sistema Backend Distribuido
05:22 - 5

Conexión de Componentes Backend mediante APIs
04:11 - 6

Diseño e Implementación de Sistemas Backend Prácticos
02:33
Escalabilidad: Implementación de Throttling y Retry Policy
Clase 24 de 25 • Curso Práctico de Arquitectura Backend
Contenido del curso
- 7

Definición de Requerimientos de Negocio para Desarrolladores Backend
08:52 - 8

Creación de Documentos de Diseño de Software
06:06 - 9

Creación de Documentos de Diseño en Markdown para Proyectos de Software
09:52 - 10

Revisión Efectiva de Documentos de Diseño en Equipo
10:27 - 11

Diseño de Arquitectura de Sistemas Distribuidos
15:30 - 12

Diseño de Sistemas: Documentación de Bajo Nivel y Pruebas
15:23 - 13

Planificación de Integración Continua y Rollout de Software
13:56 - 14

Definición y aplicación del concepto "Code Complete" en proyectos software
10:55 - 15

Decisiones en Diseño de Sistemas Basados en Requerimientos del Negocio
03:35
- 16

Desarrollo e Implementación de Sistemas Backend
03:35 - 17

Diseño de Entidades para Reseñas de Cámaras y Productos
08:58 - 18

Diseño e Implementación de Interfaces en C para Productos y Reseñas
18:17 - 19

Desarrollo de Pruebas Unitarias con TDD en C#
17:30 - 20

Implementación de pruebas unitarias con TDD en proyectos de software
25:16 - 21

Desarrollo de un Sistema de Reseñas en Azure
06:46
¿Qué es la escalabilidad de servicios?
La escalabilidad es un concepto fundamental en el desarrollo de sistemas que necesitan manejar un gran volumen de tráfico. En contextos como Amazon o Microsoft, un servicio puede ser utilizado globalmente, generando millones de solicitudes diarias. La escalabilidad permite a estos sistemas manejar el incremento en las peticiones sin decrimento en el rendimiento del servicio.
¿Cómo gestionar el tráfico alto?
Cuando un sistema recibe un gran volumen de solicitudes, es crucial implementar políticas que ayuden en la gestión y control de dicho tráfico. Dos técnicas comunes para lograr esto son el throttling y el retry policy.
Throttling
- Limita el número de solicitudes que un servicio puede procesar en un determinado lapso de tiempo.
- Ejemplo: Un servicio que solo procesa 500 solicitudes por segundo, rechazando las demás.
- Esto evita la sobrecarga de servidores y asegura que el servicio siga operando de manera eficiente.
Retry Policy
- Similar a lanzar una red de seguridad cuando las solicitudes iniciales fallan.
- Al implementar un retry, se vuelve a intentar procesar las solicitudes fallidas.
- Sin embargo, es importante determinar cuántas veces se debe reintentar, para evitar sobrecargar el sistema con solicitudes fallidas recurrentes.
¿Cuál es el papel del Exponential Backoff?
El Exponential Backoff es un enfoque para gestionar los retries de manera eficiente. Cuando una solicitud falla, en lugar de reintentar inmediatamente, el sistema espera un lapso de tiempo que aumenta exponencialmente con cada intento fallido.
¿Cómo funciona el Exponential Backoff?
-
Si en un segundo el sistema acepta solo una solicitud, cualquier otra solicitud durante el mismo segundo fallará.
-
En un escenario regular, podrías tener:
- Segundo 1: 1 éxito, 1 falla.
- Segundo 2: 1 solicitud nueva y 1 fallo + 1 falla de segundo 1.
- Y así sucesivamente.
-
Con el Exponential Backoff, el tiempo de espera para el siguiente retry aumenta:
- Inicialmente puede reintentar en 20 segundos, luego 40 segundos, etc.
-
Este enfoque ayuda a nivelar la carga y evitar la saturación del sistema.
¿Cómo implementar Throttling y Retry Policies?
Para implementar estas políticas, es recomendable investigar técnicas y herramientas que provean servicios de nube como AWS o Azure. El uso de su infraestructura y políticas abreviará el proceso de configuración y asegurará que el throughput del sistema mantenga los niveles esperados sin interrupciones.
Consejos adicionales:
- Investiga recursos públicos para profundizar en temas de políticas de retry y Exponential Backoff.
- Implementa estas prácticas tanto en el backend como en el cliente, asegurando que quien use la API no cause problemas de carga innecesaria.
- Es crucial asegurar que la implementación en el frontend aproveche correctamente estas políticas para evitar penalizaciones y mejorar la experiencia del usuario.
Esta guía te ayudará no solo a entender estos conceptos, sino a aplicarlos en proyectos reales, como los que enfrentan las grandes empresas tecnológicas diarias. ¡Ánimo y sigue adelante en tu aprendizaje!