Sistemas Distribuidos

Estas notas son extraídas fundamentalmente del libro "Distributed Systems for fun and profit", de mixu[1]

¿Que son?

¿Ustedes que piensan que son los Sistema Distribuido?

¿Que son?

System of networked computers that communicate and coordinate their actions only by passing messages. (Coulouris)

A collection of independent computers that appear to the users as a single coherent system. (Tanenbaum)

Distributed programming is the art of solving the same problem that you can solve on a single computer using multiple computers. (Mikito Takada)

Elementos de un SD

Equipos autonomos

Pasaje de mensajes

Memoria y Procesador

Red de datos

¿Cuando surge la necesidad de usar un SD?

El "tamaño" de los problemas a resolver crece a mayor velocidad que el poder de computo del Hardware

Cloud Computing

La "nube" son grandes sistemas distribuidos donde el problema a resolver es la asignación flexible y dinámica de recursos computacionales a múltiples clientes de forma concurrente

 

A su vez, los clientes de CC construyen sistemas distribuidos sobre el servicio ofrecido por los proveedores

Objetivos de un SD - 1

Escalabilidad

Contar la cantidad de personas en una habitación

Contar la cantidad de personas en un país

Definición: Capacidad de un sistema de manejar una cantidad creciente de trabajo de forma adecuada, o en su defecto, que ampliar su capacidad no degrade el rendimiento general [Wikipedia]

Objetivos de un SD - 1

Escalabilidad

Dos aspectos a considerar

 

Performance (Latencia)

Disponibilidad (Tolerancia a fallas)

Objetivos de un SD - 2

Performance

Definición: Cantidad de trabajo útil de un sistema en relación al tiempo y recursos utilizados. [Wikipedia]

Latencia

Throughput

Uso de recursos

Trade off entre estos recursos, siempre

Objetivos de un SD - 2

Disponibilidad

Definición: Proporción de tiempo en el cual un usuario puede utilizar un sistema. [Wikipedia]

Un SD permite construir un sistema confiable (Alta disponibilidad) sobre componentes no confiables (Redes de datos, equipos)

La disponibilidad se alcanza mediante la introducción de redundancia (de hosts, de datos, de servicios).

Limitaciones físicas

Cantidad de nodos

Distancia entre los nodos

Partición y Replicación

¿Ventajas? ¿Problemas?

Teorema CAP

Teorema CAP

En un sistema distribuido, solo 2 de las siguientes 3 propiedades son alcanzables

Consistencia

Disponibilidad

Tolerancia a la Partición

Tipos de consistencia

Consistencia fuerte

Consistencia débil

Consistencia eventual

Ejemplos

Cache de datos (Browser y Server)

 

¿Como afecta la disponibilidad?

¿Como afecta la consistencia?

 

 

¿En que niveles se puede tener una Cache?

Ejemplos

Redes de Distribución de Contenido (CDN)

 

¿Como afecta la disponibilidad?

¿Como afecta la consistencia?

Ejempos

¿En que contexto se requiere consistencia sacrificando disponibilidad?

Sistemas Distribuidos

By Tomas Delvechio

Sistemas Distribuidos

Una introduccion a los sistemas distribuidos, para desarrolladores de software

  • 1,140