Be Software Architecture Wise
Be Wise Apps

Read in English · Lire en français · Auf Deutsch lesen

Sección 2.5 de 2.8 · Intermedio · 22 min de lectura

Disponibilidad y fiabilidad: nueves, MTBF, MTTR y tolerancia a fallos

Videolección

5 min · narrado en inglés, con subtítulos
Solo escuchar (audio)
Leer la transcripción

Esta lección trata de mantener un servicio en marcha: cómo describir el objetivo con precisión, cómo ponerle un número y dónde rinde más el esfuerzo de un arquitecto.

Piensa en una tienda de barrio. La disponibilidad es la frecuencia con la que la puerta está abierta cuando llegas. La fiabilidad es si, una vez dentro, la caja registradora funciona durante toda tu compra. Las tiendas se mantienen abiertas teniendo una caja de repuesto, un segundo empleado y una forma rápida de detectar y resolver los problemas. Los arquitectos de software toman el mismo tipo de decisiones.

La disponibilidad es la proporción del tiempo, o de las solicitudes, en la que el sistema está listo para atender. La fiabilidad es la probabilidad de que funcione correctamente, sin fallos, durante un periodo determinado. Son cosas distintas. Imagina un servicio que se cae una vez por hora y se reinicia en un segundo. Su disponibilidad es del noventa y nueve punto nueve siete por ciento, lo que parece excelente. Pero la probabilidad de que un trabajo por lotes de dos horas se ejecute sin fallos es solo de alrededor del trece y medio por ciento. A un terminal de pago le importa la disponibilidad; a un robot quirúrgico le importa la fiabilidad.

Hay tres palabras más que importan. Un defecto es la causa, como un bug en el código de fechas. Puede permanecer latente durante años. Cuando se activa, produce un error: un estado interno incorrecto. Si el error llega a los usuarios, se convierte en un fallo. Cada eslabón de esta cadena es un lugar donde actuar. Las tácticas de prevención impiden que surjan defectos. Las tácticas de detección, como los heartbeats y las comprobaciones de estado, advierten pronto los errores. Y las tácticas de recuperación, como el failover y el reintento, impiden que los errores se conviertan en fallos.

Los objetivos de disponibilidad se escriben en nueves. Conviértelos siempre en tiempo de inactividad permitido: uno menos la disponibilidad, por el periodo. Tres nueves, el noventa y nueve punto nueve por ciento, permiten unas ocho punto siete seis horas al año, o cuarenta y tres punto dos minutos al mes. Cuatro nueves permiten unos cincuenta y dos punto seis minutos al año: solo cuatro punto tres dos minutos al mes. Eso es menos tiempo del que se tarda en avisar a un ingeniero, despertarlo y averiguar qué falla. Así que, por encima de tres o cuatro nueves, la recuperación debe ser automática.

La disponibilidad relaciona dos promedios: el tiempo medio entre fallos, o MTBF, y el tiempo medio de reparación, o MTTR. Un servicio de pedidos de reparto de comida falla cada treinta días, es decir, cada setecientas veinte horas, y tarda cuatro horas en arreglarse a mano. Eso es un noventa y nueve punto cuatro cinco por ciento: unas cuarenta y ocho punto cuatro horas de caída al año. Opción uno: duplicar el tiempo entre fallos. La disponibilidad sube al noventa y nueve punto siete dos por ciento, unas veinticuatro punto tres horas al año. Opción dos: automatizar la detección y el failover, y reducir el tiempo de reparación a quince minutos. La disponibilidad llega al noventa y nueve punto nueve siete por ciento, unas tres horas al año. Solo la opción dos supera el objetivo de tres nueves. Hacer que los fallos sean menos frecuentes es luchar contra la física. Recuperarse más rápido está, en gran parte, bajo el control del arquitecto.

