Trabajo de Grado Ingeniero de Sistemas
Trabajo de Grado Ingeniero de Sistemas
Trabajo de Grado Ingeniero de Sistemas
DIRECTOR:
VIVIAN OREJUELA RUIZ
INGENIERA DE SISTEMAS
LISTADO ILUSTRACIONES
LISTADO TABLAS
IDE: Disco duro, el cual utiliza una conexión ATA paralei, tiene una capacidad que
viene desde 30MB a 750GB.
SATA: El tipo de disco duro SATA sustituye a su antecesor IDE, ya que gracias a
su tecnología brinda mayores velocidades y su capacidad de almacenamiento viene
desde los 80GB hasta los 2TB.
NVME: Disco duro SSD, el cual tiene grandes velocidades de transmisión de datos
tanto escritura y lectura.
Nota de aceptación:
_____________________________
_____________________________
_____________________________
_____________________________
_____________________________
_____________________________
_____________________________
Firma del presidente del jurado
_____________________________
Firma del jurado
_____________________________
Firma del Jurado
1
Cloud computing for big data from biomedical sensors monitoring, storage and analyze. Maria,
Server. 2018 - 2019
2
Analysis of cloud computing delivery architecture models. Bojanova & Samba. 2018 - 2019.
14
A través de la investigación realizada por los autores de este documento y con base
a los trabajos de grado de la facultad de Ingeniería de Sistemas existentes en la
Biblioteca Néstor Grajales López, de la Unidad central del valle del cauca, se
identificó algunos que contienen soluciones las cuales requieren una gran
infraestructura de cómputo para su implementación, por tal motivo fueron
archivados y no se encuentran desplegados en las instalaciones de la UCEVA.
15
Valoración colaborativa de Terminado Investigación Ingeniería
procesos de contratación de
pública en el marco del libre Sistemas
acceso a la información
16
1.2 JUSTIFICACION
Con el creciente uso de las TIC se están generando altos volúmenes de datos que
pueden servir a investigadores, a la industria y las universidades para mejorar los
diferentes servicios y procesos que se relacionan con las actividades humanas
como lo son el monitoreo de cultivos o las redes de sensores 3. Para poder
almacenar esta información sin tener que invertir grandes sumas de dinero en la
infraestructura de comunicaciones, los servicios que ofrece la computación en la
nube se convierte en una excelente alternativa que además de almacenar, también
permite procesar los datos. Es por esto que la integración de la computación en la
nube con las tecnologías de monitoreo como las redes de sensores inalámbricas
son un desafío que está siendo estudiado en diferentes países (India, Brasil,
E.E.U.U, China, Colombia) y más ahora que son dos de los elementos claves para
el conocido Internet de las Cosas, en donde se quiere conectar y controlar diferentes
dispositivos a lo largo del planeta.
3
Orlando, O y Juan, R. Diseño de un sistema basado en IOT para controlar el cultivo de maíz en la
granja agroecológica de la UCEVA. 2019.
17
los estudiantes de Ingeniería de Sistemas UCEVA. La tecnología Cloud Computing
es una excelente alternativa que está cambiando la perspectiva de los servicios en
Internet, con la promesa de servicios de Infraestructura, Plataforma y software más
baratos y flexibles.
18
Ilustración 4 – Servicio de servidor en la nube.
Por ello la necesidad de Implementar una Cloud Computing privada pueda ofrecer
servicios de Plataforma (PaaS) para los estudiantes de Ingeniería de Sistemas
UCEVA que proporcione medios para desarrollar aplicaciones que permitan analizar
los datos recolectados en sus diferentes trabajos o investigaciones y desplegarlas
para administrarlas, obtener información de forma remota que permita la toma de
decisiones o publicación de datos.
19
1.3 OBJETIVOS
1.3.1 General
1.3.2 Específicos
20
1.4 ALCANCE
21
2. CAPÍTULO II - MARCO REFERENCIAL
4
Silberschatz, G. Operating System Concepts. 2018 – 2019.
22
(Ilustración 5). El hardware, la unidad de procesamiento central (CPU), la memoria
y los dispositivos de entrada / salida (E / S), proporciona los recursos informáticos
básicos para el sistema. Los programas de aplicación, como los procesadores de
texto, las hojas de cálculo, los compiladores y los navegadores web, definen las
formas en que estos recursos se utilizan para resolver los problemas informáticos
de los usuarios. El sistema operativo controla el hardware y coordina su uso entre
los diversos programas de aplicación para los distintos usuarios. También podemos
ver un sistema de computadora que consiste en hardware, software y datos. El
sistema operativo proporciona los medios para el uso adecuado de estos recursos
en el funcionamiento del sistema informático. Un sistema operativo es similar a un
gobierno. Al igual que un gobierno, no realiza ninguna función útil por sí mismo.
Simplemente proporciona un entorno dentro del cual otros programas pueden hacer
un trabajo útil.
Las computadoras que están conectadas mediante una red pueden estar separados
espacialmente por cualquier distancia. Pueden estar en condiciones distintas, en el
mismo edificio o en la misma habitación6.
5
Philippe, G. Virtualización des sistemas de información con VMware. 2018 – 2019.
6
Coulouris, Kindberg. Sistemas Distribuidos: Conceptos y Diseño. 2018 – 2019.
23
disponibilidad, equilibrio de carga y para fines informáticos. Se utilizan para fines de
alta disponibilidad ya que mantienen nodos redundantes que se utilizan para
proporcionar servicio cuando los componentes del sistema fallan. El rendimiento del
sistema se mejora aquí porque incluso si un nodo falla, hay otro nodo en espera que
llevará a cabo la tarea y eliminará los puntos únicos de falla sin ningún impedimento.
Cuando se conectan varias computadoras juntas en un clúster, comparten la carga
de trabajo computacional como una sola computadora virtual. Desde el punto de
vista de los usuarios, son máquinas múltiples, pero funcionan como una sola
máquina virtual. La solicitud del usuario se recibe y se distribuye entre todas las
computadoras independientes para formar un clúster. Esto da como resultado un
trabajo computacional equilibrado entre diferentes máquinas, mejorando el
rendimiento de los sistemas de clúster. A menudo, los clusters se utilizan
principalmente con fines computacionales, que el manejo de actividades basadas
en IO7.
Grid computing se define como un tipo de sistema paralelo y distribuido que permite
el intercambio, la selección y la agregación de recursos autónomos distribuidos
geográficamente de forma dinámica en tiempo de ejecución en función de su
disponibilidad, capacidad, rendimiento, costo y requisitos de calidad de servicio para
los usuarios8.
7
R, Buyya. Cloud computing and emerging IT platforms: Vision, hype, and reality for delivering
computing as the 5th utility. Future Generation Computer Systems. 2018 - 2019.
8
Ian, F. Yong, Z. Ioan, R. Shiyong, L. Cloud Computing and Grid Computing 360-Degree Compared.
2018 – 219.
9
R, Buyya. Cloud computing and emerging IT platforms: Vision, hype, and reality for delivering
computing as the 5th utility. Future Generation Computer Systems. 2018 - 2019.
24
2.1.6 CLOUD COMPUTING
10
Michael, K. Architecting the Cloud: Design Decisions for Cloud Computing Service Model: SaaS,
PaaS, IaaS. 2018 – 2019.
11
Matthew, S. Sarhan, M. Omonowo, D. Cloud Computing: Opportunities and Challenges. 2018 –
2019.
12
Armbrust, Jhosef. Above the clouds: A Berkeley view of cloud computing. 2018 - 2019
25
2.2 ESTADO DEL ARTE
26
2.2.2.1 Autoservicio a la carta
El usuario puede ampliar recursos consumibles de manera automática como lo son
el almacenamiento y procesamiento, sin la necesidad de pedirlo a su proveedor de
servicio17.
17
Luis, A. COMPUTACIÓN EN LA NUBE Notas para una estrategia española en Cloud Computing.
2018 – 2019.
18
MARIA A. ANÁLISIS DE UNA INFRAESTRUCTURA CLOUD OPEN SOURCE. 2018 – 2019.
19
Julio, T. LEX CLOUD COMPUTING. 2018 – 2019.
20
Julio, T. LEX CLOUD COMPUTING. 2018 – 2019.
21
David, C. Cloud Computing: retos y oportunidades. 2018 – 2019.
27
virtualización, el almacenamiento escalable, mecanismos de administración de
múltiples clientes y APIS Web22.
Los nodos básicos que debe tener una Cloud Computing para prestar sus servicios
pueden variar en cantidad dependiendo de cómo se desea configurar,
principalmente se deben tener los siguientes:
22
Arquitectura de la Cloud Computing. https://www.akamai.com/es/es/resources/cloud-computing-
architecture.jsp. 2018 – 2019.
23
Antonio, C. Despliegue de arquitectura Cloud basada en OpenStack y su integración con Chef
sobre CentOS. 2018 – 2019.
24
OpenStack. Overview. https://docs.openstack.org/install-guide/overview.html#compute. 2018 –
2019.
28
2.2.3.3 Nodo de almacenamiento
Se encarga de gestionar y almacenar las instancias e imágenes25.
De acuerdo con la definición de NIST, existen cuatro tipos de Cloud Computing para
su implementación que se encargan de la infraestructura: Pública, Privada,
Comunitaria e Híbrida.
El modelo SPI en que se basa la Cloud Computing hace referencia a los 3 tipos de
servicios que puede ofrecer una Cloud Computing, es decir, Software, plataforma e
infraestructura, estos servicios son consumidos dependiendo de la demanda que
tengan los usuarios.
25
OpenStack. Overview. https://docs.openstack.org/install-guide/overview.html#compute. 2018 –
2019.
26
Antonio, C. Despliegue de arquitectura Cloud basada en OpenStack y su integración con Chef
sobre CentOS. 2018 – 2019.
27
Aguilar, L. NUBE Notas para una estrategia. 2018 – 2019.
29
2.2.5 SERVICIOS DE CLOUD COMPUTING
28
Michael, K. Architecting the Cloud: Design Decisions for Cloud Computing Service Model: SaaS,
PaaS, IaaS. 2018 – 2019.
29
Carlos, M. Procesamiento de grandes volúmenes de datos en entornos Cloud Computing utilizando
Hadoop MAPREDUCE. 2018 – 2019.
30
María, M. Despliegue de una Infraestructura Cloud Privada de Código Abierto. 2018 – 2019.
30
2.2.6 PIONEROS DE LA CLOUD COMPUTING
31
Valencia, Cruz. Historia Del Cloud Computing. 2018 – 2019.
32
Felipe, V - Diego, B. Diseño de selección de una plataforma Cloud Computing. 2018 – 2019.
33
Will, B. Cloud Architecture Patterns: Using Microsoft Azure. 2018 – 2019.
31
como: Google App Engine, Google Cloud Storage, Google Compute Engine, Google
Cloud SQL etc34.
Para este estudio se realizó un cuadro comparativo entre cada una de las
plataformas OPEN SOURCE que se encuentran en el mercado y de las cuales se
puede instalar de forma local o pública haciendo algún convenio con algún
proveedor de computación ya mencionado en este documento. Para realizar el
cuadro comparativo se tuvo en cuenta los requerimientos de infraestructura mínimos
para poder realizar la instalación de la nube. En la Ilustración 6, se pueden
observar las siguientes plataformas: OpenNebula, OpenStack, Eucalyptus y
CloudStack. Estas plataformas fueron comparadas con criterio tales como
compatibilidad con nodos virtualizados, lenguajes de programación que conforman
el funcionamiento de la nube, requisitos de hardware, código libre (OpenSourse) e
Interface vía API, Web y SSH. El estudio reflejó que la plataforma más antigua es
OpenNebula ya que sus inicios parten desde 2005 a diferencias de sus
competidores como lo son Eucalyptus en el 2008, OpenStack y CloudStack en el
201035.
34
Yavuz, Y. Bahadir, A. Murat, D. Google Cloud Messaging (GCM): An Evaluation. 2018 – 2019.
35
Felipe, V - Diego, B. Diseño de selección de una plataforma Cloud Computing. 2018 – 2019.
32
Ilustración 6 – Cuadro comparativo de las principales Cloud Computing OpenSource.
33
2.2.8.1 OpenNebula
OpenNebula es una plataforma que tiene una larga trayectoria, se determinó que
no se utilizaría ya que dejó de producir actualizaciones a partir del 2010 lo cual la
descalifica ya que no sería viable ya que podría no dar soporte en caso de que se
esté poniendo una nube en producción, algo a destacar es que OpenNebula es una
plataforma que puede ser pública, privada e híbrida lo cual lo hacía un gran
candidato36.
2.2.8.2 Eucalyptus
Eucalyptus es una plataforma que puede ser privada e híbrida, pero para poder
instalar dicha plataforma se requieren infraestructura física de la cual no se cuenta
por el momento y esto hace complicado a la hora de realizar la instalación37.
2.2.8.3 CloudStack
CloudStack es una plataforma que requiere la menor infraestructura entre los
candidatos lo cual lo hace una buena opción, el único inconveniente es que solo
ofrece interface de acceso a usuarios vía web lo cual lo hace más lento en tiempo
de ejecución en comparación con SSH y API38.
2.2.8.4 OpenStack
OpenStack es una plataforma completa, su última actualización fue implementada
el 10 de abril del 2019 en su versión Rocky, aproximadamente el 16 de octubre del
2019 lanzará su versión Train lo cual lo hace más reciente para el soporte de la
misma, para el montaje se puede realizar con máquinas virtuales, lo que hace más
fácil a la hora de requerir equipos de gran potencia y realizar fácilmente la
redundancia de nodos39.
36
Scielo. Arquitectura de Referencia para el diseño y despliegue de Nubes Privadas.
http://scielo.sld.cu/scielo.php?script=sci_arttext&pid=S1815-59282015000100001. 2018 – 2019.
37
Felipe, V - Diego, B. Diseño de selección de una plataforma Cloud Computing. 2018 – 2019.
38
Felipe, V - Diego, B. Diseño de selección de una plataforma Cloud Computing. 2018 – 2019.
39
OpenStack. Open source software for creating private and public clouds.
https://www.openstack.org. 2018 – 2019.
34
3. CAPÍTULO III – METODOLOGÍA DE LA INVESTIGACIÓN
3.1.1 TEMA
En este trabajo se realiza el estado del arte de la tecnología Cloud Computing Open
Source y se configura la infraestructura Cloud Computing para ofrecer servicio de
plataforma a los estudiantes de ingeniería de Sistemas de la UCEVA.
40
Dalgleish, et. Metodología de la investigación. 2018 – 2019.
41
Dalgleish, et. Metodología de la investigación. 2018 – 2019.
35
Ilustración 7 – Proceso cualitativo.
36
3.2 PREPARACIÓN DE LA INVESTIGACIÓN
37
4. CAPITULO IV. DISEÑO E IMPLEMENTACION DE LA INFRAESTRUCTURA
DE COMPUTO DE LA PLATAFORMA CLOUD COMPUTING
Todos los usuarios y servicios confían en Keystone, sin este servicio ningún usuario
podrá autentificarse, crear instancias, redes u otros recursos en OpenStack, así
también los servicios propios de OpenStack también confían en la autentificación
de Keystone para poder crear las solicitudes de los usuarios42.
42
Jackson, K. OpenStack cloud computing cookbook. 2018 – 2019.
38
4.1.1.1 Arquitectura de Keystone
Los demonios son contenedores lógicos de alto nivel utilizados para agrupar a los
usuarios, grupos y los proyectos.
Los usuarios son creados para personas individuales en una organización, los
usuarios suelen residir en una base de datos de Keystone, pero posiblemente
podrían vivir en un servidor de Active Directory o LDAP, cada demonio puede
contener cualquier número de usuarios, del mismo modo un usuario puede
pertenecer a más de un proyecto.
43
José, J. Trabajo de Fin de Grado Sistemas de Identidad Federados en Openstack. 2018 – 2019.
39
El rol es simplemente una etiqueta que es aplicado directamente a un usuario a un
grupo, Keystone no tiene nada que ver con la autorización, la autorización es
ejecutada a través de sus ficheros de Json y estos ficheros determinarán que lo que
puede o no puede hacer un usuario.
Los grupos son un concepto en Keystone más nuevo que proporciona una forma
fácil de aplicar un rol existente a múltiples usuarios, son opcionales y se crearon
para optimizar el proceso de aplicar roles al usuario a la vez.
40
4.1.2 SERVICIO DE IMÁGENES (GLANCE)
44
OpenStack. Image service. https://docs.openstack.org/glance/queens/install/get-started.html.
2018 – 2019.
45
Davod, C. Diseño e Instalación de una infraestructura de nube privada basada en Openstack. 2018
– 2019.
41
4.1.2.1.1 QCOW2 (QEMU Copy-On-Write)
El formato de imagen QCOW2 es uno de los formatos de disco apoyado por QEMU,
el cual se utiliza con el hypervisor QEMU y KVM, su nombre proviene por la
capacidad de optimizar el almacenamiento en disco, retrasando la asignación de
almacenamiento hasta que realmente sea necesario46.
4.1.2.1.5 ISO
El formato de imagen ISO el cual está regido bajo la norma ISO9660, es un archivo
de disco óptico y todo el contenido de los datos está escrito en este fichero incluido
el sistema de archivos y el sistema operativo.
4.1.2.1.6 RAW
El formato RAW permite realizar una copia exacta de una imagen sin necesidad de
comprimir, el servicio de nova permite descomprimir cualquier imagen de nube
comprimida y se añadirá a la máquina virtual en el momento de arrancar esta
instancia.
46
Trujillo, D. Diseño e Instalación de una infraestructura de nube privada basada en Openstack. 2018
– 2019.
42
4.1.2.2 Arquitectura de Glance
Glance está compuesta por dos demonios principales, uno de ellos es Glance API
que corre por el puerto 9292 y es la entrada principal a Glance, es decir debemos
interactuar con el Glance API para almacenar y recuperar imágenes de disco. El
segundo demonio es Glance registry, por consiguiente, es el responsable de
almacenar los metadatos asociados a una imagen en la base de datos relacional
como por ejemplo el nombre de la imagen, la ubicación de la imagen, el tamaño de
la imagen, el propietario de la imagen, el estado de la imagen y el formato del disco.
Por último, Glance puede almacenar imágenes en una variedad de Backend de
almacenamiento de datos incluyendo Swift, Amazon S3 así como sistema local de
archivos en el que recibe el propio dominio de las APIS o incluso en un servidor web
de acceso público47.
47
OpenStack. Image service. https://docs.openstack.org/glance/queens/install/get-started.html.
2018 – 2019.
43
4.1.3 SERVICIO DE COMPUTO (NOVA)
4.1.3.1 Arquitectura
48
OpenStack. Image service. https://docs.openstack.org/nova/queens/install/overview.html. 2018 –
2019.
44
Nova conductor es el tercer demonio, este agente es mayormente conocido como
el Worker DataBase y este demonio se conecta directamente a la base de datos
relacional del entorno de openStack, principalmente debido a un tema de seguridad
y escalabilidad ya que él nodo de cómputo hypervisor es el componente menos
confiable de un entorno virtualizado multitenant por la que toda la comunicación de
datos debe de pasar por nova conductor. El siguiente Demonio es Nova novncroxy,
este demonio proporciona acceso a la consola de las instancias a través de un
cliente VNC o navegador web, el penúltimo demonio es nova consoleauth, este
demonio recibe solicitudes de Nova novncroxy para utilizar el token de un usuario y
mapear el HOST privado y el puerto de servidor VNC de una instancia, y por último
se encuentra él nova compute, es el demonio más importante porque su función
principal es gestionar las máquinas virtuales en los hipervisores.
Nota: Para poder Iniciar una instancia con Nova, el administrador normalmente
debe proporcionar una imagen de Glance deseada y un sabor de Nova.
49
Steinberg, K. NOVA: A Microhypervisor-Based Secure Virtualization Architecture. 2018 – 2019.
45
encuentra el hipervisor QEMU-KVM (Quick Emulator Kernel Based Virtual) lanzado
en 2006, QEMU-KVM es una bifurcación que sigue utilizando QEMU para visualizar
los periféricos del sistema HOST, pero también aprovechando procesadores con
extensiones de virtualización de hardware. QEMU-KVM es mucho más rápido
debido a su capacidad para virtualizar instancias a velocidades casi nativas, esto a
menudo se denomina como virtualización asistida por hardware o HVM50.
50
Anshu, A. Ravi, G. Multiple hypervisor based Open Stack cloud and VM migration. 2018 – 2019.
51
Murazzo, A. Análisis de una infraestructura Cloud open Source. 2018 – 2019.
52
María A. análisis de una infraestructura Cloud open source. 2018 – 2019.
53
Rodríguez, Murazzo. Arquitectura de Cloud Computing Hibrida basada en tecnología Open
Sourse. 2018 – 2019.
46
4.1.4.1 Arquitectura de Neutron
54
OpenStack. Networking service. https://docs.openstack.org/neutron/queens/install/overview.html.
2018 – 2019.
55
James, D. Learning OpenStack Networking. 2018 – 2019.
47
4.1.4.1.3 Neutron L3 Agent
Neutron L3 Agent es un demonio dedicado a crear routers en Neutron, dentro de
este agente, los routers de Neutron son también espacios de nombres de red o
name Space con tablas de enrutamiento únicas y reglas de IPtables.
En el entorno de OpenStack hay dos tipos de redes en Neutron, las que son
llamadas redes de networks providers y networks the tenants, las redes the
tenants son las redes privadas que son creadas en el momento de dar inicio a un
nuevo proyecto en OpenStack. Las redes the tenants o las redes de proyectos son
redes creadas por los propios usuarios que desean iniciar instancias en su propio
dominio de rede de capa 2. Las redes the tenants o las redes de proyectos siempre
son propiedad de ese proyecto al que el usuario tiene acceso durante la creación
de esa red56.
Las redes providers por el contrario son creadas por el administrador del cloud o
alguien con un rol de nivel de administrador. Estas redes se utilizan para
proporcionar acceso a la red de recursos fuera del entorno de OpenStack, un
ejemplo de recurso podría ser el internet o incluso un servidor de base de datos
bermetal que exista en una VLAN o XLAN específica en un centro de datos.
56
Denton, J. Learning OpenStack Networking (Neutron). 2018 – 2019.
48
conectadas a las redes the tenants o a las redes de proyecto siempre suelen tener
el DHCP habilitado.
Los Security groups o los grupos de seguridad son los encargados de controlar el
tráfico hacia y desde un puerto, de forma predeterminada todo el tráfico de salida
que está permitido en todas las instancias. Sin embargo, todo el tráfico de entrada
está limitado, excepto para aquellas instancias que estén dentro del mismo grupo
de seguridad predeterminado.
Los routers son dispositivos de red generados por el demonio de Neutron L3 Agent
y permiten conectar diferentes redes entre sí. Los routers de Neutron se usan
comúnmente para conectar el tráfico de diferentes redes the tenants o redes de
proyecto, este tipo de tráfico se denomina tráfico Este y Oeste. Estos routers
también se usan para conectar las redes de proyecto o las redes the tenants a una
red Provider para acceder a otra red externa, este tipo de tráfico se domina norte
sur.
57
OpenStack. Cinder Block Storage service. https://docs.openstack.org/cinder/queens/install/get-
started-block-storage.html. 2018 – 2019.
50
objetos de almacenamiento de terceros que se puedan contener en el entorno de
OpenStack58.
61
Maresca, M. Diseño e implementación de herramientas web para la gestión de recursos
Openstack. 2018 – 2019.
52
4.1.6.1 Arquitectura de Swift
Swift está compuesto por 14 demonios primarios el primero es Swift Proxy Server,
es el API y la puerta de enlace principal para Swift, es también el responsable de
vincular el resto de la arquitectura Swift, cualquier usuario debe interactuar con Swift
Proxy Server para crear contenedores, cargar objetos, establecer ACL y habilitar
características especiales como el control de versiones de objetos o la habilitación
de sitios web estáticos. El demonio Swift Object Server, es el responsable de
recuperar y eliminar objetos almacenados en unidades locales del cluster de Swift,
los objetos se almacenan como archivos binarios en el sistema de archivos con los
metadatos almacenados en los atributos extendidos del archivo, mayormente
conocido como XATTRS. El siguiente demonio es Swift Object Auditor, este
demonio rastrea todo el sistema de objetos local comprobando la integridad de los
objetos si encuentra a un archivo corrupto, el archivo se pone en cuarentena y la
replicación reemplazará este archivo defectuoso con otra réplica. El siguiente
demonio en esa lista es Swift Object Expire, este demonio ofrece eliminación
programada de los objetos. El demonio Swift Object reconstructor permite al usuario
reconstruir los objetos que han sido borrados. El Swift Object Replicator, mantiene
el sistema en un estado coherente frente a las condiciones de error temporal como
por ejemplo interrupciones de la red o fallas de la unidad de disco, los procesos de
replicación comparan los datos locales con cada copia remota para garantizar que
53
todos contengan la última versión, la replicación de objetos utiliza una lista hash
para comprobar rápidamente subsecciones de cada partición. El siguiente demonio
es Swift container Server, este demonio maneja la lista de objetos dentro de un
contenedor particular, los listados se almacenan como archivos de base de datos
SQLite y se repican en él, este demonio es muy similar al Swift Object Server 62.
62
Vilafranca, B. Creació d' un clúster de computació amb OpenStack. 2018 – 2019.
54
ACL o la lista de control de acceso: ACL por defecto es un contenedor de
Swift privado el cual no es accesible para ningún otro usuario u otros
proyectos, de forma predeterminada un usuario con la función de admin o el
rol Swift Operator puede establecer ACLS a nivel de contenedor para dar
acceso de lectura y escritura a ese contenedor63.
Static Web Hosting o alojamiento de sitios web estáticos: OpenStack en
lugar de utilizar un servidor web tradicional como Apache o NGINX para alojar
un sitio web, utiliza Swift para poder alojar archivos de sitios web estáticos
como HTML, CSS o JavaScript.
Object Versioning o el control de versiones: Permite a un usuario agregar
múltiples versiones de un archivo específico, el usuario simplemente crea un
contenedor alternativo para almacenar las versiones y a medida que el
usuario carga un archivo con el mismo nombre en el contenedor Swift, la
versión anterior se publica en el contenedor alternativo, el usuario puede
recuperar y restaurar fácilmente una versión anterior, si se envía una solicitud
de borrado del objeto, la última versión se elimina y la versión anterior se
restaura en su lugar64.
63
Vilafranca, B. Creación de un clúster de computacional amb OpenStack. 2018 – 2019.
64
Maria, G. Diseño e implementacion de herramientas web para la gestion de recursos de
OpenStack. 2018 – 2019.
65
Hamid. A. Pooyan, J. An Auto-Scaling Cloud Controller Using Fuzzy Q-Learning - Implementation
in OpenStack. 2018 – 2019.
55
Heat se encarga de aprovisionar y configurar sin necesidad de preocuparse por las
dependencias o el orden de ejecución. Cada usuario tiene los permisos de crear y
eliminar la pila con gran facilidad, si se desea realizar un cambio de la pila sólo se
necesita actualizarla y por consiguiente se proporciona una plantilla modificada con
nuevos parámetros66.
El demonio Heat API, se encuentra corriendo por el puerto 8004, el Heat API, es la
API y la puerta de enlace principal a Heat. Cualquier usuario debe interactuar con
Heat API para crear, enumerar, eliminar y administrar stacks o pilas. El siguiente
demonio es Heat API CFN, que se encuentra corriendo por el puerto 8000, este
demonio proporciona una API de consulta al estilo de A.W.S y que permite a los
servicios y usuarios utilizar funcionalidades similares a Cloud Formation como
condiciones de espera y opciones de auto escalado automático. Por último Heat
Engine, este demonio es el responsable de iniciar las pilas y administrar todos los
recursos especificados en la plantilla67.
66
Arabnejad, J. Estrada. I. Service-Oriented and Cloud Computing. 2018 – 2019.
67
Aida, P. Deployment of a cloud computing environment for the CMS experiment. 2018 – 2019.
56
una plantilla de Heat, simplemente se procede a restaurar a una versión anterior de
la plantilla. Las plantillas más nuevas creadas por los usuarios pueden hacer
referencia a funciones que no se encuentran en versiones anteriores, por lo tanto,
las plantillas son incompatibles con entornos más antiguos68.
68
OpenStack. Heat Orchestration Template (HOT).
https://docs.openstack.org/heat/rocky/template_guide/hot_guide.html. 2018 – 2019.
57
5. CAPITULO V. INFRAESTRUCTURA DE CÓMPUTO IMPLEMENTADA Y
PLATAFORMA DE SERVICIOS PAAS
58
Ilustración 16 - Arquitectura para ambiente de Producción OpenStack.
59
5.2 ESPECIFICACIÓN DE SERVIDOR ANFITRIÓN
60
5.3 INSTALACIÓN DE ENTORNO OPENSTACK TODO EN UNO
Se crea una nueva máquina virtual (Clic Create a New Virtual Machine)
61
Ilustración 19 – Creación de MV en VMWare –Tipo de configuración.
Se selecciona el número de
procesadores e hilos que se le van
asignar a la Máquina Virtual (Clic
Next >)
64
Ilustración 25 – Creación de MV en VMWare - Selección capacidad RAM.
65
Ilustración 27 – Creación de MV en VMWare – Selección Controlador I/O.
66
Ilustración 29 – Creación de MV en VMWare – Selección disco duro virtual.
67
Ilustración 31 – Creación de MV en VMWare – Asignar nombre disco duro virtual.
Dar Clic Power on this virtual machine > para iniciar la Máquina Virtual.
Ilustración 36 –
Instalación –
Selección idioma SO.
Al iniciar la
instalación
seleccionar el idioma
del SO (Enter >)
70
Nota: La ISO que se utilizó contiene la distribución Ubuntu 18.04.2-live-server-
amd64, debido a que es una distribución libre, además, está orientada a la
comunidad, por lo que se encuentra en constante crecimiento lo cual permite mejor
soporte y constante corrección de bugs.
Seleccionar la
configuración del teclado
(Clic Hecho >)
Se selecciona si se va
instalar el Ubuntu
convencional o el Cloud
(Diferencia de paquetes)
(Enter Instalar Ubuntu >)
Se configura la
interfaz
(Recomendado por
defecto) (Enter
Hecho >)
Se configura el
Ubuntu archive Mirror
que corresponde a los
espejos
(Recomendado dejar
por defecto) (Enter
Hecho >)
72
Ilustración 41 – Instalación – Selección tipo particionamiento
Seleccionar la
partición donde se van
instalar el SO (Enter
/dev/sda 100.00G)
Se visualiza la
Configuración del
sistema de archivos
y se confirman los
cambios (Enter
Hecho >)
Se muestra un
mensaje para
confirmar los
cambios ya que
después de esto no
se podrá recuperar
la información
existente (Enter
Continuar >)
74
Ilustración 45 – Instalación – Configuración perfil SO.
Se realiza la
configuración del
perfil, donde va el
nombre de la
máquina, servidor,
usuario y
contraseña. (Enter
Hecho >)
Se puede instalar
adicionalmente
distintos paquetes,
omitir en este caso
(Enter Hecho >)
Se completa la
instalación y se reinicia
el sistema (Enter
Reiniciar ahora >)
76
5.3.2 Instalación paquetes OpenStack
77
Ilustración 52 – Paquetes actualizados.
Descargando Paquetes…
78
Ilustración 54 – Instalación de paquetes.
79
Se entra en modo root, y se envía un echo a la dirección visualizada, seguido se
sale del modo root.
80
Ilustración 60 – Cambio de propietario.
81
Ilustración 62 – Configuración local.conf.
82
Ilustración 64 – Instalación de servicios.
83
5.3.3 Despliegue OpenStack
Ilustración 66 – Dashboard.
85
5.3.4 Creación de imagen para OpenStack
86
Ilustración 71 – Entorno de desarrollo.
87
6. CAPITULO VI. PROTOTIPO FUNCIONAL QUE UTILIZA LA PLATAFORMA
CLOUD COMPUTING IMPLEMENTADA
Para ofrecer servicio de plataforma como servicio (PaaS) se crean instancias que
representan el sistema de cómputo virtualizado al cual se puede acceder desde la
API OpenStack o mediante SSH. Para la creación de instancias es necesario que
exista al menos una imagen que corresponde a un ISO de instalación del Sistema
Operativo o archivos de disco virtual con el Sistema Operativo (Linux o Windows)
pre-instalado.
Para crear imágenes OpenStack se debe dirigir al menú lateral opción Administrador
> Compute > Imágenes y dar Clic > Crear imagen.
88
Ilustración 73 – Detalles de la imagen.
Ilustración 77 – Volumen.
Se agrega detalle del volumen a crear tales como nombre del volumen, descripción,
origen del volumen (Puede ser vació o se puede escoger una imagen existente),
tipo, tamaño, zona de disponibilidad y grupo.
Las instancias son VM para usuarios OpenStack y son duplicados de las imágenes
existentes.
Se escoge el sabor que define los requisitos de Hardware que tendrá la instancia.
95
Ilustración 87 – Creación de directorios.
96
Se realiza el primer ejercicio, para guardar los cambios se presiona CTRL+O y para
salir del editor CTRL+X.
98
Ilustración 95 – Elaboración de ejercicio3 – Laboratorio.
Se realiza el tercer ejercicio, para guardar los cambios se presiona CTRL+O y para
salir del editor CTRL+X.
99
7. CAPITULO VII. CONCLUSIONES Y RECOMENDACIONES
7.1 CONCLUSIONES
Con la Cloud Computing se logra obtener alta disponibilidad en los sistemas debido
a la duplicidad total que se puede realizar de un servicio o nodo, logrando sistemas
confiables, además se logra la adecuada administración de los recursos físicos del
Cloud, administrando los tiempos de usos de memoria o procesamiento acorde a
las solicitudes de servicio, lo cual reduce la huella de carbono producidos por
equipos de cómputo.
100
7.2 RECOMENDACIONES
101
8. COLABORADORES
102
9. REFERENCIAS BIBLIOGRÁFICAS
Armbrust, M., Fox, A., Griffith, R., Joseph, A., & RH. (2009). Above the clouds: A
Berkeley view of cloud computing. University of California, Berkeley, Tech.
Rep. UCB , 07–013. https://doi.org/10.1145/1721654.1721672.
Buyya, R., Buyya, R., Yeo, C. S., Yeo, C. S., Venugopal, S., Venugopal, S., …
Brandic, I. (2009). Cloud computing and emerging IT platforms: Vision, hype,
and reality for delivering computing as the 5th utility. Future Generation
Computer Systems, 25(June 2009), 17.
https://doi.org/10.1016/j.future.2008.12.001.
Dalgleish, T., Williams, J. M. G. ., Golden, A.-M. J., Perkins, N., Barrett, L. F.,
Barnard, P. J., … Watkins, E. (2007). Metodologia de la investigacion - sexta
edición. In Journal of Experimental Psychology: General (Vol. 136).
103
Valdés, J. T. (2013). Cómputo en la nube. Biblioteca Jurídica Virtual, 14. Retrieved
from https://archivos.juridicas.unam.mx/www/bjv/libros/7/3249/3.pdf.
Rodríguez, N., Murazzo, M., Chavez, S., & Guevara, M. (2017). Arquitectura de
Cloud Computing Hibrida basada en tecnología Open Sourse. 10.
Campoverde, A., Hernández R, D., & Mazón, B. (2015). Cloud computing con
herramientas open-source para Internet de las cosas. Maskana, (7), 172–182.
https://doi.org/10.18046/syt.v13i34.2090.
Felipe, A., Vargas, G., Fernando, D., Cruz, B., & Central, U. (n.d.). Diseño de
selección de una plataforma Cloud Computing.
Sánchez, M., Barrena, M., Bustos, P., Campillo, C., & García, P. (2016). Arquitectura
Software Basada en Tecnologías Smart para Agricultura de Precisión.
Jornadas de Ingenieria Del Software y Bases de Datos, (September).
104
Armbrust, M., Fox, A., Griffith, R., Joseph, A., & RH. (2009). Above the clouds: A
Berkeley view of cloud computing. University of California, Berkeley, Tech.
Rep. UCB, 07–013. https://doi.org/10.1145/1721654.1721672.
Buyya, R., Buyya, R., Yeo, C. S., Yeo, C. S., Venugopal, S., Venugopal, S., …
Brandic, I. (2009). Cloud computing and emerging IT platforms: Vision, hype,
and reality for delivering computing as the 5th utility. Future Generation
Computer Systems, 25(June 2009), 17.
https://doi.org/10.1016/j.future.2008.12.001.
Bojanova, I., & Samba, A. (2011). Analysis of cloud computing delivery architecture
models. Proceedings - 25th IEEE International Conference on Advanced
Information Networking and Applications Workshops, WAINA 2011, 453–458.
https://doi.org/10.1109/WAINA.2011.74.
Maria, A. R., & Sever, P. (n.d.). Cloud computing for big data from biomedical
sensors monitoring, storage and analyze. 2–5.
Yabar, S., & Com, S. (n.d.). o r e n e. 31.
105
Maresca, M. G. (2015). Diseño e implementación de herramientas web para la
gestión de recursos Openstack.
Arabnejad, H., Jamshidi, P., Estrada, G., Ioini, N. El, & B, C. P. (2014). Service-
Oriented and Cloud Computing. 8745, 152–167. https://doi.org/10.1007/978-3-
662-44879-3.
Ingenier, G., Jesus, C., & Cano, B. (2017). Service Function Chaining en NFV:
Evaluaci ´ on pr ´ actica con OpenStack Javier Bautista Ramos Tutor: Director:
Openstack.org. (2018). OpenStack Docs: Image service. Retrieved May 30, 2019,
from https://docs.openstack.org/glance/queens/install/get-started.html
106