¿Qué es la computación distribuida?
La computación distribuida es un método que consiste en hacer que varias computadoras trabajen juntos para resolver un problema común. De este modo, una red de computadoras forma una única computadora potente que brinda recursos a gran escala para afrontar desafíos complejos.
Por ejemplo, la computación distribuida puede cifrar volúmenes grandes de datos; resolver ecuaciones físicas y químicas con muchas variables y renderizar animaciones de video de alta calidad en tres dimensiones. Sistemas distribuidos, programación distribuida y algoritmos distribuidos son otros términos que se refieren a la computación distribuida.
¿Cuáles son las ventajas de la computación distribuida?
Los sistemas distribuidos aportan muchas ventajas con respecto a la computación de un solo sistema. A continuación se muestran algunos ejemplos:
Escalabilidad
Los sistemas distribuidos pueden crecer con su carga de trabajo y sus necesidades. Puede agregar nuevos nodos, es decir, más dispositivos de computación, a la red de computación distribuida cuando sean necesarios.
Disponibilidad
El sistema de computación distribuida no se colapsará si una de las computadoras se cae. El diseño muestra tolerancia a los fallos porque puede seguir en funcionamiento incluso si las computadoras individuales fallan.
Consistencia
Las computadoras de un sistema distribuido comparten información y duplican datos entre ellos, pero el sistema administra automáticamente la coherencia de datos en todos las computadoras. De este modo, se obtiene el beneficio de la tolerancia a los fallos sin comprometer la coherencia de datos.
Transparencia
Los sistemas de computación distribuida proporcionan una separación lógica entre el usuario y los dispositivos físicos. Puede interactuar con el sistema como si se tratara de una única computadora sin preocuparse de la instalación y configuración de las máquinas individuales. Puede tener diferentes hardware, middleware, software y sistemas operativos que trabajan juntos para que su sistema funcione sin problemas.
Eficiencia
Los sistemas distribuidos ofrecen un rendimiento más rápido con un uso óptimo de los recursos del hardware subyacente. Como resultado, puede administrar cualquier carga de trabajo sin preocuparse por el fallo del sistema debido a los picos de volumen o a la infrausación del costoso hardware.
¿Cuáles son algunos casos de uso de la computación distribuida?
La computación distribuida está hoy en día en todas partes. Las aplicaciones móviles y web son ejemplos de computación distribuida porque varias máquinas trabajan juntas en el backend para que la aplicación le dé la información correcta. Sin embargo, cuando los sistemas distribuidos escalan verticalmente, pueden resolver retos más complejos. Exploremos algunas formas en las que diferentes industrias usan aplicaciones distribuidas de alto rendimiento.
Sanidad y ciencias biológicas
El sector sanidad y ciencias biológicas usa la computación distribuida para modelar y simular datos complejos de las ciencias biológicas. El análisis de imágenes, la investigación de medicamentos y el análisis de la estructura de los genes se vuelven más rápidos con los sistemas distribuidos. A continuación, se indican varios ejemplos:
- Acelerar el diseño de fármacos basado en la estructura mediante la visualización de modelos moleculares en tres dimensiones.
- Reducir los tiempos de procesamiento de los datos genómicos para obtener información temprana sobre el cáncer, la fibrosis quística y el Alzheimer.
- Desarrollar sistemas inteligentes que ayuden a los médicos a diagnosticar a los pacientes al procesar un gran volumen de imágenes complejas como las resonancias magnéticas, las radiografías y los TAC.
Investigación en ingeniería
Los ingenieros pueden simular conceptos complejos de física y mecánica en sistemas distribuidos. Usan esta investigación para mejorar el diseño de los productos, crear estructuras complejas y diseñar vehículos más rápidos. A continuación, se indican varios ejemplos:
- La investigación en dinámica de fluidos computacional estudia el comportamiento de los líquidos y pone en práctica esos conceptos en el diseño de aviones y en las carreras de coches.
- La ingeniería asistida por una computadora requiere herramientas de simulación de uso intensivo de computadoras para probar la ingeniería de nuevas plantas, la electrónica y los bienes de consumo.
Servicios financieros
Las empresas de servicios financieros usan sistemas distribuidos para realizar simulaciones económicas de alta velocidad que evalúan los riesgos de las carteras, predicen los movimientos del mercado y respaldan la toma de decisiones financieras. Pueden crear aplicaciones web que utilicen la potencia de los sistemas distribuidos para hacer lo siguiente:
- Ofrecer primas personalizadas de bajo coste.
- Usar bases de datos distribuidas para admitir de forma segura un volumen muy elevado de transacciones financieras.
- Autenticar a los usuarios y proteger a los clientes del fraude.
Energía y medio ambiente
Las empresas energéticas necesitan analizar grandes volúmenes de datos para mejorar las operaciones y la transición hacia soluciones sostenibles y respetuosas con el clima. Usan sistemas distribuidos para analizar secuencias de datos de gran volumen procedentes de una amplia red de sensores y otros dispositivos inteligentes. Estas son algunas de las tareas que podrían realizar:
- transmisión y consolidación de datos sísmicos para el diseño estructural de centrales eléctricas.
- vigilancia de pozos petrolíferos en tiempo real para una administración proactiva de los riesgos.
¿Cuáles son los tipos de arquitectura de la computación distribuida?
En la computación distribuida, se diseñan aplicaciones que pueden ejecutarse en varias computadoras en lugar de en una sola. Esto se consigue al diseñar el software de forma que las distintas computadoras realicen diferentes funciones y se comuniquen para desarrollar la solución final. Existen cuatro tipos principales de arquitectura distribuida.
Arquitectura cliente-servidor
El método cliente-servidor es el más común para la organización del software en un sistema distribuido. Las funciones están separadas en dos categorías: clientes y servidores.
Clientes
Los clientes tienen una información y una capacidad de procesamiento limitadas. En su lugar, realizan peticiones a los servidores, que administran la mayoría de los datos y otros recursos. Puede hacer solicitudes al cliente, y éste se comunica con el servidor en su nombre.
Servidores
Las computadoras servidores sincronizan y administran el acceso a los recursos. Responden a las solicitudes de los clientes con datos o información de estado. Normalmente, un servidor puede administrar las solicitudes de varias máquinas.
Beneficios y limitaciones
La arquitectura cliente-servidor ofrece las ventajas de la seguridad y la facilidad de la gestión continua. Solo tiene que centrarse en la seguridad de las computadoras servidores. Del mismo modo, cualquier cambio en los sistemas de bases de datos requiere únicamente cambios en el servidor.
La limitación de la arquitectura cliente-servidor es que los servidores pueden provocar cuellos de botella en las comunicaciones, especialmente cuando varias máquinas realizan peticiones simultáneamente.
Arquitectura de tres niveles
En los sistemas distribuidos de tres niveles, las máquinas cliente son el primer nivel al que se accede. Las máquinas servidoras, por su parte, se dividen a su vez en dos categorías:
Servidores de aplicaciones
Los servidores de aplicaciones actúan como el nivel intermedio para la comunicación. Contienen la lógica de la aplicación o las funciones centrales para las que se diseña el sistema distribuido.
Servidores de bases de datos
Los servidores de bases de datos actúan como el tercer nivel para almacenar y administrar los datos. Son responsables de la recuperación de los datos y de su coherencia.
Al dividir la responsabilidad de los servidores, los sistemas distribuidos de tres niveles reducen los cuellos de botella en las comunicaciones y mejoran el rendimiento de la computación distribuida.
Arquitectura de nivel N
Los modelos de nivel N incluyen varios sistemas cliente-servidor diferentes que se comunican entre sí para resolver el mismo problema. La mayoría de los sistemas distribuidos modernos usan una arquitectura de nivel N con diferentes aplicaciones empresariales que trabajan juntas como un solo sistema en segundo plano.
Arquitectura entre pares
Los sistemas distribuidos entre pares asignan responsabilidades iguales a todas las computadoras conectadas a la red. No hay separación entre las computadoras cliente y servidores, y cualquier computadora puede desempeñar todas las responsabilidades. La arquitectura entre pares se hace popular para el intercambio de contenidos, la transmisión de archivos y las redes blockchain.
¿Cómo funciona la computación distribuida?
La computación distribuida funciona mediante computadoras que se pasan mensajes entre sí dentro de la arquitectura de los sistemas distribuidos. Los protocolos o reglas de comunicación crean una dependencia entre los componentes del sistema distribuido. Esta interdependencia se llama acoplamiento, y hay dos tipos principales de este.
Acoplamiento flexible
En el acoplamiento flexible, los componentes están débilmente conectados para que los cambios en uno de ellos no afecten al otro. Por ejemplo, las computadoras del cliente y del servidor pueden estar débilmente acopladas por tiempo. Los mensajes del cliente se agregan a una cola del servidor, y el cliente puede así continuar con sus otras funciones hasta que el servidor responda a su mensaje.
Acoplamiento ajustado
Los sistemas distribuidos de alto rendimiento suelen usar un acoplamiento ajustado. Las redes de área local rápidas suelen conectar varias computadoras, lo que crea un clúster. En la computación en clúster, cada computadora se configura para realizar la misma tarea. Los sistemas de control central, denominados middleware de agrupación, controlan y programan las tareas y coordinan la comunicación entre las distintas computadoras.
¿Qué es la computación paralela?
La computación paralela es cuando una o varias computadoras en red realizan muchos cálculos o procesos simultáneamente. Aunque los términos computación paralela y computación distribuida suelen emplearse indistintamente, tienen algunas diferencias.
Computación paralela vs. computación distribuida
La computación paralela es una forma de computación distribuida de acoplamiento ajustado. En el procesamiento en paralelo, todos los procesadores tienen acceso a la memoria compartida para intercambiar información entre ellos. En cambio, en el procesamiento distribuido, cada procesador tiene memoria privada (memoria distribuida). Los procesadores usan el paso de mensajes para intercambiar información.
¿Qué es la computación en malla?
En la computación en malla, las redes de computación distribuidas geográficamente trabajan juntas para realizar tareas comunes. Una característica de las mallas distribuidas es que se pueden formar a partir de recursos informáticos que pertenecen a varios individuos u organizaciones.
Computación en malla vs. computación distribuida
La computación en malla es una computación distribuida a gran escala que hace hincapié en el rendimiento y la coordinación entre varias redes. Internamente, cada malla actúa como un sistema de computación de acoplamiento ajustado. Sin embargo, externamente, las mallas están acopladas de forma más suelta. Cada red de mallas realiza funciones individuales y comunica los resultados a otras mallas.
¿Qué es la computación de alto rendimiento de AWS?
Con AWS High-Performance Computing (HPC), puede acelerar la innovación con una red rápida y una infraestructura de computación distribuida prácticamente ilimitada. Por ejemplo, puede usar estos servicios:
- Amazon Elastic Cloud Compute (EC2) para soportar prácticamente cualquier carga de trabajo con una capacidad de computación segura y redimensionable.
- AWS Batch para escalar cientos de miles de trabajos de computación en los servicios de computación de AWS.
- AWS ParallelCluster para crear rápidamente entornos de computación HPC y clústeres HPC.
Comience con la computación distribuida en AWS creando una cuenta gratuita hoy mismo.
Pasos siguientes de la computación distribuida en AWS
Obtenga acceso inmediato al nivel Gratuito de AWS.
Comience a crear en la consola de administración de AWS.