El Internet de las Cosas está creciendo a pasos agigantados. Cada vez son más las empresas que se sumergen en esta tecnología y plantean y llevan a cabo proyectos que requieren despliegues IoT. Esto supone un crecimiento exponencial del número de dispositivos que cuentan con conexión a Internet, hasta tal punto que se calcula que para el 2024 serán 4 billones los dispositivos conectados únicamente en entornos IoT.
La enorme dimensión de esta cifra amenaza a las arquitecturas cloud tradicionales en términos de latencia, consumo de ancho de banda y congestión en la red. Las nuevas tecnologías requieren, además, tiempos de respuesta cada vez más cortos, sobre todo aquellas relacionadas con la realidad virtual y realidad aumentada.
Un ejemplo claro de un tipo de proyecto IoT donde el tiempo de respuesta es crítico es el coche autónomo. ¿Tiene sentido que toda la información monitorizada y analizada por un coche autónomo pase por la nube para luego regresar al coche en forma de una respuesta a las condiciones del entorno?
Es por ello que el Edge Computing puede tomar un papel importante en esta ecuación. A grandes rasgos, esta tecnología pretende acercar la capacidad de cómputo a los dispositivos, preprocesando los millones de datos que generan los sensores para, posteriormente, enviar a la nube una cantidad reducida de los mismos, en caso de ser necesario. Esto se traduce en, por ejemplo, que sea un dispositivo dentro del propio coche autónomo, el encargado de analizar toda la información recibida por los sensores y tomar una decisión.
Por poner otro ejemplo sencillo: imaginemos una smarthome. En esta casa se han desplegado, entre otro tipo de sensores, unos cuantos que monitorizan la temperatura cada diez minutos. A lo largo de un día, cada uno de estos sensores capturan 144 valores. Y si hay un sensor por habitación, al día pueden generar 720 valores –suponiendo cinco sensores a lo largo de toda la casa-. Actualmente, esos 720 valores son llevados a la nube. Ahora, multipliquemos esos 720 valores por cada casa conectada. Vemos entonces que es una cifra desorbitada, y que además supone una parte muy pequeña de la totalidad de datos que pueden generarse diariamente en despliegues IoT.
El Edge Computing pretende reducir esa cifra. Para ello, actúa como frontera o borde entre los sensores y los sistemas cloud. En este dispositivo de borde, lo que se realiza es un cómputo que reduce el número de datos enviados, pues no envía todos los datos registrados sino los resultados del propio análisis realizado sobre los mismos.
En una casa conectada, el dispositivo de borde se encargaría de realizar algún cálculo estadístico sobre estos datos. Por ejemplo, la media de temperatura diaria de la casa, las temperaturas máximas y mínimas registradas y algún modelo predictivo para futuros cálculos. Así vemos que hemos reducido drásticamente la cantidad de información enviada a la nube.
A continuación, se va a introducir una pequeña aproximación al Edge Computing a través de un servicio de virtualización ligero, Docker, ejecutado en un ordenador de bajas prestaciones.
Docker sobre un Single Board Computer
Uno de los puntos clave de un dispositivo de borde ha de ser, al igual que sucede con los sensores, que sea de bajo consumo. Al final, este dispositivo va a estar conectado las 24 horas del día, por lo que para ciertos entornos es inviable contar con un ordenador convencional para cumplir esta tarea.
Ahí entran en juego los Single Board Computers (SBC). Son ordenadores de bajo coste y de tamaño reducido; por tanto, tienen unas prestaciones reducidas, entre ellas, la capacidad de cómputo. Sin embargo, cuentan con una ventaja muy importante: su consumo también es muy bajo. Por tanto, sí es viable tener un dispositivo de estas características funcionando a tiempo completo, en términos de costes energéticos y económicos.
Sus limitaciones han de tenerse en cuenta a la hora de desplegar servicios dentro de ellos. Si se quiere desplegar más de un servicio, ha de hacerse de tal manera que no sobrecarguen las capacidades del sistema. Docker se convierte en una solución ideal para estos escenarios, pues se trata de una plataforma que contaneriza los servicios y los despliega y ejecuta aisladamente, aun compartiendo por debajo los recursos del ordenador.
Esto supone dos ventajas:
- Por un lado, estos programas son independientes, por lo que en caso de que uno falle, el resto no se ve afectado.
- Por otro lado, por cómo está desarrollada la plataforma, el consumo de los recursos del ordenador es menor a, por ejemplo, desplegar un servicio a través de una máquina virtual. Esto se debe a que Docker hace uso del kernel del sistema para ejecutar cada contenedor, mientras que una máquina virtual virtualiza, para cada instancia, su propio kernel.
Una vez más, de vuelta al ejemplo de las casas conectadas, con esta solución tendríamos los sensores conectados a nuestro SBC, por ejemplo, una Raspberry Pi. En este ordenador de bajas prestaciones, gracias a Docker, tenemos desplegados varios servicios: uno que sirva de gateway para los sensores, para manejarlos y llevar a cabo tareas de provisioning; otro para leer estos datos y virtualizar una librería de análisis de datos como, por ejemplo, TensorFlow; y otro que sirva como gateway para conectar con la nube y enviar los datos ya procesados.
En conclusión, hay que destacar que el Edge Computing no trata de sustituir las arquitecturas cloud, sino que ha nacido para complementarse con estas. Es un campo todavía por explotar, por lo que la solución expuesta es una de las muchas que, actualmente, están siendo desarrolladas y probadas por los investigadores.
Sí cabe destacar que serán de gran utilidad las ventajas que ofrece, y que se postula como una de las tecnologías del futuro.
Artículo redactado por Francisco Javier Pacheco
Deja una respuesta
Lo siento, debes estar conectado para publicar un comentario.