Los sistemas reales son cadenas. Si una solicitud necesita la capa web, el servidor de aplicaciones y la base de datos, los tres deben funcionar. Están en serie, así que sus disponibilidades se multiplican. Aquí la cadena da un noventa y nueve punto ocho cuatro por ciento, unas catorce horas de caída al año: menos que cualquiera de sus partes. Ahora añade un segundo servidor de aplicaciones en paralelo. El par solo falla si fallan los dos a la vez, así que se multiplican sus indisponibilidades. La cadena completa sube al noventa y nueve punto nueve cuatro por ciento, unas cinco punto tres horas al año. Pero solo si las copias fallan de forma independiente y el failover funciona de verdad. Una reserva que nunca se ha probado es una esperanza, no un componente.

La redundancia en un centro de datos no te salvará si pierdes el centro de datos entero. La recuperación ante desastres usa dos números que vienen del negocio. El objetivo de tiempo de recuperación, o RTO, es el tiempo máximo aceptable para restaurar el servicio. El objetivo de punto de recuperación, o RPO, es la mayor cantidad de datos que puedes perder, medida en tiempo. Un RPO de quince minutos significa perder como máximo los cambios de los últimos quince minutos. Prueba tus restauraciones y mide cuánto tardan. Una copia de seguridad que nunca has restaurado no es una copia de seguridad. Por último, un objetivo de nivel de servicio, o SLO, convierte la disponibilidad en un presupuesto. Un objetivo mensual del noventa y nueve punto nueve por ciento permite unos cuarenta y tres minutos de caída, que los equipos pueden gastar en lanzamientos y experimentos.

La sección completa incluye toda la tabla de los nueves, las tácticas de disponibilidad y las dos formas de redundancia. A continuación, en la Sección dos punto seis, veremos cómo diseñar para el cambio. Nos vemos allí.

Lo que necesitas saber

Cuatro palabras que a menudo se confunden

Los usuarios perciben un sistema como algo que funciona o que no funciona. Los arquitectos necesitan palabras más precisas, porque cada palabra apunta a una respuesta de diseño distinta. La disponibilidad es la proporción del tiempo (o de las solicitudes) en la que el sistema está listo para prestar su servicio cuando se le pide. La fiabilidad es la probabilidad de que el sistema funcione correctamente, sin fallos, durante un periodo determinado y en unas condiciones determinadas. La tolerancia a fallos es la capacidad de seguir prestando el servicio aunque alguna parte haya fallado. La resiliencia es la capacidad más amplia de absorber una perturbación, mantener en marcha el servicio esencial (quizá degradado) y volver después a la normalidad.

ISO/IEC 25010:2023 sitúa la disponibilidad, la tolerancia a fallos y la recuperabilidad, junto con la ausencia de defectos (faultlessness, que sustituyó al término madurez de 2011), como subcaracterísticas de la fiabilidad. Bass, Clements y Kazman, en Software Architecture in Practice, tratan la disponibilidad como un atributo de calidad propio porque impulsa muchísimas decisiones arquitectónicas. Ninguna de las dos visiones es incorrecta; usa la que ayude a la conversación, pero deja claro a qué te refieres con cada palabra.

La diferencia entre disponibilidad y fiabilidad importa en la práctica. Imagina un servicio que se cae una vez por hora y se reinicia en un segundo. Su disponibilidad es 3599 / 3600 = 99.97%, lo que parece excelente. Su fiabilidad durante un trabajo por lotes de dos horas es mala: si los fallos llegan al azar a un ritmo de uno por hora, la probabilidad de funcionar dos horas sin ninguno es e-2, alrededor del 13.5%. A un terminal de pago le importa la disponibilidad; a un cálculo científico de larga duración, a un robot quirúrgico o a un avión les importa la fiabilidad durante toda la misión.

Defecto, error y fallo

La comunidad de la confiabilidad (Avižienis, Laprie, Randell y Landwehr, 2004) separa tres ideas que el lenguaje cotidiano confunde. Un defecto es la causa: un bug, un disco averiado, una configuración errónea, un certificado caducado. Un defecto puede permanecer latente durante años. Cuando se activa, produce un error: una parte del estado interno del sistema que es incorrecta, como un registro dañado o un valor incorrecto en memoria. Si el error llega al límite del servicio, el resultado es un fallo: el servicio que se presta a los usuarios se desvía de lo que debería ser.

