Procesos Estocásticos y Cadenas de Markov · Tema 43

Confiabilidad con Markov

Fallas, reparaciones y disponibilidad: de a/b a SLA con π y MTTF/MTTR.

01 · Punto de partida

¿Qué fracción del mes funciona?

Un equipo falla con chance a por día y se repara con b. ¿Qué disponibilidad promete el contrato? ¿Cada cuántos días cae (MTTF) y cuánto dura caído (MTTR)?

Con dos estados la respuesta es exacta: disponibilidad = b/(a+b), sin simular años.

  • ¿Qué estados: funciona (0) / fallado (1)?
  • ¿Qué a de falla y qué b de reparo por día?
  • ¿Qué disponibilidad π₀ y qué caída π₁?
  • ¿Cumple el SLA 99 %?

02 · Definición

Disponibilidad, MTTF y MTTR

Tres números gobiernan el contrato:

%

Disponibilidad

A = π₀ = b/(a+b). Fracción del tiempo funcionando.

↑

MTTF

Tiempo medio hasta fallar = 1/a pasos. Lejos = confiable.

↓

MTTR

Tiempo medio de reparo = 1/b pasos. Corto = buen taller.

Con a = 0,02/día y b = 0,5/día: A ≈ 96,2 %, MTTF = 50 días, MTTR = 2 días. Caído ≈ 14 días al año.

De a/b al contrato.
CasoACaído/año
a = 0,02, b = 0,596,2 %~14 días
a = 0,01, b = 0,998,9 %~4 días
SLA 99 %≥ 99 %≤ 3,65 días

03 · Anatomía

Falla, reparo y costo

Cuatro palancas del contrato:

Falla a
Chance diaria 0→1. Baja con calidad, redundancia y mantenimiento.
Reparo b
Chance diaria 1→0. Sube con taller, repuestos y guardia.
SLA
Disponibilidad comprometida (99 %, 99,9 %). Se verifica con A = b/(a+b).
Costo
Caído × costo/día vs mejorar a o b. La decisión es económica con π.

Mejorar a (calidad)

Falla menos

MTTF largo. Caro en diseño, barato en operación.

Mejorar b (taller)

Repara antes

MTTR corto. Barato de probar, caro de sostener.

04 · Ejemplos

Contratos que se calculan con π

Toda promesa de uptime es una cuenta b/(a+b):

a, b→A = b/(a+b)→SLA
  1. 1
    Servidor 96 %.

    a = 0,02, b = 0,5: 14 días caído/año. Lejos del 99 %.

  2. 2
    Redundancia.

    Dos en paralelo: el sistema cae solo si caen ambos (π₁² aprox.).

  3. 3
    Taller 24 h.

    Subir b de 0,5 a 0,9 recorta la caída a 4 días.

  4. 4
    Máquina crítica.

    SLA 99,9 %: exige a chica y b grande a la vez.

  5. 5
    Tres modos.

    Degradado intermedio: S = {ok, lento, caído} con π por modo.

05 · Representación en Python

De a/b a disponibilidad y días

En Python, la confiabilidad son tres fórmulas sobre a y b. Sin simular: disponibilidad, caído anual y MTTF/MTTR.

Python en tu navegador. Estos bloques se ejecutan localmente con Pyodide, sin instalar nada. Probá tu SLA.

def sla(a=0.02, b=0.5):
    A = b / (a + b)
    return {"A": round(A, 4), "caído_año": round(365 * (1 - A), 1),
            "MTTF": round(1 / a, 1), "MTTR": round(1 / b, 1)}

print(sla())
print(sla(a=0.01, b=0.9))

El segundo (0,01/0,9) da 98,9 % con 4 días caído: cerca del 99 % pero aún debajo.

¿Alcanza el 99 %?

Chequeo directo del contrato:

def cumple(a, b, sla_min=0.99):
    return b / (a + b) >= sla_min

for a, b in [(0.02, 0.5), (0.01, 0.9), (0.005, 0.9)]:
    print(a, b, cumple(a, b))

06 · Exploración

Laboratorio: comprar disponibilidad

Movete falla a y reparo b: las barras son funciona/caído (π) y el número grande la disponibilidad. La línea marca el SLA 99 %. ¿Qué es más barato: bajar a o subir b?

EXPERIMENTO 43

SLA en vivo

A = b/(a+b) · meta 99 %

Los resultados numéricos aparecen debajo.
Disponibilidad0,0 %
Caído/año0,0 días
MTTF / MTTR50 / 2
SLA 99 %No

Con a 0,02 y b 0,50: 96,2 % (14,0 días). Lejos del 99 %.

La barra verde es uptime; la roja, downtime. Bajar a estira la verde por arriba; subir b la estira por abajo.

Preguntas para explorar

  1. Con a = 0,02, ¿qué b hace falta para el 99 %? (Pista: b ≥ 99·a.)
  2. Con b = 0,5, ¿qué a máxima admite el 99 %?
  3. ¿Qué conviene: partir a a la mitad o duplicar b?
Ver respuestas sugeridas
  1. b ≥ 1,98: imposible por día (tope 1). Con a = 0,02 el 99 % no se compra con taller.
  2. a ≤ 0,005: hay que cuadruplicar la calidad.
  3. Depende del costo, pero con a alta manda calidad: el taller no compensa fallas seguidas.

07 · Comprensión

Confusiones frecuentes

«Disponibilidad = 1 − a»

No: es b/(a+b). Con a = 0,02 no es 98 % sino 96,2 % (b = 0,5).

«MTTF = 1/π₁»

No: MTTF = 1/a (salida del 0); 1/π₁ es el retorno al 1 (Tema 38). Tiempos distintos.

«SLA 99 % = 3 días seguidos»

No: son 3,65 días sumados al año, en cortes dispersos.

«Redundancia suma disponibilidades»

No: dos de 96 % en paralelo dan ≈ 99,8 % (1 − 0,04²), no 192 %.

08 · Práctica guiada

Ejercicios con Python

Ejercicio 1: leer el contrato

Con a = 0,03 y b = 0,6, calculá A, caído anual, MTTF y MTTR.

a, b = 0.03, 0.6
A = b / (a + b)
print("A:", round(A, 4), "| caído:", round(365 * (1 - A), 1))
print("MTTF:", 1 / a, "| MTTR:", round(1 / b, 2))
Ver solución razonada

A = 0,9524 (17,4 días), MTTF 33,3 y MTTR 1,67 días. Lejos del 99 %.

Ejercicio 2: diseñar para 99 %

Sin ejecutar primero: con b = 0,8, ¿qué a máxima admite A ≥ 0,99? Despejá y comprobá.

b = 0.8
a_max = b * (1 - 0.99) / 0.99
print(round(a_max, 5),  b / (a_max + b) >= 0.99)
Ver solución

a ≤ 0,00808: fallar más de 1 cada 124 días rompe el 99 % con ese taller.

Ejercicio 3: redundancia simple

Dos equipos independientes con A = 0,96 en paralelo: ¿disponibilidad conjunta?

Ver una posible respuesta
A = 0.96
print(1 - (1 - A) ** 2)

0,9984 (99,84 %): el paralelo multiplica indisponibilidades, no disponibilidades.

09 · Síntesis

Ideas para recordar

  • A = b/(a+b); MTTF = 1/a; MTTR = 1/b.
  • SLA 99 % = 3,65 días caído/año sumados.
  • Calidad (a) y taller (b) se comparan en A, no en sensaciones.
  • Redundancia: 1 − (1−A)², no suma.
  • En Python: tres fórmulas + chequeo ≥ SLA.

En el próximo tema gestionaremos stock: inventarios.