Sondas de estado y degradación controlada
Configure sondas de estado del equilibrador de carga y de Traffic Manager para detectar fallos rápidamente, y diseñe patrones de interruptor de circuito y degradación controlada para la capa de aplicación.
Sondas de estado y degradación controlada es una lección gratuita de Cloud & IT Cert Prep en CoddyKit. Esta es la lección 4 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Cloud & IT Cert Prep, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Cloud & IT Cert Prep incluye 4 lecciones en total.
Por qué son esenciales los sondeos de estado
Los sondeos de estado son el mecanismo mediante el cual los equilibradores de carga y los administradores de tráfico detectan si una instancia de backend puede atender solicitudes. Sin sondeos de estado, un equilibrador de carga podría seguir enviando tráfico a un servidor que ha fallado o no responde, lo que provocaría errores visibles para los usuarios. Unos sondeos de estado configurados correctamente permiten el redireccionamiento automático del tráfico lejos de las instancias en mal estado en cuestión de segundos tras un fallo.
Sondeos de estado de Azure Load Balancer
Azure Load Balancer admite dos tipos de sondeos de estado:
- Sondeo TCP: comprueba si el backend puede aceptar una conexión TCP en un puerto especificado. Es sencillo, pero no verifica la lógica de la aplicación.
- Sondeo HTTP/HTTPS: envía una solicitud GET a una ruta especificada y espera una respuesta 200 OK. Es más preciso porque prueba directamente el punto de conexión de la aplicación.
Un backend se marca como no saludable si el sondeo falla durante un número configurable de intentos consecutivos.
# Create an HTTP health probe for an Azure Load Balancer:
az network lb probe create \
--resource-group myRG \
--lb-name myLoadBalancer \
--name httpHealthProbe \
--protocol Http \
--port 80 \
--path /health \
--interval 15 \
--threshold 2Diseño de un punto de conexión de estado fiable
Un punto de conexión de estado bien diseñado (/health) hace más que devolver 200 OK: verifica que se pueda acceder a las dependencias críticas de la aplicación. Una comprobación de estado completa podría probar la conectividad con la base de datos, la caché y cualquier API posterior. Si alguna dependencia no está disponible, el punto de conexión devuelve un código de estado 5xx, lo que indica al equilibrador de carga que debe retirar esta instancia de la rotación.
# Example health endpoint response (JSON):
# GET /health
# {
# 'status': 'healthy',
# 'checks': {
# 'database': 'ok',
# 'cache': 'ok',
# 'externalApi': 'ok'
# }
# }
# If database check fails, return HTTP 503 instead of 200Sondeos de estado de Traffic Manager
Azure Traffic Manager también usa sondeos de estado, pero en el nivel regional. Envía periódicamente solicitudes GET HTTP o HTTPS a la URL del punto de conexión configurado en cada región. Si un punto de conexión no responde dentro del intervalo de tiempo de espera durante un número determinado de intervalos consecutivos, Traffic Manager lo marca como degradado y deja de dirigirle consultas DNS, redirigiendo a los usuarios a una región saludable.
# Configure Traffic Manager health probe settings:
az network traffic-manager profile update \
--resource-group myRG \
--name myTMProfile \
--monitor-protocol HTTPS \
--monitor-port 443 \
--monitor-path /health \
--monitor-interval 30 \
--monitor-timeout 10 \
--monitor-tolerated-failures 3Sondeos de estado de Application Gateway
Azure Application Gateway ofrece funciones de sondeo de estado más avanzadas que el Load Balancer estándar. Admite sondeos personalizados que especifican el encabezado de host, el intervalo de códigos de estado esperado (por ejemplo, 200-399) y una cadena que debe coincidir con el cuerpo. Application Gateway también admite el enrutamiento por ruta, por lo que distintos grupos de backends pueden tener configuraciones de sondeo de estado diferentes para distintas rutas URL.
# Create a custom probe for Application Gateway:
az network application-gateway probe create \
--gateway-name myAppGateway \
--resource-group myRG \
--name customProbe \
--protocol Http \
--host-name-from-http-settings true \
--path /api/health \
--interval 20 \
--timeout 10 \
--threshold 3¿Qué es la degradación gradual?
La degradación gradual es la capacidad de una aplicación para seguir proporcionando una funcionalidad parcial cuando una o varias de sus dependencias fallan. En lugar de bloquearse por completo, la aplicación detecta que un servicio no crítico no está disponible y recurre a un estado degradado, pero aún útil. Por ejemplo, si falla un servicio de recomendaciones, un sitio de comercio electrónico podría mostrar sugerencias genéricas en lugar de bloquear toda la página del producto.
Patrón de disyuntor
El patrón de disyuntor evita que una aplicación llame repetidamente a un servicio descendente que está fallando. Cuando un servicio empieza a fallar, el disyuntor se abre y devuelve inmediatamente un error o una respuesta alternativa sin realizar la llamada de red. Después de un periodo de enfriamiento, pasa al estado semiabierto y permite realizar una solicitud de prueba. Si esta tiene éxito, el circuito se cierra y se reanuda el funcionamiento normal.
# Circuit breaker states:
# CLOSED: normal operation, calls pass through
# OPEN: service failing, calls immediately return error/fallback
# HALF-OPEN: cool-down expired, try one request:
# success -> CLOSED
# failure -> OPEN (reset timer)
# Libraries: Polly (.NET), Resilience4j (Java), polly-js (JS)Reintentos con retroceso exponencial
Para los errores transitorios (interrupciones breves de red o sobrecarga temporal del servicio), es adecuada una estrategia de reintentos con retroceso exponencial. La aplicación vuelve a intentar la llamada fallida después de una espera, duplicando el tiempo de espera con cada reintento hasta alcanzar un máximo. Añadir un jitter (una variación aleatoria) al tiempo de espera evita que todos los intentos de reintento se sincronicen y saturen un servicio que se está recuperando.
# Exponential backoff with jitter (pseudocode):
# attempt 1: wait 1s + random(0-500ms)
# attempt 2: wait 2s + random(0-500ms)
# attempt 3: wait 4s + random(0-500ms)
# attempt 4: wait 8s + random(0-500ms)
# max retries: 4
# max wait: 30s (cap)
# After max retries: return error to callerPatrón de mamparo
El patrón de mamparo aísla distintas partes de una aplicación en grupos de recursos, de modo que un fallo en un área no consuma todos los recursos ni derribe el sistema completo. El nombre procede de los mamparos de los barcos, que evitan que un compartimento inundado hunda toda la embarcación. En Azure, esto podría implicar usar grupos de subprocesos independientes o planes de App Service independientes para distintos servicios con el fin de contener los fallos.
Respuestas alternativas y datos almacenados en caché
Una técnica habitual de degradación gradual consiste en proporcionar datos almacenados en caché u obsoletos cuando un origen de datos activo no está disponible. Por ejemplo, una página de catálogo de productos podría mostrar los precios del día anterior almacenados en la caché de Azure Cache for Redis en lugar de mostrar un error si no se puede acceder temporalmente a la base de datos. Los usuarios experimentan una molestia menor (precios ligeramente desactualizados) en lugar de un fallo completo.
Supervisión y alertas sobre la degradación
La degradación gradual debe ser visible y medible. Use Application Insights para realizar un seguimiento de la frecuencia de aperturas del disyuntor, respuestas alternativas e intentos de reintento como métricas personalizadas. Configure alertas cuando estas métricas superen determinados umbrales, de modo que se notifique al equipo de guardia que la aplicación se está ejecutando en un estado degradado, aunque la experiencia visible para el usuario parezca aceptable.
Comprobación rápida
Compruebe su comprensión de los conceptos de Microsoft Azure Fundamentals (AZ-900) de esta lección.
Resumen de la lección
En esta lección ha aprendido que las sondas de estado permiten que los equilibradores de carga detecten backends con errores y redirijan el tráfico automáticamente; la degradación gradual mantiene las aplicaciones parcialmente operativas cuando fallan las dependencias; y patrones como el disyuntor, el reintento con retroceso y el mamparo implementan resiliencia en el nivel de la aplicación. A continuación, exploraremos los conceptos de recuperación ante desastres: la definición de RTO, RPO y niveles de recuperación.
Preguntas frecuentes
¿La lección «Sondas de estado y degradación controlada» es gratis?
Sí — el texto completo de «Sondas de estado y degradación controlada» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Cloud & IT Cert Prep, actualiza a CoddyKit PRO. El curso de Cloud & IT Cert Prep incluye 4 lecciones en total.
¿Qué aprenderé en «Sondas de estado y degradación controlada»?
Configure sondas de estado del equilibrador de carga y de Traffic Manager para detectar fallos rápidamente, y diseñe patrones de interruptor de circuito y degradación controlada para la capa de aplic… Practicas Cloud & IT Cert Prep con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.
¿Necesito experiencia previa para empezar Cloud & IT Cert Prep?
No se requiere experiencia previa. Cloud & IT Cert Prep en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 4 de 4.
¿Cuánto tiempo toma la lección «Sondas de estado y degradación controlada»?
La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.
¿Puedo escribir y ejecutar código en esta lección de Cloud & IT Cert Prep?
Sí. Cada lección de Cloud & IT Cert Prep incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.
Todas las lecciones de este curso
- Acuerdos de nivel de servicio de Azure y SLA compuestos
- Conjuntos de disponibilidad y zonas de disponibilidad
- Arquitectura activa-activa multirregión
- Sondas de estado y degradación controlada