Diseño de aplicaciones con uso intensivo de datos, 2nd Edición
by Martin Kleppmann, Chris Riccomini
capítulo 9. El problema de los sistemas distribuidos
Los accidentes son cosas curiosas. Nunca los tienes hasta que los tienes.
A. A. Milne, The House at Pooh Corner (1928)
Como se explica en “Fiabilidad y tolerancia a fallos”, para que un sistema sea confiable hay que asegurarse de que el sistema en su conjunto siga funcionando, incluso cuando las cosas salen mal (es decir, cuando hay un fallo). Sin embargo, anticipar todos los fallos posibles y gestionarlos no es tan fácil. Como desarrollador, es muy tentador centrarse principalmente en el camino feliz (al fin y al cabo, ¡la mayoría de las veces todo funciona bien!) y descuidar los fallos, ya que introducen muchos casos extremos.
Si quieres que tu sistema sea confiable en presencia de fallas, tienes que cambiar radicalmente tu mentalidad y centrarte en lo que podría salir mal, aunque sea poco probable. No importa si solo hay una posibilidad entre un millón; en un sistema lo suficientemente grande, los eventos de una entre un millón ocurren todos los días. Los operadores de sistemas con experiencia te dirán que todo lo que puede salir mal, saldrá mal.
Trabajar con sistemas distribuidos también es fundamentalmente diferente a escribir software en una única computadora, siendo la principal diferencia que las cosas pueden salir mal de muchas formas nuevas y emocionantes 1, 2]. En este capítulo, obtendrás una idea de los problemas que surgen en la práctica y comprenderás en qué puedes confiar y en qué no.
Para comprender los retos ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access