Openfog, la arquitectura de referencia para el Fog Computing

Openfog-logo(tiempo de lectura estimado: 20 min)

¿Qué es Openfog?

Openfog es un consorcio fundado por ARM, Dell, Microsoft, Cisco, Intel y el Laboratorio de Edge Computing de la Universidad de Princeton en noviembre de 2015.

Su principal objetivo es la definición de una arquitectura de referencia para el despliegue de redes de Fog Computing, que servirán de intermediación entre las redes de sensores y las aplicaciones en la nube.

Openfog además promueve la colaboración entre otras asociaciones como pueden ser: Industrial Internet Consortium (IIC), Mobile Edge Computing (ETSI-MEC), Open Connectivity Consortium (OCC), OpNFV (Network Function Virtualization), etc

En este artículo te presento la traducción y resumen del documento “Openfog Architecture Overview”, donde se hace una introducción a la filosofía de diseño de Openfog y se da una introducción a sus principales características de diseño.

La decisión de presentarte Openfog la he tomado tras el anuncio de IEEE de adoptarla como estándar para el desarrollo de Fog Computing, el estándar IEEE 1934-2018.

 

¿Qué es fog computing?

Actualmente el enfoque que se está dando al IoT está basado en aplicaciones Cloud-only, es decir, que funcionan completamente en la nube. Este diseño, que puede venir bien en algunas ocasiones, no siempre es el idóneo pues tiene importantes contrapartidas. Por ejemplo la latencia de la red y limitaciones de conectividad y volumen de datos que pueden impedir el avance del IoT y su implantación.

Una forma de solucionarlo es llevar parte de la inteligencia (computación, tratamiento de datos y toma de decisiones) a un lugar más cercano del sitio donde se produce el dato.

A esta técnica se le llama Fog Computing.

La arquitectura Openfog propone un sistema estándar y abierto cuyas funcionalidades sean el tratamiento de datos y toma de decisiones, extendiendo las capacidades del Cloud Computing hacia lugares más cercanos a los dispositivos, y complementándose con las aplicaciones que están en la nube.

Es importante reseñar el carácter de abierto y estándar, pues las soluciones cerradas y propietarias impiden la adopción de estas tecnologías en el mercado, limitan el número y tipo de dispositivos y tienen un impacto en coste, innovación y calidad.

La premisa principal del Consorcio Openfog es que una arquitectura abierta es esencial para el éxito de ecosistemas y aplicaciones IoT distribuidas.

En Openfog se lleva la capacidad de computación más cerca de donde están los dispositivos o incluso a la misma red de sensores, adaptándose según las necesidades de la aplicación y el momento.

Los nodos Fog deben ser vistos como un sistema fluido de conectividad, donde las aplicaciones y funcionalidades pueden ser implementadas en distintas capas del mismo.

Visión general

Como norma general los procesos cyber-físicos (CPP, o cyber-physical processes) se caracterizan por tres tipos de parámetros:

  • Los que definen el estado deseado
  • Los datos observados
  • Parámetros que pueden cambiar el estado del proceso

Estos procesos se pueden desplegar en una red que de continuidad entre el Cloud y los dispositivos físicos.

Las capas de computación en IoT podríamos clasificarlas de las siguiente forma:

  • Control de regulación, que asegura que el proceso esté cercano al estado deseado
  • Control de supervisión, que segura que el estado deseado ha sido optimizado usando experiencias y datos tanto actuales como anteriores.
  • Soporte a la decisión, encargada del procesado de datos, extracción de conocimiento y entrega del mismo al resto de capas o a otros sistemas empresariales, que podrán realizar la toma de decisiones estratégicas.

Las dos primeras capas tienen alcances muy locales y restringidos, mientras que la tercera tiene un alcance más transversal y a escala mayor.

La decisión de dónde colocar la capa de computación de datos debe tomarse en función de la latencia soportada entre que se recolectan los datos del CPP y llegan las instrucciones de actuación.

La arquitectura OpenFog

Como te decía antes Openfog propone convertirse en una extensión de la nube, acercando muchas de las características de ésta al entorno cercano de los dispositivos. Entre sus objetivos están:

  • Incluir un almacenamiento de baja latencia cercano a los usuarios finales
  • Realizar cálculos computacionales cerca de donde están los usuarios y los datos, para evitar aumentos de latencias y usos de anchos de banda.
  • Igualmente bajar la latencia de las comunicaciones entre dispositivos, evitando tener que pasar por la nube para ello.
  • Implementar elementos de control cerca de los dispositivos y usuarios finales, tales como monitorización de la red, configuración y control de uso.
  • Permitir que la telemetría y resultados de analíticas realizadas a nivel local se puedan subir a la nube de forma segura para realizar una agregación y explotado posterior de dichos datos.

