Comparación: sistemas centralizados, descentralizados y distribuidos

En este artículo, intentaremos comprender y comparar diferentes aspectos de los sistemas centralizados, descentralizados y distribuidos. 

1. SISTEMAS CENTRALIZADOS:

Empezamos con los sistemas centralizados porque son los más intuitivos y fáciles de entender y definir. 

Los sistemas centralizados son sistemas que utilizan una arquitectura cliente/servidor donde uno o más Nodes de cliente están conectados directamente a un servidor central. Este es el tipo de sistema más utilizado en muchas organizaciones donde un cliente envía una solicitud a un servidor de la empresa y recibe la respuesta. 

Figura – Visualización del sistema centralizado 

Ejemplo: 
Wikipedia. Considere un servidor masivo al que enviamos nuestras requests y el servidor responde con el artículo que solicitamos. Supongamos que ingresamos el término de búsqueda ‘comida chatarra’ en la barra de búsqueda de Wikipedia. Este término de búsqueda se envía como una solicitud a los servidores de Wikipedia (principalmente ubicados en Virginia, EE. UU.) que luego responde con los artículos según su relevancia. En esta situación, somos el Node cliente, los servidores de Wikipedia son el servidor central. 

Características del Sistema Centralizado – 

  • Presencia de un reloj global: como todo el sistema consta de un Node central (un servidor/maestro) y muchos Nodes de cliente (una computadora/esclavo), todos los Nodes de cliente se sincronizan con el reloj global (el reloj del Node central). ). 
  • Una sola unidad central: Una sola unidad central que sirve/coordina a todos los demás Nodes del sistema. 
  • Fallo dependiente de los componentes: el fallo del Node central hace que falle todo el sistema. Esto tiene sentido porque cuando el servidor está inactivo, no hay ninguna otra entidad para enviar/recibir respuestas/requests. 
     

Escalado: 
solo es posible el escalado vertical en el servidor central. El escalamiento horizontal contradirá la unidad central única característica de este sistema de una sola entidad central. 

Componentes del Sistema Centralizado – 
Los componentes del Sistema Centralizado son, 

  • Node (Ordenador, Móvil, etc.). 
  • Servidor. 
  • Enlace de comunicación (Cables, Wi-Fi, etc.). 
     

Arquitectura de Sistema Centralizado – Arquitectura 
Cliente-Servidor. El Node central que sirve a los demás Nodes del sistema es el Node servidor y todos los demás Nodes son los Nodes cliente. 

Limitaciones del Sistema Centralizado – 

  • No se puede escalar verticalmente después de un cierto límite: después de un límite, incluso si aumenta las capacidades de hardware y software del Node del servidor, el rendimiento no aumentará considerablemente, lo que generará una relación costo/beneficio < 1. 
     
  • Pueden aparecer cuellos de botella cuando el tráfico aumenta, ya que el servidor solo puede tener un número finito de puertos abiertos en los que puede escuchar las conexiones de los Nodes de los clientes. Por lo tanto, cuando se produce un alto tráfico como una venta de compras, el servidor puede sufrir un ataque de denegación de servicio o un ataque de denegación de servicio distribuido. 
     

Ventajas del Sistema Centralizado – 

  • Fácil de asegurar físicamente. Es fácil proteger y dar servicio a los Nodes del servidor y del cliente en virtud de su ubicación.
  • Experiencia personal fluida y elegante: un cliente tiene un sistema dedicado que utiliza (por ejemplo, una computadora personal) y la empresa tiene un sistema similar que puede modificarse para adaptarse a las necesidades personalizadas.
  • Recursos dedicados (memoria, núcleos de CPU, etc.)
  • Más rentable para sistemas pequeños hasta cierto límite: como los sistemas centrales requieren menos fondos para instalarse, tienen una ventaja cuando se deben construir sistemas pequeños.
  • Las actualizaciones rápidas son posibles: solo una máquina para actualizar.
  • Fácil separación de un Node del sistema. ¡Simplemente elimine la conexión del Node cliente del servidor y listo! Node separado.

Desventajas del sistema centralizado: 

  • Altamente dependiente de la conectividad de la red: el sistema puede fallar si los Nodes pierden la conectividad, ya que solo hay un Node central.
  • Sin degradación elegante del sistema: falla abrupta de todo el sistema
  • Menor posibilidad de respaldo de datos. Si el Node del servidor falla y no hay una copia de seguridad, pierde los datos de inmediato
  • Mantenimiento del servidor difícil: solo hay un Node de servidor y, debido a razones de disponibilidad, es ineficiente y poco profesional desconectar el servidor para realizar el mantenimiento. Por lo tanto, las actualizaciones deben realizarse sobre la marcha (actualizaciones en caliente), lo cual es difícil y el sistema podría romperse.

