Crea una cuenta o inicia sesión

¡Continúa aprendiendo sin ningún costo! Únete y comienza a potenciar tu carrera

No se trata de lo que quieres comprar, sino de quién quieres ser. Invierte en tu educación con el precio especial

Antes: $249

Currency
$209

Paga en 4 cuotas sin intereses

Paga en 4 cuotas sin intereses
Suscríbete

Termina en:

12 Días
15 Hrs
20 Min
9 Seg

Elementos de un sistema distribuido en la nube

4/25
Recursos

Aportes 15

Preguntas 2

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

¿Alguna vez han visto que algunos videojuegos les piden que elijan el servidor? Ahora saben por qué.
.
Como adicional, recomiendo que sus sistemas distribuidos tengan servidores lo más cercano posible entre sí. Es decir, no vas a poner el servidor en América y la base de datos en Asia.
.
Adicionalmente, para distribuir tu sistema al rededor del mundo podemos usar un CDN o Content Delivery Network (Red de distribución de contenido), esto permitirá distribuir servidores en todo el mundo que se conectan a nuestro servidor central, y en dado caso de que este caiga, la CDN los mantendrá en línea con una copia en caché de los datos ^^

Elementos que podemos encontrar en un Sistema Distribuido

  • Load Balancers
  • Máquinas Virtuales
  • Bases de datos Relacionales o No Relacionales
  • Servicios de Colas (Ejemplo: SQS)
  • Servicios de Storage (Ejemplo: S3)
  • Servicios Publisher-Suscriber (Ejemplo: SNS)
  • Pipelines

¿Hasta donde puede llegar a crecer un Sistema Distribuido?
Podemos globalizar nuestro sistema teniendolo distribuido en diferentes partes del mundo a través de servicios implementados en diferentes servidores

Para dar un poco de ejemplo de como podemos romper todo un monolito en pequeños servicios, podemos tener un caso de Login, busqueda y subida de videos en una app, todo eso en un monolito, es un servidor cualquiera con capacidades de RAM/CPU/Storage establecido.

En microservicios podemos encontrar:

  • Cada vez que alguien suba un video, puede publicar un evento para que los demás sistemas (como el de busquedas) se enteren del nuevo video usando SNS.

  • Cada vez que se suba un video, también se enviará un mensaje a una cola, para que se transforme la calidad y resolución al video.

  • Los videos pueden estar alojados en S3, así, no tendremos problema porque se nos acabo el espacio en disco.

  • Usando APIGateway y Lambdas podremos crear un pequeño servicio que haga consultas a una base de datos para hacer la busqueda de videos.

Esto de los microsevicios, es una nueva forma de pensar, cambia muchos paradigmas de construir todo en una misma app, para entregar las responsabilidades a distintos servicios enfocados a cada tarea.

\n Perdon que no se viusalice bien :’( algo pasa con esta caja de comentarios jaja

Para aprender lo mas util de aws que puedes implementar en futuros o actuales proyectos le recomiendo el libro de https://gumroad.com/l/aws-good-parts

Primer comentario del curso

Este concepto de sistemas distribuidos va muy acorde con el principio de responsabilidad unica, cada servicio se encarga de hacer lo suyo.

Es aquí donde los proveedores de computo en la nube nos facilitan demasiado la vida, bastan unos pocos clics para configurar tu servidor para que se aloje en X o Y país, o incluso que sea multi-región.

o.O por eso en localhost:8000 es bien rápido 😅

El profesor pregunta : ¿Hasta donde puede llegar a crecer un sistema distribuido?

En algunos sistemas se detecta automáticamente tu zona para conectarte al servidor de conveniencia.

Qué pasa con las restricciones que tiene un sistema distribuido? Extrañé la mención del teorema CAP

Un como ingeniero de software debemos de en no siempre inventar la rueda cuando ya existe, podemos aprovechar las herramientas y servicios que existen en el mercado para tener proyectos bien elaborados y con gran escalabilidad. Siempre pensando que casa cosa tiene su caso de uso especifico.

excelente curso

Excelente