Una estructura Openfog tiene como función principal distribuir los recursos y servicios de computación, comunicaciones, almacenamiento  control entre los dispositivos, sistemas y nube, independientemente de cuánto recae en la propia estructura OpenFog y cuánto en la nube, o de si su implementación es puramente hardware, software o una mezcla de ambos.

Por lo tanto no hay una decisión binaria entre si implementar una determinada aplicación en la nube o en el Fog, pues existe una continuidad en ambas plataformas. Es más, definir qué es Cloud y qué es Fog es algo dependiente de la aplicación concreta de que hablemos.

También se trata de un despliegue dinámico, pudiendo tener más carga en la nube o en el Fog dependiendo del estado de la red, de la aplicación, de los datos, eventos de seguridad, etc.

Siguiendo con las similitudes y diferencias del Fog con respecto a la nube, podemos ver en la nube servicios del tipo PaaS (Platform as a Service) o SaaS (Software as a Service). Una de las posibilidades que ofrece OpenFog es FaaS (Fog as a Service) para poder cubrir ciertos tipos de aplicaciones donde no tendrían sentido que desplegaran sus propias plataformas para Fog Computing.

Las ventajas más especiales de OpenFog se pueden enumerar con las siglas CEAL:

  • Conocimiento sobre los objetivos centrados en los clientes para facilitar su autonomía
  • Eficiencia, mediante el uso distribuido de los recursos disponibles
  • Agilidad para el rápido escalado con costes asequibles gracias a la infraestructura compartida
  • Latencia mínima, necesaria para los sistemas cyber-físicos y el procesamiento en tiempo real.

Elementos de la infraestructura OpenFog

Arquitectura fog computing
Arquitectura fog computing

La estructura de Openfog está compuesta por bloques cuya función es ofrecer un entorno computacionalmente homogéneo donde desplegar los servicios necesarios para los elementos del ecosistema circundante (nodos, pasarelas de protocolos, etc). Esta estructura homogénea, sin embargo, puede estar soportada por un entorno hardware heterogéneo y de distintos fabricantes.

Los servicios de Openfog usan el paradigma de los micro-servicios, implementados sobre la estructura Openfog anterior, para dar todo tipo de funcionalidades: aceleradores de red, SDN, NFV, distribución de contenidos, gestión de dispositivos, topología, procesado de eventos, codificación de vídeo, pasarelas de protocolos, criptografía, compresión de datos, analítica, algoritmos de análisis de datos, etc.

Los dispositivos y aplicaciones finales son los sensores, actuadores y aplicaciones independientes pertenecientes a una estructura fog o extendida en varias de ellas.

Los servicios en la nube usarán los datos pre-procesados por los servicios OpenFog para establecer políticas de funcionamiento y hacer análisis a mayor escala. Esta dependencia debe estar diseñada de tal manera que no impida la autonomía operacional.

La seguridad es primordial en la arquitectura OpenFog. En cada capa se implementan medidas concretas de autenticación y acceso de tal manera que tanto la estructura OpenFog como sus ecosistema funcionen de la manera más segura posible. Además se debe asegurar que la transferencia de información entre todos los componentes se hace cumpliendo todas las medidas de seguridad técnicamente posibles en el momento.

El componente DevOps en OpenFog hace referencia a los mecanismos de automatización que se llevan a cabo para el despliegue, configuración y parcheado de aplicaciones y servicios, en un entorno de integración continua.

Los ocho pilares de OpenFog

Sin duda uno de los aspectos que Openfog promulga de forma más profusa son los 8 pilares en los que se sustenta su propuesta de arquitectura.

Los famosos ocho pilares de la arquitectura OpenFog son los siguientes:

  1. Seguridad: confianza, confirmación y privacidad.
  2. Escalabilidad: en el control y gestión, en la orquestación y analítica, evitar peajes de redes.
  3. Abierto: visibilidad de recursos, toma de decisiones abierta, normalización de datos.
  4. Autonomía: flexibilidad, conocimiento y agilidad flexibles, importancia de los datos.
  5. RAS (Reliability, Availability, Serviceability) = (Fiabilidad, disponibilidad, utilidad)
  6. Agilidad: en la toma de decisiones tácticas y estratégicas, sabiduría a partir de los datos.
  7. Jerarquía: Interacción con la nube, jerarquía de computación y sistemas, autonomía en cada nivel.
  8. Programable: programación del hardware y el software, virtualización y multicliente, fluidez de aplicaciones.
