Cómo detectar fallas y reparar sistemas
Clase 31 de 43 • Curso Profesional de Arquitectura de Software
Contenido del curso
Atributos de calidad
- 2

Qué son los atributos de calidad en software
01:49 min - 3

Cómo medir idoneidad funcional en software
02:52 min - 4

Qué es eficiencia de ejecución en software
04:14 min - 5

Cómo medir interoperabilidad y coexistencia
03:49 min - 6

Qué es la usabilidad y sus 6 dimensiones
08:14 min - 7

Cómo medir confiabilidad en software
05:38 min - 8

Los 5 pilares de seguridad en software
04:01 min - 9

Cómo garantizar mantenibilidad con tests
06:27 min - 10

Adaptabilidad vs capacidad de instalación vs reemplazo
02:48 min - 11

Tensiones entre atributos de calidad de software
04:04 min - 12

Atributos de calidad según fase de empresa
07:00 min
Patrones de arquitectura
- 13

Qué es un patrón de arquitectura
02:50 min - 14

Modelo vista controlador: cómo separar responsabilidades
05:37 min - 15

Arquitectura en capas: controller, servicio y repositorio
03:14 min - 16

Event sourcing vs bases relacionales
06:17 min - 17

Qué es la arquitectura microkernel
01:52 min - 18

Arquitectura Comparte Nada con Map Reduce
02:29 min - 19

Patrón de microservicios: cuándo y cómo
03:57 min - 20

Qué es CQRS y cómo separa lectura de escritura
03:24 min - 21

Arquitectura hexagonal: puertos y adaptadores
04:10 min - 22

Qué son los contextos delimitados en DDD
05:34 min - 23

Cómo combinar patrones de arquitectura
09:22 min - 24

Evolución de patrones desde monolito a microservicios
07:58 min
Diseño de una arquitectura
- 25

Cómo traducir requerimientos en decisiones arquitectónicas
02:18 min - 26

Conectores en arquitectura: tipos y cuándo usarlos
06:18 min - 27

Llamadas asíncronas vs síncronas vs cliente-servidor
03:05 min - 28

Conector enrutador vs difusión: Twitter
01:55 min - 29

Conectores cola, repositorio y pub/sub
03:52 min - 30

Framework de diseño orientado a atributos
01:55 min - 31

Cómo detectar fallas y reparar sistemas
Viendo ahora - 32

Cómo recuperar y prevenir fallas en sistemas
04:09 min - 33

Tácticas para confinar modificaciones
06:15 min - 34

Cómo prevenir efectos dominó en software
12:17 min - 35

Tácticas para controlar eficiencia de ejecución
09:14 min - 36

Cómo detectar, resistir y recuperarse de ataques
09:02 min - 37

Cómo probar que el software funciona correctamente
05:14 min - 38

Cómo controlar la usabilidad con tácticas
08:20 min - 39

Cómo validar arquitectura con ATAM y métricas
06:34 min - 40

Evolución de arquitectura: startup a gran escala
10:30 min
Modelado y documentación de arquitectura
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?