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.
| Caso | A | Caído/año |
|---|---|---|
| a = 0,02, b = 0,5 | 96,2 % | ~14 días |
| a = 0,01, b = 0,9 | 98,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):
- 1Servidor 96 %.
a = 0,02, b = 0,5: 14 días caído/año. Lejos del 99 %.
- 2Redundancia.
Dos en paralelo: el sistema cae solo si caen ambos (π₁² aprox.).
- 3Taller 24 h.
Subir b de 0,5 a 0,9 recorta la caída a 4 días.
- 4Máquina crítica.
SLA 99,9 %: exige a chica y b grande a la vez.
- 5Tres 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?
SLA en vivo
A = b/(a+b) · meta 99 %
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
- Con a = 0,02, ¿qué b hace falta para el 99 %? (Pista: b ≥ 99·a.)
- Con b = 0,5, ¿qué a máxima admite el 99 %?
- ¿Qué conviene: partir a a la mitad o duplicar b?
Ver respuestas sugeridas
- b ≥ 1,98: imposible por día (tope 1). Con a = 0,02 el 99 % no se compra con taller.
- a ≤ 0,005: hay que cuadruplicar la calidad.
- 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.