By

¿Qué son los sistemas distribuidos y P2P?

Vivimos en un período de la historia caracterizado por el rápido cambio de la producción industrial a la producción informatizada y computarizada: la cuarta revolución industrial. Es la edad de oro de los datos, una era de superabundancia de la información. Por ello, la construcción de sistemas eficientes que puedan utilizar los recursos de datos disponibles, pero en gran medida no utilizados, es absolutamente necesario. Los sofisticados sistemas distribuidos que pueden procesar datos a gran escala pueden ayudar a las aplicaciones a utilizar datos en tiempo real y a gran escala.

Hoy vamos a ver lo que es un sistema distribuido y algunos de sus beneficios a nivel empresarial y, para terminar, veremos un caso concreto de sistema distribuido: el P2P o peer-to-peer. ¡Allá vamos!

¿Qué es un sistema distribuido?

Comencemos por la base: un sistema distribuido se define como componentes autónomos, o sistemas de software, que están ubicados en una red y que pueden comunicarse entre sí mediante mensajes. El desafío con los sistemas distribuidos es hacer que el sistema sea confiable y eficiente a medida que se escala.

A medida que el alcance de nuestras aplicaciones crece junto con las demandas posteriores en estas aplicaciones, el papel y la ciencia de los sistemas distribuidos se está volviendo cada vez más importante.

Algunos de los beneficios a nivel empresarial de los sistemas distribuidos:

Rendimiento mejorado

Los sistemas distribuidos dan paso a un mejor rendimiento del servicio que los sistemas centralizados. Dichos sistemas distribuyen la carga computacional entre múltiples nodos y cada una de estas ubicaciones se somete a menos estrés. Esto permite que los nodos funcionen de manera más efectiva, y esto a su vez mejora el rendimiento de todo el servicio. No solo se trata de la distribución de la carga de trabajo, sino también de poder mover la inteligencia de la aplicación electrónicamente más cerca del usuario final. El tiempo de respuesta generalmente será mejor si la base de datos subyacente a una aplicación está en el mismo continente, por ejemplo, como el usuario.

Mayor confiabilidad

Si el cálculo se realiza alrededor de una sola máquina, la salud de la máquina indica el estado del servicio. Entonces, si una máquina se cae, el servicio también se ve afectado. Los sistemas distribuidos, por el contrario, continúan funcionando incluso si un nodo deja de funcionar. Algunos sistemas incluso pueden continuar funcionando de manera confiable en el caso de una falla de red o partición de red.

Mejor escalabilidad

Los sistemas distribuidos funcionan en múltiples máquinas, por lo que estos sistemas son intrínsecamente escalables. Esto implica que un sistema distribuido puede hacer un uso óptimo de los recursos del sistema a la luz de la demanda en la que se encuentra. Si un sistema está bajo una gran presión, cada máquina puede funcionar a su capacidad.

La distribución no es solo una duplicación. La distribución es un sistema que ayuda a entregar el “contenido correcto” justo en el “momento correcto” y en el “lugar correcto”.

¿Qué es P2P o peer-to-peer?

La tecnología peer-to-peer existe desde hace ya un tiempo. Seguro que la reconoces de los días de Napster, Limewire o BitTorrent. Los proyectos de software de código abierto actuales producen una especie de sistema pseudo-P2P, y compañías como Airbnb o Uber desbloquean la “economía de intercambio” para simular redes P2P. Este término está más vivo que nunca, en forma de criptomonedas y al hablar de “la cadena de bloques“. Entonces, ¿qué significa exactamente un sistema P2P?

Peer-to-peer o P2P, también conocida en castellano como “red entre pares” o “de igual a igual”, se refiere a las redes de ordenadores que usan una arquitectura distribuida. Eso significa que todos los ordenadores o dispositivos que forman parte de ella comparten las cargas de trabajo en la red. Los ordenadores o dispositivos electrónicos que forman parte de una red peer-to-peer se llaman pares o peers. Cada par es igual a los demás, y cada par tiene los mismos derechos y obligaciones que los demás. Los pares son clientes y servidores al mismo tiempo.

Además, cada recurso disponible en una red punto a punto se comparte entre los pares, sin que intervenga ningún servidor central. Los recursos compartidos en una red P2P pueden ser cosas como el uso del procesador, el espacio de almacenamiento en disco o el ancho de banda de la red.

El término P2P se puede definir de diferentes maneras, pero lo que hoy nos interesa en este artículo es que un sistema P2P es un sistema distribuido con las siguientes propiedades:

Alto grado de descentralización

Los pares implementan la funcionalidad del cliente y del servidor y la mayoría del estado del sistema y las tareas se asignan dinámicamente entre los pares. Hay pocos o ningún nodo dedicado con estado centralizado. Como resultado, la mayor parte del cómputo, el ancho de banda y el almacenamiento necesarios para operar el sistema son aportados por los nodos participantes.

Autoorganización

Una vez que se introduce un nodo en el sistema (normalmente proporcionándole la dirección IP de un nodo participante y cualquier material clave necesario), se necesita poca o ninguna configuración manual para mantener el sistema.

Múltiples dominios administrativos

Los nodos participantes no son propiedad ni están controlados por una sola organización. En general, cada nodo es propiedad y está operado por un individuo independiente que voluntariamente se une al sistema.

Y, además de las anteriores propiedades, los sistemas P2P tienen varias características distintivas que los hacen interesantes:

Baja barrera para la implementación

Debido a que los sistemas P2P requieren poca o ninguna infraestructura dedicada, la inversión inicial necesaria para implementar un servicio P2P tiende a ser baja en comparación con los sistemas cliente-servidor.

Cultivo orgánico

Debido a que los recursos son aportados por los nodos participantes, un sistema P2P puede crecer casi arbitrariamente sin requerir una “actualización de carretilla elevadora” de la infraestructura existente, por ejemplo, la sustitución de un servidor por un hardware más potente.

Resistencia a errores y ataques

Los sistemas P2P tienden a ser resistentes a los errores ya que hay pocos o ningún nodo que sean críticos para el funcionamiento del sistema. Para atacar o cerrar un sistema P2P, un atacante debe apuntar a una gran proporción de los nodos simultáneamente.

Abundancia y diversidad de recursos

Los sistemas P2P populares tienen una abundancia de recursos que pocas organizaciones podrían pagar individualmente. Los recursos tienden a ser diversos en términos de arquitectura de hardware y software, conexión de red, fuente de alimentación, ubicación geográfica y jurisdicción. Esta diversidad reduce su vulnerabilidad a errores correlacionados, ataques e incluso censura.

Mientras que los sistemas P2P más antiguos y más visibles eran principalmente aplicaciones para compartir archivos, los usos actuales de la tecnología P2P son mucho más diversos e incluyen la distribución de datos, software, contenido multimedia, así como telefonía por Internet y computación científica.

¿Qué opinas de los sistemas distribuidos y P2P? Déjanos tus reflexiones en la caja de comentarios y no olvides compartir si te ha resultado interesante.

Deja un comentario

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