De Casa a La Nube: Cloud Comunitaria Y Servicios Distribuidos IPFS
Total Page:16
File Type:pdf, Size:1020Kb
De casa a la nube: Cloud comunitaria y servicios distribuidos IPFS Leopoldo Álvarez Huerta Grado de Tecnologías de Telecomunicación Área de Aplicaciones y Sistemas Distribuidos Félix Freitag Joan Manuel Marquès Puig Enero 2019 i Esta obra está sujeta a una licencia de Reconocimiento-NoComercial- SinObraDerivada 3.0 España de Creative Commons ii A Aida, a mis padres y a mi hermano: Por darme todo su apoyo. Por soportarme, tanto en los buenos momentos como en los menos buenos. A Juan Alonso y a Fernando: Por prestarme su ayuda siempre que la he necesitado. Por cederme una RPI remota. A mis amigos y compañeros: Por tener paciencia y aguantar mis locuras. A Félix Freitag: Por sus consejos, valoraciones, y haberme dado luz en momentos de oscuridad. Porque sin todos vosotros, no hubiese sido posible. iii FICHA DEL TRABAJO FINAL De casa a la nube: Cloud comunitaria y Título del trabajo: servicios distribuidos con IPFS Nombre del autor: Leopoldo Álvarez Huerta Nombre del consultor: Félix Freitag Fecha de entrega (mm/aaaa): 01/2019 Área del Trabajo Final: Aplicaciones y Sistemas Distribuidos Titulación: Grado de Tecnologías de Telecomunicación Resumen del Trabajo (máximo 250 palabras): En los últimos años, el número de dispositivos conectados a la red ha crecido notablemente, y ligado a ello, han evolucionado las infraestructuras y los servicios desplegados sobre las mismas. Los requisitos de accesibilidad, disponibilidad, adaptabilidad, y, en definitiva, la manera continua, y de forma remota, de explotar los servicios; desde visualización de contenidos, almacenamiento compartido, hasta soluciones distribuidas de ofimática o servicios de mensajería, han impactado directamente sobre los centros de datos. La tendencia conocida como Edge Computing ha generado una descentralización de los datacenter, propiciando la creación de microcentros más cerca de los datos, los cuales utilizan servicios que recogen y procesan la información prácticamente en tiempo real y, cada vez más, apoyándose en una cloud. Este modelo favorece el envío de la información, a un único punto virtual, logrando que los datos estén distribuidos en varios centros, en una infraestructura distribuida y flexible, siendo objetivo de este trabajo extrapolar este modelo a entornos domésticos, de uso acotado y colaborativo. Este trabajo está formado por una componente práctica; instalación, despliegue, y evaluación de una microcloud en un entorno de Smart Home, basada en productos abiertos como Cloudy, Docker, Orbit, IPFS-Cluster, Stack ELK, sobre iv hardware ARM como son las Raspberry PI, y otra componente teórica, de investigación. En el aspecto teórico, se realiza un acercamiento a IPFS y su campo de aplicación desde entornos computacionales reducidos, como el desplegado en el trabajo, hasta Internet 3.0. Abstract (in English, 250 words or less): Nowadays, the number of devices connected to the network has grown significantly, and linked to this, the infrastructures and services which have deployed on them have evolved. The requirements of accessibility, availability, adaptability, and the continuous and remotely way of exploiting the services; from content visualization, shared storage, to distributed office automation solutions or messaging services, have directly impacted on the datacenters. The trend known as Edge computing has generated a decentralization of the datacenter, favoring the creation of microcenters closer to the data, which use services that collect and process information practically in real time and, increasingly, relying on a cloud. This model favors the sending of information to a single virtual point, achieving that the data is distributed in several centers, in a distributed and flexible infrastructure, being the objective of this work to extrapolate this model to domestic environments, of limited and collaborative use. This work is formed by a practical component; installation, deployment, and evaluation of a microcloud in a Smart Home environment, based on open products such as Cloudy, Docker, Orbit, IPFS-Cluster, Stack ELK, on ARM hardware such as Raspberry PI, and another theoretical, research component. The theoretical aspect is an approach to IPFS, and its field of application, from small computational environments, such as the one that has deployed at work, to Internet 3.0. Palabras clave (entre 4 y 8): Cloudy, microCloud, Docker, Raspberry, IPFS, Orbit, Edge Computing v Índice Lista de figuras ................................................................................................. 7 1. Introducción .................................................................................................... 1 1.1 Contexto y justificación del Trabajo ........................................................... 1 1.2 Objetivos del Trabajo ................................................................................. 3 1.3 Enfoque y método seguido ........................................................................ 4 1.4 Planificación del Trabajo ........................................................................... 4 1.4.1 Planificación del Trabajo. EDT ............................................................... 5 1.4.2 Planificación del Trabajo. Gantt .............................................................. 5 1.5 Breve sumario de productos obtenidos ..................................................... 6 1.6 Breve descripción de los otros capítulos de la memoria............................ 6 2. Estado actual. ................................................................................................. 8 3. Diseño del sistema ....................................................................................... 15 3.1 Diseño físico ............................................................................................ 15 3.1.1 Rasperry PI 3B ..................................................................................... 16 3.1.2 Rasperry PI 3B+ ................................................................................... 17 3.1.2 AMD Athlon 2400 XP ............................................................................ 18 3.1.3 Cisco EPC 3925 EuroDocsis ................................................................ 18 3.2 Diseño lógico ........................................................................................... 19 3.2.1 Cloudy .................................................................................................. 20 3.2.1.1 Motivaciones de la distribución Cloudy .............................................. 21 3.2.1.2 Arquitectura Cloudy ........................................................................... 22 4. Servicios distribuidos e IPFS ........................................................................ 23 4.1 Diseño IPFS ............................................................................................ 26 4.2 IPFS e Internet ........................................................................................ 28 4.3 Servicio IPFS Cluster .............................................................................. 30 4.4 Servicio IPFS-Log ................................................................................... 33 4.5 IPFS en Cloudy ....................................................................................... 34 4.6 Servicio Orbit ........................................................................................... 34 4.7 Servicio OrbitDB ...................................................................................... 36 4.8 Servicio eChat ......................................................................................... 37 4.9 Serf .......................................................................................................... 38 4.10 Serf en Cloudy ....................................................................................... 39 5. Implantación: Instalación, configuración y despliegue .................................. 39 5.1 Instalación del sistema operativo ............................................................ 39 5.2 Instalación Cloudy. “Cloudynizar” ............................................................ 41 5.3 Instalación Docker ................................................................................... 43 5.4 Instalación software adicional .................................................................. 44 5.4.1 OpenVPN ............................................................................................. 44 5.4.2 XRDP y TightVNC ................................................................................ 45 5.4.3 NPM ..................................................................................................... 46 5.5 Instalación IPFS ...................................................................................... 47 5.6.1 Instalación IPFS-Cluster ....................................................................... 48 5.6.2 Configuración clúster privado con IPFS-Cluster ................................... 51 5.6.2 Instalación Go IPFS.............................................................................. 53 5.7 Despliegue servicios Docker. “Dockerización” ........................................ 53 5.7.1 Despliegue ELK (ElasticSearch) .......................................................... 53 5.7.2 Despliegue OrbitDB .............................................................................. 56 vi 5.7.3 Despliegue Orbit ................................................................................... 59 5.7.4