Cómo detectar fallas y reparar sistemas

Clase 31 de 43Curso Profesional de Arquitectura de Software

Resumen

Diseñar con confianza la disponibilidad implica anticipar la falla y responder sin demoras. Aquí se explican, con ejemplos claros, las tácticas esenciales para detectar incidentes, reparar el servicio y reintroducir el sistema, desde ping/echo y latido hasta votación, redundancia activa o pasiva y el uso de un repuesto preparado.

¿Cómo se define la disponibilidad y qué familias de tácticas existen?

La disponibilidad se ve desafiada por un estímulo claro: la falla. El objetivo es que el problema quede oculto al usuario o que el sistema sea reparado de forma correcta y rápida. Para ello se agrupan tácticas en cuatro familias: detección, recuperación centrada en reparación, recuperación centrada en reintroducción del servicio y prevención.

  • Estímulo de diseño: la falla que compromete la disponibilidad.
  • Resultado esperado: falla oculta o sistema reparado.
  • Familias: detección, recuperación por reparación, recuperación por reintroducción, prevención.

¿Qué tácticas de detección mejoran la disponibilidad?

Las tácticas de detección permiten saber si un componente sigue funcionando y, si no, por qué. Son la base para alertar a desarrolladores y operadores, y activar respuestas oportunas.

¿Qué es ping o echo y para qué sirve?

  • Un componente envía un mensaje genérico a otro componente.
  • La respuesta confirma si el destino está disponible, sin requerir datos útiles.
  • Permite a un cliente decidir si puede confiar en el componente servidor.

¿Cómo funciona el latido para alertas de disponibilidad?

  • Un componente emite periódicamente un mensaje de “estoy activo”.
  • Si no llega dentro del tiempo esperado, se asume pérdida de disponibilidad.
  • Útil en componentes sin salida visual: procesadores de tareas, envío de emails o notificaciones push.
  • Debe informar que está en buen estado de salud a desarrolladores y operadores.

¿Por qué el manejo y registro de excepciones son clave?

  • Detectan cuándo la disponibilidad pudo verse comprometida.
  • Identifican con precisión la causa del incidente.
  • Facilitan diagnóstico y acciones de mejora.

¿Qué tácticas de recuperación reparan y reintroducen el sistema?

La recuperación por reparación busca que, ante una falla, el sistema vuelva a operar con rapidez. Estas tácticas también preparan el terreno para la reintroducción del servicio una vez estabilizado.

¿Cómo funciona la votación y el arbitraje?

  • Varios componentes ofrecen la misma funcionalidad, pero pueden responder distinto.
  • Un componente central realiza el arbitraje y decide cuál respuesta es válida.
  • Si la mayoría coincide y uno difiere, se retira del clúster al componente en falta y se reemplaza.

¿Qué aporta la redundancia activa con líder?

  • Todos los mensajes de entrada llegan a todos los componentes redundantes.
  • Si uno falla, se lo quita del clúster y el servicio sigue en milisegundos.
  • Solo un componente responde: el líder.
  • Si cae el líder, se elige un nuevo líder, lo que agrega complejidad a la implementación.

¿Cuándo usar redundancia pasiva líder-seguidora?

  • La comunicación llega a un componente principal que sincroniza con otros pasivos.
  • Típico en bases de datos: la líder lee y escribe, la seguidora recibe cambios de estado.
  • La seguidora puede operar como base de datos de lectura.

  • Repuesto o backup: cuando algo falla, se reemplaza todo el sistema o una gran parte por un sistema preparado. No está activo hasta que se pone en línea, suele actuar como receptor de actualizaciones y puede requerir inicialización. Exige tener varios componentes disponibles por separado y sin estar activos.

¿Te gustaría comentar cómo aplicas ping/echo, latidos o redundancias en tus sistemas y qué retos encuentras al operar clústeres con líder?