Aplicaciones del Sistema Centralizado – 

  • Desarrollo de aplicaciones: muy fácil de configurar un servidor central y enviar requests de clientes. La tecnología moderna en estos días viene con servidores de prueba predeterminados que se pueden iniciar con un par de comandos. Por ejemplo, servidor Express, servidor Django.
  • Análisis de datos: análisis de datos fácil de realizar cuando todos los datos están en un solo lugar y disponibles para el análisis
  • informática personal

Casos de uso – 

  • Bases de datos centralizadas: todos los datos en un servidor para su uso.
  • Juegos para un solo jugador como Need For Speed, GTA Vice City: un juego completo en un solo sistema (comúnmente, una computadora personal)
  • Desarrollo de aplicaciones mediante la implementación de servidores de prueba que facilitan la depuración, la implementación y la simulación
  • Computadoras personales

Organizaciones que utilizan: 
Centro Nacional de Informática (India), IBM 
 

2. SISTEMAS DESCENTRALIZADOS:

Estos son otros tipos de sistemas que han ganado mucha popularidad, principalmente debido a la enorme publicidad de Bitcoin. Ahora muchas organizaciones están tratando de encontrar la aplicación de tales sistemas. 

En los sistemas descentralizados, cada Node toma su propia decisión. El comportamiento final del sistema es el agregado de las decisiones de los Nodes individuales. Tenga en cuenta que no hay una sola entidad que reciba y responda a la solicitud. 

Figura: visualización del sistema descentralizado 

Ejemplo: 
Bitcoin. Tomemos Bitcoin por ejemplo porque es el caso de uso más popular de los sistemas descentralizados. Ninguna entidad/organización es propietaria de la red bitcoin. La red es una suma de todos los Nodes que se comunican entre sí para mantener la cantidad de bitcoin que tiene cada titular de cuenta. 

Características del Sistema Descentralizado – 

  • Falta de un reloj global: cada Node es independiente entre sí y, por lo tanto, tiene diferentes relojes que ejecutan y siguen.
  • Múltiples unidades centrales (Computadoras/Nodes/Servidores): Más de una unidad central que puede escuchar conexiones de otros Nodes
  • Falla dependiente de componentes: la falla de un Node central hace que una parte del sistema falle; no todo el sistema

Escalado: 
es posible el escalado vertical. Cada Node puede agregarse recursos (hardware, software) para aumentar el rendimiento, lo que conduce a un aumento en el rendimiento de todo el sistema. 

Componentes: 
los componentes del sistema descentralizado son, 

  • Node (Ordenador, Móvil, etc.)
  • Enlace de comunicación (Cables, Wi-Fi, etc.)

Arquitectura del Sistema Descentralizado – 

  • Arquitectura peer-to-peer: todos los Nodes son pares entre sí. Ningún Node tiene supremacía sobre otros Nodes
  • arquitectura maestro-esclavo: un Node puede convertirse en maestro votando y ayudando a coordinar una parte del sistema, pero esto no significa que el Node tenga supremacía sobre el otro Node que está coordinando

Limitaciones del Sistema Descentralizado – 

  • Puede conducir al problema de la coordinación a nivel empresarial: cuando cada Node es dueño de su propio comportamiento, es difícil lograr tareas colectivas
  • No apto para sistemas pequeños: no es beneficioso para construir y operar sistemas descentralizados pequeños debido a la baja relación costo/beneficio
  • No hay forma de regular un Node en el sistema: ningún Node superior supervisa el comportamiento de los Nodes subordinados

Ventajas del sistema descentralizado: 

  • Problema mínimo de cuellos de botella en el rendimiento: toda la carga se equilibra en todos los Nodes; lo que lleva a situaciones de cuello de botella mínimas o nulas
  • Alta disponibilidad: algunos Nodes (computadoras, móviles, servidores) siempre están disponibles/en línea para trabajar, lo que genera una alta disponibilidad.
  • Más autonomía y control sobre los recursos: dado que cada Node controla su propio comportamiento, tiene una mejor autonomía que conduce a un mayor control sobre los recursos.

Desventajas del sistema descentralizado: 

  • Difícil de lograr grandes tareas globales: no hay string de mando para ordenar a otros que realicen ciertas tareas
  • Sin supervisión regulatoria
  • Es difícil saber qué Node falló: se debe hacer ping a cada Node para verificar la disponibilidad y se debe realizar la partición del trabajo para averiguar realmente qué Node falló al verificar el resultado esperado con lo que generó el Node.
  • Difícil saber qué Node respondió: cuando un sistema descentralizado atiende una solicitud, en realidad la atiende uno de los Nodes del sistema, pero en realidad es difícil averiguar qué Node realmente atendió la solicitud.

