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

Sistemas Distribuidos

Sponsored · Ship Features Fearlessly Turn features on and off without deploys. Used by thousands of Ruby developers.

Sistemas Distribuidos

Avatar for José Carlos Chávez

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