22
Diseño e implementación de una microCloud abierta para IoT Alta disponibilidad para el hogar y redes comunitarias Autor: Jose Elias Rael Gutierrez Consultor: Félix Freitag Junio 2018 Área de Sistemas Distribuidos TFG de Ingeniería Informática

Diseño e implementación de una microCloud abierta …openaccess.uoc.edu/webapps/o2/bitstream/10609/81128/9...UOC, Universitat Oberta de Catalunya,internet de les coses, internet

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Diseño e implementación de una microCloud abierta para IoT

Alta disponibilidad para el hogar y redes comunitarias

Autor: Jose Elias Rael Gutierrez Consultor: Félix Freitag Junio 2018 Área de Sistemas Distribuidos TFG de Ingeniería Informática

Stack IoT

IoT World Forum Reference Model

Cloud (Proveedor)

Edge

LAN (Usuario)

Soluciones existentes

On premise (Vera) vs Cloud (Itead)

Cons: • Entorno Cerrado por el fabricante • Funcionalidad limitada

Pros: • Independiente del Proveedor • Entorno Seguro al ser local

Cons: • Dependiente del fabricante • Dependiente de Internet • Entorno inseguro (contraseñas en Cloud)

Pros: • Bajo coste al no tener servidor en LAN • Sencillo, solo dispositivos

Cloud (Proveedor)

Edge

LAN (Usuario)

Nuestra solución microCloud Abierta + Nodos IoT reprogramados

• Solución generalista y abierta • microCloud programable, escalable y extensible • Nodos IoT se comunican nativamente con la microCloud • Independiente de Proveedor o Fabricante • Sin limite de hardware o de software

Cloud (Proveedor)

Edge

LAN + microCloud (Usuario)

Nuestra solución microCloud Abierta

MQTT Node-Red

Raspberry Raspbian+Cloudy+Docker

• Raspberry pi: hardware abierto

• Cloudy: S.O. para redes comunitarias

• Docker: Gestión de contenedores

• Mosquitto: Broker de mensajes MQTT

• Node-Red: Programación de flujos

• Sonoffs: Dispositivos Cliente MQTT

• MQTT-Dash: Interfaz de usuario MQTT

Nuestra solución microCloud Abierta

Nuestra solución microCloud Abierta

Implementación microCloud

Sin alta disponibilidad: Docker

SmartHome1

Aplicaciones Mosquitto y Node-Red

Gestor de contenedores Docker

Sistema operativo Cloudy

Hardware Raspberry pi 3

Implementación microCloud

Alta disponibilidad: Docker + Keepalived

SmartHome1 SmartHome2

Aplicaciones Mosquitto y Node-Red

Gestor de contenedores Docker

Sistema operativo Cloudy

Hardware Raspberry pi 3

IP Failover keepalived

Implementación microCloud Alta disponibilidad: Docker + Swarm + Keepalived + Syncthing

IP Failover

Aplicaciones

Mosquitto y Node-Red

Gestor de contenedores

Docker

Sistema operativo

Cloudy

Hardware

Raspberry pi 3

SmartHome1 SmartHome2

Orquestación

Docker Swarm

SmartHome2

Replicación de configuración Syncthing

Keepalived

Implementación microCloud Alta disponibilidad

Balanceo Interno con Docker Swarm:

IP Failover con Keepalived :

Replicación de la configuración con Syncthing: En cada nodo hay una copia de la configuración actualizada

Reconciliación de estado con Docker Swarm:

Svc Svc

Svc Svc

Svc Svc

Svc

Svc

Svc

Svc

Extensión microCloud Añadir nodos externos con TincVPN

Managers

Worker Worker

Extensión microCloud Programación distribuida con MQTT + Node-Red

microCloud 1

microCloud2 microCloud3

MQTT

DNR-Editor

Características microCloud Servicios portables y preconfigurados (Docker)

Svc Svc Svc

Prueba

Svc Svc

Svc

Producción

Svc Svc

Svc

Fichero yaml

Características microCloud Despliegue de Sistemas complejos (Swarm)

Svc Svc

Fichero yaml

Nodo 1 Nodo 2 Nodo 3

global 7 replicas

Svc Svc Svc Svc Svc Svc Svc Svc Svc

Svc Svc

Svc

Características microCloud Integración con múltiples protocolos (Node-Red)

microCloud

Aplicaciones avanzadas Monitorización, Analitica y Dashboards con TIG

Telegraf: Recogida de datos

InfluxDB: Base de Datos de series temporales

Grafana: Creación de cuadros de mando

Es un Stack (Conjunto de servicios) que se ejecuta en SWARM

Aplicaciones avanzadas Monitorización, Analitica y Dashboards con TIG

Aplicaciones avanzadas FaaS con OpenFaaS

Aplicaciones avanzadas FaaS con OpenFaaS

Las funciones se pueden acceder desde cualquier lugar (http) • Efimeras • Sin estado • Escalables automáticamente • Robustas y resistentes a fallos • Infraestructura transparente para el usuario

Es un Stack (Conjunto de servicios) que se ejecuta en SWARM

Conclusiones Ventajas para Usuarios:

• Solución abierta, versátil y sin limites

• Control total del sistema por el usuario

• Posibilidad de alta disponibilidad en el hogar

Ventajas para Redes comunitarias:

• Servicios en Alta disponibilidad con bajo coste

• Servicios escalables y extensibles

• Fácil integración

FIN.

Video de presentación: https://www.youtube.com/watch?v=TSrqNT5MEdY

Video demo de la microCloud:

https://www.youtube.com/watch?v=qtmvYINjx18