Bass, Clements y Kazman usan la misma idea de forma más sencilla: un fallo es una desviación de la especificación que los usuarios del sistema pueden observar, y la causa de un fallo es un defecto. Lo importante para los arquitectos es que cada eslabón de la cadena es un lugar donde intervenir. Puedes impedir que surjan defectos (revisión de código, retirar un componente del servicio antes de que se desgaste), detectar los errores antes de que se propaguen (validación, comprobaciones de estado) y contener o enmascarar los errores para que nunca se conviertan en fallos (redundancia, reintentos, transacciones).

La cadena y dónde actúan las tácticas

Un defecto, al activarse, causa un error, que puede convertirse en fallo; las tácticas de detectar, recuperar y prevenir actúan en puntos distintosDefectop. ej., un bug en fechasErrorvalor erróneo en estadoFalloresultado erróneo visibleactivadose propagaPrevenirretirada del servicio,transacciones,modelos predictivosDetectarheartbeat, comprob. estado,monitorización,controles, votoRecuperarredundancia, reintento,rollback, failovery degradación eleganteevitardefectosnotar erroresprontoocultar/repararantes de verseFamilias de tácticas de Bass, Clements y Kazman, Software Architecture in Practice (4.ª edición, 2021)
Las tácticas de prevención impiden que surjan defectos, las de detección advierten los errores y las de recuperación impiden que los errores se conviertan en fallos visibles.

Contar los nueves

Los objetivos de disponibilidad suelen escribirse como un porcentaje con un número de nueves: el 99.9% son tres nueves. Conviene convertir cada objetivo en tiempo de inactividad permitido, porque un porcentaje oculta el poco tiempo del que dispones realmente. El cálculo es sencillo: inactividad = (1 - disponibilidad) x periodo. Un año de 365 días tiene 525 600 minutos, así que el 99.9% permite 0.001 x 525 600 = 525.6 minutos, unas 8.76 horas. Para un mes de 30 días (43 200 minutos) permite 43.2 minutos.

Cada nueve adicional divide el margen entre diez, mientras que el costo de ingeniería suele crecer mucho más deprisa. Con el 99.99% tienes unos 4.3 minutos al mes: menos de lo que tarda una persona en recibir el aviso, despertarse, iniciar sesión y entender qué falla. Por eso, por encima de tres o cuatro nueves, la recuperación debe ser automática; las personas son demasiado lentas para formar parte del proceso.

Tiempo de inactividad permitido para objetivos de disponibilidad habituales (año de 365 días, mes de 30 días)

DisponibilidadPor añoPor mesPor semanaPor día
99% (dos nueves)3.65 días (87.6 h)7.2 horas1.68 horas (100.8 min)14.4 minutos
99.9% (tres nueves)8.76 horas43.2 minutos10.1 minutos1.44 minutos
99.95%4.38 horas21.6 minutos5.04 minutos43.2 segundos
99.99% (cuatro nueves)52.6 minutos4.32 minutos1.01 minutos8.64 segundos
99.999% (cinco nueves)5.26 minutos25.9 segundos6.05 segundos0.86 segundos

MTBF, MTTF y MTTR

Tres promedios relacionan los fallos y las reparaciones. El tiempo medio hasta el fallo (MTTF) es el tiempo medio que funciona un componente antes de fallar. El tiempo medio de reparación (MTTR) es el tiempo medio desde el fallo hasta que se restablece el servicio (algunas organizaciones leen la R como recover o restore, es decir, recuperar o restablecer; la idea es la misma, pero di qué reloj usas: desde el fallo, desde la detección o desde la primera alerta). El tiempo medio entre fallos (MTBF) es el tiempo medio desde un fallo hasta el siguiente.

