Slide 1

Slide 1 text

Sistemas Distribuidos José Carlos Chávez @jcchavezs 1er Congreso Internacional de Ciencias Básicas UNHEVAL

Slide 2

Slide 2 text

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

Slide 3

Slide 3 text

¿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

Slide 4

Slide 4 text

Había una vez un mundo donde la gente trabajaba para los sistemas y no los sistemas para la gente... 4 @jcchavezs

Slide 5

Slide 5 text

5 Antes de internet @jcchavezs Créditos: Freepik

Slide 6

Slide 6 text

6 Después de internet @jcchavezs

Slide 7

Slide 7 text

¿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

Slide 8

Slide 8 text

8 Ejemplos ● Internet ● Juegos en línea ● Mercados financieros ● Búsqueda web @jcchavezs

Slide 9

Slide 9 text

9 Características ● Concurrencia ● Sin reloj global ● Fallo independiente de componentes ● Comunicación poco fiable ● Comunicación insegura @jcchavezs

Slide 10

Slide 10 text

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

Slide 11

Slide 11 text

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

Slide 12

Slide 12 text

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

Slide 13

Slide 13 text

Problemas en comunicación ● Falta de fiabilidad ● Inseguridad ● Costos 13 @jcchavezs

Slide 14

Slide 14 text

14 Metas ● Intercambio de recursos ● Apertura ● Escalabilidad ● Tolerancia de fallos ● Heterogeneidad ● Transparencia @jcchavezs

Slide 15

Slide 15 text

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.

Slide 16

Slide 16 text

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 알파 벳

Slide 17

Slide 17 text

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

Slide 18

Slide 18 text

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

Slide 19

Slide 19 text

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

Slide 20

Slide 20 text

Transparencia Se trata de ocultar el hecho de que sus procesos y recursos están distribuidos físicamente en varias computadoras. 20 @jcchavezs

Slide 21

Slide 21 text

21 Ventajas ● Baja probabilidad de fallo total ● Alta escalabilidad ● Acceso a mayor cantidad de recursos ● Mayor capacidad de procesamiento de datos @jcchavezs

Slide 22

Slide 22 text

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

Slide 23

Slide 23 text

23 Desventajas ● Mayor costo de desarrollo y operacional ● Alta complejidad de diseño y comprensión y operación @jcchavezs

Slide 24

Slide 24 text

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

Slide 25

Slide 25 text

25 Conclusiones ● Los sistemas distribuidos son complejos. ● Están orientados a solucionar una serie de problemas y como efecto secundario, introducen otros. @jcchavezs

Slide 26

Slide 26 text

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