Saltar a contenido

Sesión 08: Sistemas distribuidos


¿Que es un sistema distribuido?

Es un conjunto nodos de procesamiento (Computadores, contenedores o máquinas virtuales)

Estos pueden operar de forma independiente están comunicandose entre sí y para un usuario final es un sólo nodo procesamiento


¿Porque los sistemas distribuidos son importantes?

  • Permiten manejar grandes volumenes de datos y capacidades de procesamiento
  • Son escalables
  • La complejidad del diseño de las aplicaciones se incrementa, porque es necesario tener en cuenta la distribución tareas y datos

Como está compuesto

Diferentes nodos de procesamiento que son gestionados por un middleware sobre el cual corren las aplicaciones


Tipos de escalabilidad

Capacidad de ofrecer mayor procesamiento, almacenamiento, etc

  • Vertical: Aumentar recursos en un mismo nodo de procesamiento
  • Horizontal: Es agregar más de nodos de procesamiento

Tolerancia a fallos

Un cluster puede responder así uno de sus nodos falle

Por otra parte, un cluster puede levantar un instancia de procesamiento adicional cuando sea necesario (fallos, picos de petición)


Ejemplo de arquitectura

Tenemos una aplicación Web que se conecta un equilibrador de carga (balanceador de carga) que distribuye las peticiones entre diferentes instancias de backend y tiene servidores en espera que se integran a los disponibles cuando es necesario.


Practica de docker

Pasos previos

docker ps
#Verificar si tengo los permisos

#Si no funciona toca agregar al usuario actual al grupo docker
sudo usermod -G docker <usuario>

Construcción de la imagen

Lo primero es generar el Dockerfile

docker build -t <tag> .
#tag es el nombre que le quiere a la imagina

EJecutar la imagen

docker run -p <puerto host>:<puerto cont> <tag>:latest 

Acceder

docker exec -it <nombre-docker-ps> /bin/bash