Aplicaciones del Sistema Descentralizado – 

  • Redes privadas: los Nodes pares se unieron entre sí para crear una red privada.
  • Criptomoneda: los Nodes se unieron para convertirse en parte de un sistema en el que la moneda digital se intercambia sin ningún rastro ni ubicación de quién envió qué a quién. Sin embargo, en bitcoin, podemos ver la dirección pública y la cantidad de bitcoin transferida, pero esas direcciones públicas son mutables y, por lo tanto, difíciles de rastrear.

Casos de uso – 

  • string de bloques
  • Bases de datos descentralizadas: bases de datos completas divididas en partes y distribuidas a diferentes Nodes para su almacenamiento y uso. Por ejemplo, registros con nombres que comienzan de ‘A’ a ‘K’ en un Node, ‘L’ a ‘N’ en el segundo Node y ‘O’ a ‘Z’ en el tercer Node
  • criptomoneda

Organizaciones que utilizan – 
Bitcoin, red Tor 

3. SISTEMAS DISTRIBUIDOS:

Este es el último tipo de sistema que vamos a discutir. ¡Vamos directamente a eso! 

En los sistemas descentralizados, cada Node toma su propia decisión. El comportamiento final del sistema es el agregado de las decisiones de los Nodes individuales. Tenga en cuenta que no hay una sola entidad que reciba y responda a la solicitud. 

Figura: visualización del sistema distribuido 

Ejemplo: 
sistema de búsqueda de Google. Cada solicitud es procesada por cientos de computadoras que rastrean la web y devuelven los resultados relevantes. Para el usuario, Google parece ser un sistema, pero en realidad son varias computadoras que trabajan juntas para realizar una sola tarea (devolver los resultados a la consulta de búsqueda). 

Características del Sistema Distribuido – :

  • Concurrencia de componentes: los Nodes aplican protocolos de consenso para acordar los mismos valores/transacciones/comandos/registros.
  • Ausencia de un reloj global: Todos los Nodes mantienen su propio reloj.
  • Fallo independiente de los componentes: en un sistema distribuido, los Nodes fallan de forma independiente sin tener un efecto significativo en todo el sistema. Si un Node falla, todo el sistema sin el Node fallido continúa funcionando.

Escalado: 
es posible el escalado horizontal y vertical. 

Componentes del sistema distribuido: 
los componentes del sistema distribuido son, 

  • Node (Ordenador, Móvil, etc.)
  • Enlace de comunicación (Cables, Wi-Fi, etc.)

Arquitectura del Sistema Distribuido – 

  • peer-to-peer: todos los Nodes son pares entre sí y trabajan hacia un objetivo común
  • cliente-servidor: algunos Nodes se convierten en Nodes de servidor para el rol de coordinador, árbitro, etc.
  • Arquitectura de n niveles: diferentes partes de una aplicación se distribuyen en diferentes Nodes de los sistemas y estos Nodes funcionan juntos para funcionar como una aplicación para el usuario/cliente

Limitaciones del Sistema Distribuido – 

  • Algoritmos difíciles de diseñar y depurar para el sistema. Estos algoritmos son difíciles debido a la ausencia de un reloj común; por lo que no se puede realizar ningún orden temporal de comandos/registros. Los Nodes pueden tener diferentes latencias que deben tenerse en cuenta al diseñar dichos algoritmos. La complejidad aumenta con el aumento del número de Nodes. Visita este enlace para más información
  • Ningún reloj común causa dificultad en el ordenamiento temporal de eventos/transacciones
  • Dificultad para que un Node obtenga una visión global del sistema y, por lo tanto, tome decisiones informadas basadas en el estado de otros Nodes en el sistema

Ventajas del Sistema Distribuido – 

  • Baja latencia que un sistema centralizado: los sistemas distribuidos tienen una latencia baja debido a la gran dispersión geográfica, lo que lleva a menos tiempo para obtener una respuesta.

Desventajas del Sistema Distribuido – 

  • Difícil lograr consenso
  • La forma convencional de registrar eventos por el tiempo absoluto en que ocurren no es posible aquí.

Aplicaciones del Sistema Distribuido –  

  • Clúster de computación: una técnica en la que muchas computadoras se acoplan para trabajar y lograr objetivos globales. El clúster de computadoras actúa como si fuera una sola computadora
  • Computación en red: todos los recursos se agrupan para compartir en este tipo de computación, convirtiendo los sistemas en una poderosa supercomputadora; esencialmente.

Casos de uso – 

  • Sistemas basados ​​en SOA
  • Juegos multijugador en línea

Organizaciones que utilizan: 
Apple, Google, Facebook.

Publicación traducida automáticamente

Artículo escrito por Parikshit Hooda y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *