$30 off During Our Annual Pro Sale. View Details »

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. Sistemas
    Distribuidos
    José Carlos Chávez
    @jcchavezs
    1er Congreso
    Internacional de
    Ciencias Básicas
    UNHEVAL

    View Slide

  2. 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

    View Slide

  3. ¿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

    View Slide

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

    View Slide

  5. 5
    Antes de internet
    @jcchavezs
    Créditos: Freepik

    View Slide

  6. 6
    Después de internet
    @jcchavezs

    View Slide

  7. ¿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

    View Slide

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

    View Slide

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

    View Slide

  10. 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

    View Slide

  11. 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

    View Slide

  12. 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

    View Slide

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

    View Slide

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

    View Slide

  15. 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.

    View Slide

  16. 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
    알파

    View Slide

  17. 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

    View Slide

  18. 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

    View Slide

  19. 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

    View Slide

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

    View Slide

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

    View Slide

  22. 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

    View Slide

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

    View Slide

  24. 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

    View Slide

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

    View Slide

  26. 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

    View Slide