La fórmula clásica de estado estacionario es A = MTBF / (MTBF + MTTR). En rigor, para un sistema reparable MTBF = MTTF + MTTR, y la expresión exacta es MTTF / (MTTF + MTTR): el tiempo de actividad dividido entre el tiempo de actividad más el de inactividad. Los libros de texto escriben a menudo MTBF cuando se refieren al tiempo medio de actividad; cuando las reparaciones son breves en comparación con el tiempo entre fallos, como suele ocurrir, la diferencia es despreciable. La fórmula supone un promedio a largo plazo y no dice nada sobre cómo se distribuyen las caídas, por lo que combina bien con una medida de fiabilidad y con percentiles del tiempo de reparación.

Ejemplo práctico

Ejemplo práctico: ¿es más barato fallar menos a menudo o recuperarse más rápido?

Un servicio de pedidos de una app de reparto de comida falla de media una vez cada 30 días (MTBF = 720 horas). Cada fallo tarda 4 horas en repararse, porque hay que avisar a un ingeniero, que debe diagnosticar el problema y restaurar una base de datos a mano. El negocio quiere superar el 99.9%.

Disponibilidad actual720 / (720 + 4) = 720 / 724 = 0.99448, es decir, 99.45%
Tiempo de inactividad actual por año(1 - 0.99448) x 8760 h = unas 48.4 horas
Opción 1: duplicar el MTBFMejor hardware y más pruebas; fallos cada 60 días. A = 1440 / 1444 = 0.99723 (99.72%), unas 24.3 horas al año
Opción 2: reducir el MTTR a 15 minutosDetección automatizada, una reserva en caliente (hot standby) y failover mediante scripts. A = 720 / 720.25 = 0.99965 (99.97%), unas 3.0 horas al año
Comprobación del objetivoSolo la opción 2 supera el 99.9% (8.76 horas al año)

Reducir a la mitad la frecuencia de los fallos redujo a la mitad el tiempo de inactividad. Reducir el tiempo de reparación en un factor de 16 redujo el tiempo de inactividad aproximadamente en el mismo factor, y superó el objetivo.

Aumentar el MTBF es luchar contra la física y la complejidad: no puedes hacer perfectos los discos, las redes ni las personas. Reducir el MTTR está en gran parte bajo el control del arquitecto: detección, automatización, redundancia, despliegues pequeños y reversibles. Por eso la práctica moderna de operaciones se centra en la recuperación.

El MTTR es un promedio y oculta las colas largas. Una caída de ocho horas entre muchas de cinco minutos domina el año, así que sigue la distribución de la duración de los incidentes, no solo la media.

Componentes en serie y en paralelo

Los sistemas reales son cadenas de piezas. Si una solicitud necesita la capa web, el servidor de aplicaciones y la base de datos, los tres deben funcionar: los componentes están en serie, y sus disponibilidades se multiplican. Como cada factor es menor que uno, el producto siempre es inferior al del eslabón más débil. Diez componentes al 99.9% cada uno dan 0.99910 = 0.990, solo un 99.0%.

Si, en cambio, basta con una cualquiera de varias copias idénticas, las copias están en paralelo (redundancia). El conjunto solo falla cuando fallan todas las copias a la vez, así que se multiplican las indisponibilidades: Aparalelo = 1 - (1 - A)n para n copias idénticas. Dos servidores al 99% cada uno dan 1 - 0.01 x 0.01 = 99.99%.

Serie y paralelo con números

En serie, las disponibilidades se multiplican; añadir un par redundante en paralelo eleva la disponibilidad de esa etapaA. Tres componentes en serie: todos deben funcionarCapa web99.99%Servidor app99.9%BD99.95%0.9999 x 0.999 x 0.9995 = 0.9984 (99.84%, unas 14 horas de caída al año)B. La misma cadena con dos servidores app en paralelo: basta con unoCapa web99.99%Servidor app 199.9%Servidor app 299.9%BD99.95%par: 1 - (0.001 x 0.001) = 0.999999; cadena: 0.9994 (99.94%, unas 5.3 horas al año)
Duplicar la etapa más débil lleva toda la cadena de unas 14 horas de inactividad al año a unas 5.3.

