Fog computing

El Internet de las cosas (IoT) está cambiando el paisaje tecnológico a lo largo y ancho del mundo y es considerado una tecnología clave en muchos proyectos futuros. Sin embargo, la arquitectura clásica de IoT, en la que los datos se cotejan y procesan de forma centralizada, no puede ampliarse infinitamente debido, entre otras cosas, a las limitaciones del ancho de banda. El fog computing (también llamado computación en la niebla o fogging) propone posibles soluciones a la problemática que acompaña a la implantación total de la IoT.

¿Qué es el fog computing? Una definición

Fog computing es el nombre de una tecnología cloud por la cual los datos que generan los dispositivos no se cargan directamente en la nube, sino que se preparan primero en centros de datos descentralizados más pequeños (conocidos como nodos Fog). El concepto engloba a una red que se extiende desde sus propios límites, que es donde los terminales generan los datos, hasta el destino central de los datos en la nube pública o en un centro de datos privado (nube privada).

El objetivo del fog computing es acortar las vías de comunicación entre la nube y los dispositivos y reducir el caudal de datos en redes externas. Los nodos cumplirían así un papel de capa intermedia en la red en la que se decide qué datos se procesan localmente y cuáles se envían a la nube o a un centro de datos para ser analizados o procesados.

El gráfico siguiente presenta esquemáticamente las tres capas (layer) de una infraestructura de computación en la niebla:

Representación esquemática de una infraestructura IoT con las capas edge, fog y cloud
En el fog computing los recursos para el almacenamiento y la preparación de los datos abandonan la nube pública o el centro de datos y se distribuyen en una capa intermedia en la red por medio de nodos fog o unidades de preprocesamiento.
  • Edge layer: la capa del borde comprende a todos los dispositivos inteligentes (dispositivos en el borde de la red) de una arquitectura de IoT. Los datos que se generan en esta capa se procesan en el mismo terminal o se envían a un servidor (nodo fog) en la capa niebla.
  • Fog layer: la capa en la niebla está compuesta por una serie de servidores de gran rendimiento que reciben los datos de la primera capa, los preparan y los envían a la nube si es menester.
  • Cloud layer: la capa en la nube constituye el punto final de una arquitectura de fog computing.

Se ha desarrollado una arquitectura de referencia para sistemas de fog computing como parte del OpenFog Consortium (ahora Industry IoT Consortium (IIC)). En la página web del IIC se puede acceder a otros White Papers.

Diferencias con la computación en la nube

El fog computing se diferencia de la tecnología cloud, sobre todo, por el lugar donde se accede a los recursos y se procesan los datos. La computación en la nube suele basarse en centros de datos centralizados. Aquí, los servidores en el backend son los que suministran recursos como la potencia de procesamiento y la memoria, que utilizan los clientes a través de la red. La comunicación tiene lugar entre dos o más terminales siempre mediante un servidor en un segundo plano.

Con conceptos como el de la fábrica inteligente, esta arquitectura topa con sus limitaciones, puesto que en ella hay un gran número de dispositivos que están intercambiando datos constantemente. Apoyándose en el procesamiento de los datos cerca de la fuente, el fog computing logra reducir el tráfico de datos.

Diferencias con la computación en el borde de la red

Pero la computación en la nube no solo se ve saturada por el tráfico de datos que generan las grandes infraestructuras de IoT, sino también por la latencia, porque el procesamiento centralizado de los datos implica depender de las rutas de transferencia y esto ocasiona siempre cierto desfase. Los dispositivos y los sensores han de estar siempre en contacto con el servidor en el centro de datos para poder comunicarse y esperar tanto el tratamiento externo de la petición como la propia respuesta, de modo que este tiempo de latencia se convierte en un problema en procesos de fabricación apoyados en IoT que necesitan el procesamiento inmediato de la información para que las máquinas puedan reaccionar inmediatamente a cualquier incidente.

El edge computing propone una posible solución a este problema. Según este concepto, los datos no solo se procesan descentralizados, sino en el mismo dispositivo y por eso al “borde” de la red. Para ello es necesario equipar a cada aparato inteligente con un microcontrolador propio que permita procesar los datos, pero también comunicarse con otros aparatos y sensores en el Internet de las cosas.

Aunque el fog computing y el edge computing tienen muchos puntos en común, no son lo mismo. La diferencia clave reside en el lugar y el momento en el que se procesan los datos. En el edge computing, los datos generados se procesan directamente en la fuente y suelen enviarse directamente. En cambio, en el fog computing, los datos brutos procedentes de varias fuentes se recogen y procesan en un centro de datos intermedio. De esta forma, se evita que lleguen datos o resultados irrelevantes al centro de datos central. Dependiendo del ámbito de aplicación, será mejor optar por el fog computing o el edge computing.

Ventajas del fog computing

El fog computing propone soluciones para diversos problemas propios de las infraestructuras de TI basadas en la nube. A primera vista son conceptos que prometen acortar las vías de transferencia y limitan la carga en la nube a un mínimo. Aquí se presentan las principales ventajas:

  1. Menos tráfico: la computación en la nube reduce el tráfico entre los dispositivos IoT y la nube.
  2. Ahorro de costes en el uso de redes externas: la velocidad de carga en la nube es un servicio que los operadores de red no regalan, pero que puede ahorrarse con el fog computing.
  3. Disponibilidad offline: los dispositivos de IoT en una arquitectura de fog computing también están disponibles offline.
  4. Menor latencia: el fog computing acorta las vías de comunicación, acelerando así los procesos automatizados de análisis y decisión.
  5. Seguridad de los datos: en el fogging, el preprocesamiento de los datos tiene lugar en la red local. Esto permite que los datos sensibles permanezcan en la empresa o que puedan cifrarse o anonimizarse antes de subirlos a la nube.

Desventajas del fog computing

Sin embargo, el procesamiento descentralizado en minicentros de datos también presenta desventajas. Estas se derivan principalmente del esfuerzo necesario para mantener y administrar un sistema distribuido. Las desventajas del fog computing son:

  1. Costes superiores de hardware: para que los datos puedan procesarse localmente y los aparatos comunicarse entre sí ha de añadirse una unidad adicional de procesamiento a los dispositivos IoT.
  2. Escasa protección ante caídas o abusos: las empresas que apuestan por el fog computing han de equipar a los aparatos IoT y a los sensores con controladores difíciles de proteger en el borde de la red (en una planta industrial, p. ej.).
  3. Necesidad creciente de mantenimiento: el procesamiento descentralizado de los datos va ligado a un esfuerzo mayor de mantenimiento, porque los controladores y la memoria están distribuidos por toda la red y, a diferencia de las soluciones en la nube, no pueden administrarse o mantenerse centralmente.
  4. Mayores requisitos a la seguridad de red: la computación en la nube es vulnerable a ataques man in the middle.