Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Sistemas Distribuidos

Sistemas Distribuidos

José Carlos Chávez

December 05, 2020
Tweet

More Decks by José Carlos Chávez

Other Decks in Programming

Transcript

  1. 2 Acerca de mi José Carlos Chávez - Ingeniero de

    Software en Traceable.ai - Contribuidor en proyectos de Observabilidad de Sistemas Distribuidos - Estudiante de Matemática Pura @jcchavezs
  2. ¿Qué es un sistema? Un sistema es un conjunto de

    elementos relacionados entre sí que funcionan como un todo. e.g. una silla, una mesa, un celular, etc. 3 @jcchavezs Foto de Anne Nygård en Unsplash
  3. Había una vez un mundo donde la gente trabajaba para

    los sistemas y no los sistemas para la gente... 4 @jcchavezs
  4. ¿Qué son los sistemas distribuidos? Una colección de componentes independientes

    que desde la perspectiva del usuario aparenta un único y coherente sistema - Tanenbaum & van Steen 7 @jcchavezs
  5. 8 Ejemplos • Internet • Juegos en línea • Mercados

    financieros • Búsqueda web @jcchavezs
  6. 9 Características • Concurrencia • Sin reloj global • Fallo

    independiente de componentes • Comunicación poco fiable • Comunicación insegura @jcchavezs
  7. Concurrencia • Concurrencia es encargarse de muchas cosas que se

    superponen de una vez. • Es natural en un modelo donde muchos usuarios tienen acceso al mismo recurso. 10 @jcchavezs
  8. Sin reloj global • Cada componente mantiene una noción propia

    del tiempo dependiendo de su ubicación y red. • La secuencia de los eventos es difícil de determinar. 11 Depositar S/. 10 Bloquear cuenta @jcchavezs
  9. Fallo independiente de componentes • Fallos en la red •

    Fallo de un servidor (o host) • Fallos de los componentes: ◦ Errores de programación ◦ Estados erróneos ◦ Errores bizantinos 12 @jcchavezs
  10. 14 Metas • Intercambio de recursos • Apertura • Escalabilidad

    • Tolerancia de fallos • Heterogeneidad • Transparencia @jcchavezs
  11. Intercambio de recursos 15 @jcchavezs Se trata de facilitar que

    los usuarios (y aplicaciones) accedan y compartan recursos remotos. Los recursos pueden ser típicamente periféricos, instalación de almacenamiento, datos, archivos, servicios o redes.
  12. Apertura Ser abierto significa que los componentes pueden ser utilizados

    o integrados fácilmente en otros sistemas. Dichos componentes deben ser explícitos en qué ofrecen y cómo comunicarse con ellos. 16 @jcchavezs ABC 알파 벳
  13. Escalabilidad • El sistema sigue siendo efectivo frente a un

    aumento significativo en la cantidad de recursos transferidos (datos) y el número de usuarios. • Capacidad para manejar una carga futura en aumento. 17 @jcchavezs 10 peticiones/segundo 50 peticiones/segundo 500 peticiones/segundo
  14. Tolerancia de fallos Se trata de que un sistema esté

    capacitado para continuar su funcionamiento cuando algún componente del sistema falla, posiblemente a un nivel reducido, lo que es mejor a que el sistema falle completamente. 18 @jcchavezs
  15. Heterogeneridad Dado que los sistemas individuales a menudo se desarrollaron

    de forma independiente entre sí, es posible que se basen en diferentes principios arquitectónicos, diferentes lenguajes de programación y sistema operativo. 19 @jcchavezs
  16. Transparencia Se trata de ocultar el hecho de que sus

    procesos y recursos están distribuidos físicamente en varias computadoras. 20 @jcchavezs
  17. 21 Ventajas • Baja probabilidad de fallo total • Alta

    escalabilidad • Acceso a mayor cantidad de recursos • Mayor capacidad de procesamiento de datos @jcchavezs
  18. 22 Falacias comunes • La red es confiable, segura u

    homogénea • La topología no cambia • La latencia es cero • El ancho de banda es infinito • El coste de transporte es cero • Solo hay un administrador Fuente: https://en.wikipedia.org/wiki/Fallacies_of_distributed_computing @jcchavezs
  19. 23 Desventajas • Mayor costo de desarrollo y operacional •

    Alta complejidad de diseño y comprensión y operación @jcchavezs
  20. 24 Desafíos • La mayoría están asociadas a fallos de

    algún tipo. • Los fallos provienen de la naturaleza impredecible, asincrónica y sumamente diversa del mundo físico. @jcchavezs
  21. 25 Conclusiones • Los sistemas distribuidos son complejos. • Están

    orientados a solucionar una serie de problemas y como efecto secundario, introducen otros. @jcchavezs
  22. 26 Referencias • A brief introduction to distributed systems, Maarten

    van Steen & Andrew S. Tanenbaum • From layman to superman: distributed systems an introduction, Median Rawashdeh • Introduction to Distributed Systems (DS), Professor Frank Eliassen @jcchavezs