Ejemplo práctico

Ejemplo práctico: ¿dónde conviene gastar la próxima libra?

Seguimos con el diagrama. La cadena de la parte A está en el 99.84%. ¿Qué cambio la acerca más al 99.99%?

Añadir un segundo servidor de aplicaciones0.9999 x 0.999999 x 0.9995 = 0.99940 (99.94%): unas 5.3 horas al año
Después, añadir una réplica de la base de datos con failoverPar de bases de datos: 1 - 0.00052 = 0.99999975. Cadena: 0.9999 x 0.999999 x 0.99999975 = 0.99990 (99.99%): unos 53 minutos al año
Qué limita ahora el sistemaLa única capa web (99.99%) aporta casi todo el tiempo de inactividad restante

La aritmética supone que las copias fallan de forma independiente. Dos servidores en el mismo rack, con la misma alimentación eléctrica, que ejecutan la misma versión con bugs o que dependen ambos de un único proveedor de DNS comparten defectos de modo común y pueden fallar juntos. Las ganancias reales siempre son menores de lo que sugiere la fórmula.

También supone que el failover es instantáneo y siempre funciona. Una reserva que nunca se ha probado en un failover real es una esperanza, no un componente.

Una regla útil de los autores de SRE de Google (Treynor, Dahlin, Rau y Beyer, 2017): cada dependencia crítica debería ofrecer aproximadamente un nueve más que el servicio que depende de ella, o bien el servicio necesita una forma de arreglárselas sin ella.

Tácticas de disponibilidad: detectar, recuperar, prevenir

Bass, Clements y Kazman agrupan las tácticas de disponibilidad en tres familias. Son opciones de diseño, no una lista de comprobación que haya que aplicar entera; cada una tiene un costo.

Las tres familias de tácticas de disponibilidad

  1. Detectar defectosHeartbeat (latido): un componente envía periódicamente un mensaje de "estoy vivo", y el silencio desencadena una acción. Ping/eco: un monitor pregunta y espera una respuesta. Comprobaciones de estado (health checks): un endpoint como /health que un balanceador de carga o un orquestador consulta periódicamente (una comprobación de actividad, liveness, pregunta "¿se está ejecutando el proceso?"; una comprobación de preparación, readiness, pregunta "¿puede atender tráfico ahora?"). Monitorización de las tasas de error y de la latencia, comprobaciones de coherencia de los valores y votación entre réplicas que calculan el mismo resultado.
  2. Recuperar: preparación y reparaciónReservas redundantes en tres temperaturas: activo-activo (todas las copias atienden tráfico real), hot standby o warm standby (reserva activa: una copia que se mantiene sincronizada y lista) y reserva en frío (cold spare: solo se arranca cuando hace falta). El failover (conmutación por error) desvía el tráfico a una copia en buen estado. El reintento gestiona los defectos transitorios (con límites y back-off, o los reintentos se convierten en una sobrecarga autoinfligida). El rollback vuelve a un estado o a una versión que se sabe que funciona. La degradación elegante mantiene en marcha el servicio principal sin una función que ha fallado: la tienda sigue aceptando pedidos aunque las recomendaciones no funcionen.
  3. Recuperar: reintroducciónVolver a poner en servicio de forma segura un componente reparado: ejecutarlo en modo sombra, resincronizar su estado y reiniciar por pasos escalonados (un hilo, luego un proceso, luego una máquina).
  4. Prevenir defectosRetirada del servicio (sacar un nodo de la rotación para mantenimiento o para un reinicio programado antes de que una fuga de memoria conocida cause problemas), transacciones (actualizaciones de todo o nada para que una caída no pueda dejar un estado escrito a medias), modelos predictivos (sustituir un disco cuando suben sus contadores de errores) y prevención de excepciones (tipos más estrictos, validación de entradas).

Dos formas de redundancia

La redundancia activo-pasivo tiene una reserva que toma el relevo si cesan los heartbeats; activo-activo reparte el tráfico real entre ambas copiasActivo-pasivo (failover)Activo-activoBalanceadorPrimarioatiende tráficoEn esperaocioso o tibiosolo trasfailoverheartbeat cada 1 sla reserva se promueve trasperder 3 latidosBalanceadorNodo A50% del tráficoNodo B50% del tráficocomprobaciones de estado retiranun nodo caído; cada uno debeasumir él solo el 100%
Activo-pasivo paga por capacidad ociosa y por un intervalo de failover; activo-activo usa toda la capacidad, pero cada nodo debe sobrevivir a la pérdida del otro.

Elegir entre activo-pasivo y activo-activo

Activo-pasivo es más fácil de razonar, sobre todo para componentes con estado, como una base de datos relacional con un único primario en el que se puede escribir. Sus costos son la reserva ociosa, un intervalo de failover (detección más promoción, a menudo decenas de segundos) y el riesgo de que la reserva se haya desincronizado sin que nadie lo note. Una trampa clásica es el split brain (cerebro dividido): la red entre los dos se rompe, cada uno cree que el otro ha muerto y ambos aceptan escrituras. Protegerse contra ello requiere un quórum o un árbitro externo.

Activo-activo usa toda la capacidad y no tiene paso de promoción, pero cada nodo debe dimensionarse para soportar toda la carga si su pareja falla. Dos nodos que funcionan cada uno al 70% de utilización recibirán una demanda del 140% cuando uno muera, y el superviviente se hunde: un diseño redundante que falla de todos modos. Activo-activo también te obliga a resolver la consistencia de los datos entre las copias, que es un gran tema en sí mismo (consulta consistencia, CAP y PACELC).

Recuperación ante desastres: RTO y RPO

La redundancia dentro de un centro de datos no te protege de perder todo el centro de datos, una región, una cuenta en la nube o tus datos por un ransomware. La planificación de la recuperación ante desastres usa dos números que deberían venir del negocio, no de los ingenieros. El objetivo de tiempo de recuperación (RTO) es el tiempo máximo aceptable para restaurar el servicio después de un desastre. El objetivo de punto de recuperación (RPO) es la mayor pérdida de datos aceptable, medida en tiempo: un RPO de 15 minutos significa que puedes perder como máximo los cambios de los últimos 15 minutos.

Los dos números llevan a diseños y costos muy distintos. Las copias de seguridad nocturnas copiadas a otra región dan un RPO de hasta 24 horas y un RTO de muchas horas (restaurar terabytes lleva tiempo). La replicación asíncrona continua a un warm standby (espera semiactiva) en otra región podría dar un RPO de segundos y un RTO de minutos, quizá con el doble de costo de infraestructura. La replicación síncrona puede acercar el RPO a cero, pero añade a cada escritura el tiempo de ida y vuelta entre sedes. Los proveedores de nube describen una escalera de estrategias: copia de seguridad y restauración, pilot light (piloto encendido), warm standby y activo-activo multisitio, cada una más rápida y más cara que la anterior. Los detalles corresponden a multirregión y recuperación ante desastres.

Sea cual sea la estrategia, una copia de seguridad que nunca has restaurado no es una copia de seguridad. Prueba las restauraciones de forma programada y mide cuánto tardan; el tiempo de restauración medido es tu RTO real.

De los objetivos a los SLI, SLO y SLA