openfog-pillars
Pilares de la arquitectura Openfog

Seguridad

Sin duda es uno de los puntos más controvertidos y que más preocupación causa en la tecnología denominada Internet de las Cosas o IoT, de sus siglas en inglés.

Especialmente teniendo en cuenta que un despliegue en Openfog puede vivir en un hardware local, migrar a otras redes, estar compueto de solo software o convivir en un entorno de multipropietarios.

Por ello es conveniente ver los nodos de Openfog como los componentes de un servicio FaaS (Fog as a Service).

La seguridad no siempre reside en los confines de un datacenter concreto, los datos están distribuidos y la seguridad basada en la nube no es aplicable en estos entornos.

El punto principal del pilar de la Seguridad es la definición de la raíz de confianza basada en el hardware. Las “cosas” deben implementar una “raíz de confianza basada en el hardware” (hardware-based root of trust o HW RoT), que deben ser posteriormente inventariadas y autenticadas por los agentes software y ponerlo a disposición del resto de la infraestructura.

Dado que los nodos del fog son los primeros elementos con los que se comunicarán los dispositivos, son estos los que deben cuidar del control de acceso, teniendo el cuenta el contexto y el aislamiento, además de permitir la agregación de datos manteniendo la privacidad de los mismos.

Esta cadena de confianza debe ser difundida en toda la infraestructura para permitir al resto de nodos y componentes continuar trabajando con dicho dispositivo en momento posteriores o en capas superiores.

Por lo tanto los dispositivos que no puedan ser autenticados de esta forma no deben tener acceso al resto de la infraestructura o al menos no de una forma confiable.

Los atributos principales de este pilar de seguridad son: privacidad, anonimato, integridad, autenticidad, Hw RoT, verificación y medición.

Esta visión de la seguridad debe estar presente en todos los niveles de Openfog, cuidando especialmente la privacidad de los datos y la comprobación previa de la autenticidad de cualquier dispositivo.

Enlazando con el tema de seguridad en una red tipo fog, puede que te interese el modelo SmartFog, sistema inteligente basado en el funcionamiento del cerebro.

Escalabilidad

Dado que Openfog aspira a ser una plataforma abierta y versátil, la escalabilidad de la misma es fundamental para poder dar servicio a proyectos de toda índole, pequeños, medianos y grandes, y se convierte todavía en un pilar más importante cuando hablamos de Fog as a Service (FaaS).

En estos entornos elásticos, imitando al comportamiento del Cloud, también los recursos de almacenamiento, conectividad y computación han de ser escalables, tanto hacia arriba como hacia abajo.

Los aspectos que se consideran deben ser escalables son los siguientes:

  • Rendimiento, de manera que se de un tiempo de respuesta adecuado a las aplicaciones que en ciertos momentos requieran tiempos de respuesta muy ajustados.
  • Capacidad, para dar cabida al número de objetos y dispositivos (“cosas”) que vayan conectándose a cada momento.
  • Usabilidad. Las distintas funciones que provee Openfog deben estar pensadas para no tener caídas de servicio, ni por fallos y por sobrecargas. Este punto es parte del pilar RAS (Reliability, availability and serviceability).
  • Seguridad. La seguridad debe escalar y adaptarse con el tiempo, y ser un elemento común en todas las capas de Openfog, sin que ello suponga una merma en la capacidad de la red o en sus tiempos de respuesta.
  • Software y administración. Los desarrollos para Openfog deben estar pensados desde el principio para funcionar con una infraestructura dinámica, tanto en el despliegue de software como en la gestión y administración.

Abierto

La arquitectura Openfog no podrá conseguir sus objetivos si no funciona con estándares abiertos. El pilar de “Seguridad” no puede alojar plataformas cerradas, cuya seguridad se basa en la ocultación de la tecnología, y al mismo tiempo mantener los niveles de privacidad y autenticidad descritos.

Además las tecnologías cerradas limitarán la capacidad de innovación tecnológica, pueden acarrear costes extra y no permitirán un entorno elástico y adaptable.

Los principales puntos de apoyo de este pilar son:

  • Modularidad, para facilitar la portabilidad y fluidez de aplicaciones y recursos.
  • Interoperabilidad, que permita el autodescubrimiento de recursos de computación, almacenamiento y conectividad en tiempo real.
  • Datos abiertos, en el sentido de ofrecer las características y recursos de cada dispositivo y nodo para ser aprovechadas por la arquitectura completa.
  • Ubicación de las instancias, con la idea de que se permita que cada nodo pueda existir en cualquier lugar de la infraestructura.

La palabra “Open” en “OpenFog” hace justo referencia a esta capacidad que se le exige a la red de permitir el autodescubrimiento de recursos y servicios, la interoperabilidad de todo el ecosistema y la portabilidad y migración de aplicaciones y nodos.

Autonomía

El pilar de autonomía nos habla de la resiliencia que debe tener la arquitectura Openfog aunque los servicios externos dejen de estar disponibles por algún motivo.

En la propia infraestructura y en los dispositivos debe existir cierto nivel de inteligencia y capacidad de toma de decisiones en los momentos donde estos servicios no son alcanzables.

Las siguientes funciones deben ser autónomas y por lo tanto debe seguir estando presentes aunque sus correspondientes en la nube ya no lo estén:

  • Autonomía de descubrimiento de servicios y recursos y registro de los mismos.
  • Autonomía en la orquestación y gestión de los servicios, posibilitando su activación y administración.
  • Autonomía de la seguridad, una de las más críticas en OpenFog. Las principales funciones AAA (Authentication, authorization and accounting) deben funcionar de manera autónoma, permitiendo que los dispositivos se autentiquen contra los servicios de seguridad.
  • Autonomía de operación, incluyendo la toma de decisiones de forma local, para que el sistema siga funcionando y cumpliendo su misión. Para realizar la toma de decisiones será necesario por lo tanto realizar una analítica de datos también de forma local, cumpliendo la jerarquía del conocimiento DIKW.

Programabilidad

Sin duda uno de los aspectos más llamativos es la adaptabilidad de la infraestructura OpenFog, la capacidad para modificar las tareas concretas de un nodo o de una capa completa de nodos, distribuyendo nuevos servicios y aplicaciones de forma dinámica.

Estos cambios en las tareas pueden ser llevados a cabo usando las interfaces de programación de los nodos o bien desde capas superiores.

Los distintos escenarios de despliegue deberán usar los estándares, tecnologías, APIs, frameworks y contenedores, para que las soluciones específicas estén formadas por los componentes propuestos en la arquitectura Openfog.

Esta característica de programabilidad tiene los siguientes beneficios:

  • Infraestructura adaptativa, que permite que el sistema se adapte a nuevos requerimientos de negocio
  • Eficiencia en el uso de recursos, mediante el despliegue de los mismos usando contenedores.
  • Multi-cliente, en el sentido de que en una misma infraestructura pueden convivir de forma lógicamente aislada distintos usuarios y aplicaciones con necesidades dispares.
  • Seguridad mejorada, pues se facilita la aplicación de parches y la adaptación a nuevas amenazas.

RAS (Reliability, availability and serviceability) (Fiabilidad, disponibilidad y utilidad)

Este pilar RAS debe estar presente tanto en el hardware, el software y la red. Con el cumplimiento de este pilar se asegura que el sistema seguirá dando servicio ante los eventos adversos que puedan ocurrir.

Algunas de las características de la fiabilidad son:

  • Dedicada a mantener la “salud” del sistema, cuya eficiencia podría medirse con el “uptime” o tiempo que lleva sin paradas.
  • Salvaguarda la disponibilidad de datos y computación en los nodos, haciendo uso de software y hardware de calidad para alcanzar los niveles de rendimientos deseados.
  • Capacidades de auto reparación y predicción de fallos.

La disponibilidad está orientada al cumplimiento de las necesidades de negocio, usando para ello la orquestación y administración contínua. Las principales características son:

  • Acceso seguro en cualquiera de los niveles de la jerarquía a las funciones de orquestación, administración y control, incluyendo las funciones de actualizaciones, diagnóstico y modificaciones de firmware.
  • También se ocupa de que haya dispositivos, servicios y datos redundantes en la capa final de usuarios.
  • Capacidad de controlar todos los aspectos del hardware donde están ubicados los nodos y el sistema Openfog, incluyendo control de los arranques remotos, BIOS y sistemas operativos.

La utilidad asegura que el funcionamiento es correcto y es el esperado por la aplicación. Algunas de sus funciones son:

  • Gran automatización de despliegues, actualizaciones y reparaciones.
  • Para asegurar esta utilidad se debe considerar cómo será el soporte sobre el hardware y software utilizados en el despliegue. En algunos aspectos el sistema podrá ser autoreparado y en otras ocasiones hará falta un servicio de soporte externo.
  • Además se debe tener en cuenta la usabilidad del sistema respecto del punto de vista del mantenimiento de la infraestructura.

El pilar RAS adquiere especial importancia en los ambientes extremos donde se requiera el despliegue de fog computing.

Agilidad

La agilidad en Openfog permitirá tomar decisiones de negocio de una manera rápida y fiable.

Uno de los aspectos importantes en IoT es la recopilación de datos, extraídos desde los sensores y dispositivos, para poder realizar distintos tratamientos y análisis sobre los mismos y convertirlos en conocimiento y decisiones. La ingente cantidad de datos que se van a recopilar desde la red de sensores hace esta tarea imposible para los humanos, y la capa de Openfog vendrá a aliviar a las capas más altas en la nube de un posible cuello de botella, permitiendo que ese conocimiento se genere lo más rápidamente posible.

Más aún, no solo la cantidad de datos puede ser un problema, también lo será que estos datos estarán fuera de contexto. La infraestructura Openfog será quien realice la primera agregación de datos para dotarlos de un contexto, y por lo tanto de un sentido.

Se persigue que las decisiones sobre las operaciones se realicen lo más pronto posible tras la llegada del dato.

Las decisiones estratégicas de más largo alcance se seguirán haciendo en la nube, pero las que tengan que afectar a las operaciones deben hacerse en una capa lo más cercana posible a los dispositivos.

Los negocios persiguen justo eso, cómo extraer información de los datos para convertirla en el conocimiento necesario para tomar decisiones a corto y a largo plazo. Este pilar de agilidad les proporcionará nuevos niveles de conocimiento y de rapidez en sus reacciones.

Jerarquía

No cabe duda que para que esta arquitectura funcione debe existir una jerarquía y separación entre las distintas capas. Pero Openfog no obliga a que esta sea fija, tal como se desprende del pilar de la escalabilidad.

Una infraestructura Openfog puede estar formada tan solo un edificio, un campus de varios edificios o una ciudad completa, todo depende de la aplicación en cuestión y del caso de negocio que se quiere resolver.

Se espera que la mayor parte de los sistemas sean una mezcla de fog y cloud, y muy pocos sean puramente fog o solo cloud.

Análogamente a los servicios ofrecidos por la nube (IaaS, PaaS y SaaS) para dar flexibilidad y escalabilidad, la arquitectura Openfog propone FaaS (Fog as a service).

Esta propuesta permitirá tener distintas instancias de Fog funcionando al mismo tiempo, de forma cooperativa donde sea necesario y con autonomía como para poder seguir online en caso de desconexión entre ellas o con los servicios en la nube.

Resumen

Openfog se presenta como la evolución de los sistemas cerrados tradicionales y los florecientes modelos basados solo en la nube, proponiendo llevar capacidades de computación hacia el borde de la red, la parte más cercana a los dispositivos que usan los servicios.

Puede ser desplegado usando un backend en la nube que sirva para realizar las tareas de computación más complejas, aporte una inteligencia mayor o una toma de decisiones estratégicas.

El consorcio Openfog fue fundado con la premisa de basarse en arquitecturas abiertas y estándares que son fundamentales para un ecosistema fog distribuido.

Esta arquitectura Openfog, aún en desarrollo, tendrá como resultado un sistema completamente abierto, interoperable, que admitirá los diferentes fabricantes y permitirá la evolución e innovación de una forma ágil.

El Consorcio Openfog está centrado en el desarrollo continuo de la Arquitectura de Referencia Openfog que está soportada por los pilares descritos en este documento.

La arquitectura será puesta a prueba convenientemente para ver cómo se comporta el modelo de sistema propuesto y cómo encaja con las soluciones multifabricantes que cumplan con estos pilares.

La intención es continuar la relación con las universidades y la industria para acelerar la aparición de oportunidades de negocio en este nuevo paradigma de computación llamado “fog computing”


Espero sinceramente que hayas disfrutado de esta novedosa propuesta, como siempre estás invitado a suscribirte al blog (te llegarán solo correos cuando haya nuevas entradas o alguna noticia importante) y que participes en los comentarios.

Si quieres ver otros modelos y propuestas de arquitecturas IoT visita la sección del blog «Arquitecturas IoT».

Deja un comentario

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

RSS
Youtube
Youtube