La práctica moderna de operaciones expresa la disponibilidad con tres términos relacionados, que se tratan a fondo en SLI, SLO y presupuestos de errores. Un indicador de nivel de servicio (SLI) es la medición, por ejemplo la proporción de solicitudes de pago que tienen éxito en menos de 800 ms. Un objetivo de nivel de servicio (SLO) es el objetivo interno para esa medición en una ventana de tiempo, por ejemplo el 99.9% en 30 días. Un acuerdo de nivel de servicio (SLA) es un contrato con los clientes que establece consecuencias, como créditos de servicio, si no se alcanza un nivel; normalmente se fija más laxo que el SLO para que el equipo reciba un aviso antes de que se incumpla el contrato.

El SLO convierte la disponibilidad en un presupuesto. Un SLO mensual del 99.9% permite que falle el 0.1% de las solicitudes; con 2 millones de solicitudes al mes, son 2000 solicitudes fallidas, o unos 43 minutos de caída total. Los equipos gastan este presupuesto de errores en riesgo: lanzamientos, experimentos, migraciones. Cuando se agota, frenan e invierten en fiabilidad. Esto conecta los nueves abstractos de esta sección con las decisiones del día a día.

Errores comunes

Prometer nueves sin contar las dependencias: un servicio del 99.99% construido sobre una única base de datos del 99.9% no puede cumplir su objetivo. Añadir redundancia sin eliminar las causas compartidas (la misma versión, el mismo cambio de configuración, el mismo certificado que caduca en todos los nodos a medianoche). Medir la disponibilidad desde dentro del sistema, donde todo se ve en verde, mientras los usuarios no pueden acceder por culpa del DNS o de una red de distribución de contenidos. Planificar el failover pero no ensayarlo nunca; la ingeniería del caos existe precisamente para ejercitar estos caminos de forma deliberada (ingeniería del caos). Por último, perseguir un número por sí mismo: un sistema de turnos de personal que se usa en horario de oficina no necesita cinco nueves, y el dinero se gasta mejor en otra cosa.

Para que la disponibilidad se pueda probar, escríbela como un escenario (Sección 2.3): Cuando el servidor primario de la base de datos falla en las horas de máxima demanda, el sistema lo detecta en menos de 10 segundos y vuelve a aceptar pedidos en menos de 60 segundos, sin perder ningún pedido confirmado. Cada parte de esa frase se convierte en una decisión de diseño y en una prueba.

Comprueba lo que has entendido

¿Cuántos minutos de inactividad permite un objetivo del 99.95% en un mes de 30 días?

0.0005 x 43 200 = 21.6 minutos.

Dos balanceadores de carga independientes tienen cada uno un 99.5% de disponibilidad y cualquiera de los dos puede soportar todo el tráfico. ¿Cuál es la disponibilidad del par?

1 - (0.005 x 0.005) = 1 - 0.000025 = 99.9975%.

¿Por qué añadir un segundo servidor idéntico podría aportar mucho menos beneficio del que predice la fórmula en paralelo?

Porque las copias pueden compartir causas comunes de fallo, como la misma versión, la configuración, la alimentación eléctrica, la red o una dependencia, así que no fallan de forma independiente; además, el propio failover puede ser lento o no funcionar.

Las copias de seguridad de un equipo se ejecutan cada 6 horas y una restauración completa tarda 3 horas. ¿Cuáles son su RPO y su RTO efectivos en el peor caso?

Un RPO de hasta 6 horas de datos perdidos y un RTO de al menos 3 horas, más el tiempo necesario para detectar el desastre y decidir restaurar.

Siguiente · 2.6Modificabilidad y desplegabilidadCómo especificar el cambio y diseñar para él: qué cambia, quién lo cambia y cuándo, las tácticas que limitan los efectos en cadena, la capacidad de prueba mediante la controlabilidad y la observabilidad, la desplegabilidad y las métricas de entrega de DORA.Continuar →

Fuentes y lecturas recomendadas

¿Tienes una pregunta sobre esta sección? ArchitectBot, el asistente de estudio con IA del curso, responde primero a partir del curso.

Pregunta: “Nuestro proceso de pago depende de un proveedor de pagos con un SLA del 99.9%. ¿Cómo podemos ofrecer a nuestros propios clientes un 99.95% de disponibilidad?”