Recepción: Julio 20, 2019
Aprobación: Enero 13, 2020
Resumen: Este documento presenta las ventajas del uso de una nube privada de Infraestructura como Servicio, utilizando la tecnología OpenStackpara Instituciones de Educación superior del Tecnológico Nacional de México en el estado de Oaxaca. El análisis de los resultados de investigación consultados en las bases de datos académicas tales como: EBSCO, Latindex, Redalyc, Dialnet y Scielo, ponen en manifiesto la importancia del cómputo en la nube en las instituciones de educación superior, ya que este tipo de tecnología permite el aprovechar de una manera más eficiente la infraestructura de cómputo existente en la institución y también la rápida implementación de nuevos sistemas de información, además la nube privada por medio de OpenStack, presenta ventajas sobre otras tecnologías de IaaSopen source, tales como: costo, documentación, facilidad de implementación, y servicios ofrecidos. OpenStack brinda las posibilidades de implementación de nubes privadas tipo IaaS de manera distribuida permitiendo así el trabajo colaborativo entre instituciones de educación superior del país o del extranjero en pro de la mejora académica.
Palabras clave: Cloud Computing, OpenStack, Open Source, IaaS, IES.
Abstract: This document presents the advantages of using a private cloud of Infrastructure as a Service, using the OpenStack technology for Institutions of Higher Education of the Tecnologico Nacional de Mexico in the state of Oaxaca. The analysis of the research results consulted in the academic databases such as: EBSCO, Latindex, Redalyc, Dialnet and Scielo, show the importance of cloud computing in higher education institutions, since this type of technology allows the use of a more efficient way of computing infrastructure existing in the institution and also the rapid implementation of new information systems, in addition to the private cloud through OpenStack, has advantages over other IaaS Open source technologies, such as : cost, documentation, ease of implementation, and services offered. OpenStack provides the possibilities of implementing private IaaS clouds in a distributed way, thus allowing collaborative work between higher education institutions in the country or abroad in favor of academic improvement.
Keywords: Cloud Computing, OpenStack, Open Source, IaaS, IES.
1. Introducción
El término cómputo en la nube o llamado cloud computing, se ha convertido en una tecnología que utiliza la virtualización para propiciar servicios a usuarios desde cualquier lugar que cuente con acceso a la red, estos servicios son divididos en tres: cómputo, red y almacenamiento. El servicio de cómputo ofrece componentes de hardware virtualizados de un computador, como puede ser memoria, procesador, sistema operativo, disco duro, entre algunos otros más, el usuario puede contar con protocolos y normas de red disponibles montados en la nube; sin embargo, una desventaja es que el cómputo en la nube no puede ser utilizado si no se cuenta con la red mínima necesaria para conectar sus recursos. El cloud computing se divide en dos categorías importantes: por el tipo de implementación (público, privado o bien híbrido) y por el tipo de servicio brindado (SaaS, PaaS o IaaS [1], [2]). El servicio público se refiere a aquel que puede ser montado y es de acceso a cualquier usuario que cuente con red y puede ser propiedad, administrado y operado por alguna organización comercial; el servicio privado es aquel que solo pertenece exclusivamente a una empresa u organización, esta puede ser administrada y operada por la misma organización, un tercero o la combinación de ambos y quien se encuentre en una red fuera del entorno no podrá realizar peticiones de acceso; el servicio híbrido, otorga servicios públicos y privados para una misma empresa o usuario, es muy utilizada en la actualidad para brindar un equilibrio de carga entre nubes privada y pública de una organización. [1], [2]. En cuanto al servicio de la nube puede ser SaaS (software como servicio), la aplicación provee al usuario mediante una interfaz, como puede ser un navegador, el usuario tiene la responsabilidad de administrar la información y la interacción con el sistema [3]; PaaS (plataforma como servicio), en ella el usuario puede crear sus propias aplicaciones desde el cómputo en la nube o usar esas aplicaciones programándolas él mismo, es responsable de instalar y manejar la aplicación que desarrolló [4]; IaaS (infraestructura como servicio), este servicio provee máquinas, almacenamiento e infraestructura virtual y otros componentes de hardware, maneja toda infraestructura, sistema operativo, aplicaciones e interacciones que el usuario tenga con el sistema [5][6][7].
2. OpenStack y sus componentes
Openstack fue desarrollado en sus inicios por la empresa Rackspace en conjunto con la National Aeronautics and Space Administration de los Estados Unidos de América, es la plataforma de nubes privadas más utilizada en la actualidad, la que tiene una mayor cantidad de servicios disponibles y al ser desarrollada y mantenida por las empresas más importantes de tecnología a nivel internacional, es la que posee una mayor proyección a futuro. En la práctica se trata de un orquestador de software diverso que en conjunto proporciona una plataforma para adquirir servicios de infraestructura (IaaS), por ello deberá de llevar a cabo el proceso de la entrega de almacenamiento, cómputo o red que el usuario realizó como una petición al sistema, siendo el interventor que aplicará las normas y la comunicación con las granjas de servidores o servidores hacia los clientes, además de cumplir con alguna de las exigencias en demanda por usuarios, es libre, lo que lo hace aún más atractivo para su implementación, soporta nubes privadas y públicas, dejando como opción la configuración manual por parte del usuario, fácil de programar gracias a la variedad de API (herramientas implementadas en el software para facilitar la comunicación entre el usuario y el ambiente de nube) con las que cuenta OpenStack, soporta una variedad de hipervisores tales como: Xen, VMWare, entre otros. Además de lo anterior, soporta la estructura de nube de 3 nodos, tales como cómputo, almacenamiento y red, y sistemas operativos tales como Windows y Linux, este último la mejor opción para utilizar OpenStack en servidores. OpenStack puede ser utilizado con hipervisores KVM, KVM puede compartir páginas de memoria, y de esta forma nos permite ahorrar memoria y por tanto, dinero [8], [9].
2.1. OpenStack Compute (Nova)
Es el software que controla la infraestructura como servicio (IaaS) en la plataforma cloudcomputing, se encarga de iniciar las instancias (máquinas virtuales) y es responsable del ciclo de vida de las mismas. El servicio encargado de la gestión de la red virtual para cada instancia o para las múltiples instancias que formen parte de un proyecto, todo esto, sobre una arquitectura de mensajería y componentes los cuales comparten una base de datos centralizada. Este tipo de arquitectura, permite que los componentes se comuniquen a través de una cola de mensajes, se utilizan objetos diferidos para evitar el blo queo mientras que un componente espera en la cola de mensajes por una respuesta. Los componentes de nova son: DB, panel de control web, API, directorio auth, almacén de objetos, Schedule, red y compute [8], [10].
De la misma forma se encarga del hipervisor de cada servidor VM. Por lo tanto, proporciona recursos informáticos a pedido, mediante el aprovisionamiento y la administración de máquinas virtuales. Este módulo controla los estados y las respectivas transiciones de una máquina virtual. Nova está diseñada para escalar horizontalmente en hardware estándar [11].
2.2. OpenStackObject Storage (Swift)
Es un código abierto de almacenamiento masivo de objetos a través de un sistema escalable, redundante y tolerante a fallos. Las posibles aplicaciones de Object Storage son numerosas, ya sea como almacenamiento simple de ficheros, copias de seguridad, almacenamiento de streamings de audio/vídeo, almacenamiento secundario/ terciario, desarrollo de nuevas aplicaciones con almacenamiento integrado, etc. Ficheros y archivos se escriben en varias unidades, y el software Swift asegura que los datos se replican a través de un servidor clúster [8], [12].
2.3. OpenStackIdentityService (Keystone)
Proporciona servicios de autenticación para la nube al mantener un directorio central de usuarios. Estos usuarios se asignan a servicios a los que pueden acceder de acuerdo con políticas predefinidas. Brinda un servicio común para la autenticación y autorización, además de ser el encargado de gestionar usuarios, roles y a qué proyectos pertenecen, proporcionando un catálogo de todos los servicios OpenStack, para ello utiliza un sistema de autenticación basado en tokens (vale), es importante resaltar, que todos los servicios OpenStack utilizan Keystone para verificar las peticiones. Cada función de Keystone tiene un back-end vinculable que permite diferentes formas de usar el servicio, se otorga soporte para los backends estándares como LDAP o SQL, y KVS (Key-ValueStores) [8].
2.4. OpenStackImageService (Glance)
Proporciona almacenamiento de nivel de bloque persistente, llamado volúmenes, para usar con máquinas virtuales. Con este componente, las máquinas virtuales pueden tener dispositivos de bloque conectados y desconectados por el administrador de la nube y por los usuarios de acuerdo con sus necesidades de almacenamiento. Puede verse como un disco duro virtual [13].
Glance proporciona un mecanismo de acceso a plantillas de instancias, se trata de un servicio para la búsqueda y recuperación de imágenes de máquinas virtuales, pudiendo almacenar las imágenes directamente o utilizar mecanismos más avanzados como: usar Object Storage como servicio de almacenamiento, usar Amazon's Simple Storage Solution (S3) directamente, o usar Object Storage como almacenamiento intermedio de S3. Posee una base de datos para los metadatos de las imágenes, se corren servicios de replicación, para proveer consistencia y disponibilidad a través del clúster, auditoría y actualización [8], [14].
2.5.OpenStackDashboard (Horizon)
Se trata de un panel web de instrumentos OpenStack que proporciona a los administradores y usuarios una interfaz gráfica para el acceso, provisión y automatizar los recursos basados en la nube. Proporciona una interfaz gráfica para que los administradores y usuarios accedan a los recursos de la nube, teniendo en cuenta las políticas predefinidas. Además, la interfaz permite a los usuarios interactuar con otras herramientas de OpenStack, como el monitoreo [15]. El diseño extensible hace que sea fácil de conectar, exponer los productos y servicios de terceros, como la facturación, seguimiento además de herramientas de gestión adicionales. El tablero de instrumentos es sólo una forma de interactuar con los recursos OpenStack. Los desarrolladores pueden automatizar el acceso o construir herramientas para gestionar sus recursos mediante la API de OpenStack nativo o la API de compatibilidad EC2 [8], [14].
2.6.OpenStack Block Storage (Cinder)
Proporciona almacenamiento de nivel de bloque persistente, llamado volúmenes, para usar con máquinas virtuales. Con este componente, las máquinas virtuales pueden tener dispositivos de bloque conectados y desconectados por el administrador de la nube y por los usuarios de acuerdo con sus necesidades de almacenamiento [13], [14].
Es un dispositivo de almacenamiento a nivel de bloque persistente para uso con instancias de proceso OpenStack. Gestiona la creación, fijación y separación de dispositivos de bloque a los servidores. Además de utilizar almacenamiento simple, proporciona soporte unificado para numerosas plataformas de información, incluyendo Ceph, NetApp, Nexenta, SolidFire y Zadara. Proporciona la funcionalidad de administración para copias de seguridad de datos guardados en los bloques, los cuales se pueden restaurar o utilizar para crear nuevos volúmenes de almacenamiento. Como desventaja tiene que no se puede asociar un volumen a más de una instancia, y tampoco se puede modificar el volumen “en caliente”. Pero se pueden crear instancias a partir de volúmenes y que estos volúmenes dispongan de las aplicaciones que se desean. Cinder está conformado por cinder-api, cinder volumen, cinder-scheduler, lista de espera de mensajería [8].
2.7. OpenStackNetworking (Neutron)
Es el servicio de control de red, controla la red física de las máquinas, permitiendo a los usuarios crear redes y con ellas conectar instancias entre sí [8].
Proporciona administración de red y dirección IP, incluyendo modelos de red personalizados para diferentes aplicaciones o perfiles de usuario. Proporciona acceso a Internet a máquinas virtuales mediante direcciones IP públicas o privadas que pueden asignarse de forma dinámica o estática. Además, los usuarios pueden crear sus propias redes virtuales compuestas por múltiples máquinas virtuales que se ejecutan en diferentes LAN. Otras características incluyen VLAN para aislamiento de red y SDN (red definida por software) para servicios de nivel superior. Otra ventaja de Neutron es la virtualización del espacio de direcciones IP. Esta función se basa en los espacios de nombres de Linux, que permiten a diferentes usuarios reutilizar las mismas direcciones IP para sus máquinas virtuales. Finalmente, Neutron se integra con Horizon, lo que permite la configuración de la red a través de la interfaz gráfica [14].
2.8. OpenStackTelemetry
Este componente de OpenStack, recopila datos sobre la utilización de recursos físicos y virtuales de las nubes desplegadas, almacena esta información para su posterior análisis y activa acciones cuando se cumplan ciertos criterios definidos. Proporciona servicios de medición de componentes cloud para sistemas de facturación. Por ejemplo, la facturación se puede establecer en función de la cantidad de CPU o red consumida por cada usuario. Los datos se recopilan mediante notificación o sondeo, es decir, los servicios existentes pueden enviar notificaciones o se puede obtener información mediante el sondeo de la infraestructura. Telemetry está compuesto principalmente por tres servicios que son: Aodh (servicio de alarmas), Ceilometer (servicio de recolección de datos) y Panko (servicio de indexación de metadatos) [14].
3. Infraestructura como un servicio (IaaS)
La infraestructura como un servicio (IaaS), es un modelo de nube que permite poner a disposición del cliente el uso de infraestructuras informáticas como: espacio de disco, bases de datos, software, entre otros todos como un servicio, ofreciendo máquinas virtuales gestionadas en tiempo real, permitiéndole al usuario el abastecimiento de almacenamiento, procesamiento, redes y cualquier otro recurso de cómputo necesario para poder instalar software, incluyendo el sistema operativo y aplicaciones; sin embargo, el usuario no tiene control sobre el sistema de nube subyacente pero si del Sistema Operativo y sus aplicaciones [16], todo esto en una fracción de tiempo del que te tomaría regularmente implementar todos estos servicios desde cero en una topología de red tradicional. En el caso de las nubes públicas, IaaS otorga soluciones dentro de las empresas logrando con esto mejorar el rendimiento de los mismos, e incluso ofreciendo servicios gratuitos de utilización de software especializado durante un cierto período de tiempo durante el cual se puede utilizar un servicio sin necesidad de instalarlo y sin necesidad de recurrir a costos extras por el servicio adquirido, pero una vez concluido ese periodo, se tiene que pagar una cantidad de dinero proporcional al uso de la infraestructura de nube IaaS [17]. IaaS es el tipo de nube más completo debido a que se encuentran todos los servicios en funcionamiento para poder ser considerado como tal, teniendo la necesidad de ofrecer recursos online dentro de los cuales se tiene la utilización de software con lo que se considera como SaaS tales como Google Apps, Office 365 o Adobe Creative Cloud, y para la ejecución del IaaS se utiliza una plataforma sobre la cual lanzar o instanciar el software y los sistemas operativos con lo que se puede considerar también PaaS, como ejemplo encontramos a Microsoft Windows AzureAppfabric, IBM Smart Cloud o RedhatOpenshift [18].
4. OpenStack en las instituciones de educación superior
En las instituciones de educación superior se requieren acceso a diversos dispositivos de cómputo con diferentes sistemas operativos para ayudar en el proceso de enseñanza-aprendizaje de diversas áreas; sin embargo, el alto costo del hardware, y la rápida además de la constante actualización de este, convierte el requerimiento de TI (Tecnologías de la Información) de las IES en algo que consume una gran parte del presupuesto. Aunado a esto, un curso de TI de educación superior, regularmente necesita software específico corriendo en un sistema operativo específico con una configuración de hardware particular. Los diversos requisitos de los sistemas operativos y su complejo proceso de instalación y mantenimiento plantean dificultades para gestionarlos [19]. El cómputo en la nube presenta una solución para los requerimientos de hardware en las IES, ya que al no requerirse la adquisición constante de hardware, así como del correspondiente mantenimiento de este, implica una solución a este problema, sin embargo, al estar en un modelo de pago por uso, implica también algunos problemas tales como el costo de utilizar soluciones de bigdata o cómputo que requiera de un uso prolongado de las soluciones de cómputo en la nube, lo cuál eleva el costo incluso arriba de adquirir hardware propio. Por otro lado, la virtualización se presenta como una solución a los diversos requerimientos de hardware y software especifico, ya que en la virtualización, puedes elegir el hardware virtual y software que más se alinee a las necesidades de la institución, pero presenta el gran problema de que requiere una gran de cantidad de tiempo de instalación y configuración inicial cada vez que se requiera de alguna instancia de cómputo, además de que no te permite el crecimiento horizontal, ya que se limita a las características del software donde se encuentra ejecutándose el hipervisor[20].
Se han documentado casos de IES donde la implementación de una nube privada es una solución que genera resultados interesantes, desde la implementación de almacenamiento en la nube para estudiantes y personal de la institución con software Open Source [21], hasta una compleja implementación de una nube privada distribuida, con la participación de diferentes universidades de Brasil trabajando en conjunto [20], en esta implementación se realizan diversas mediciones del uso de la infraestructura de cómputo o del tráfico de red generado por la nube y cual es su impacto en la infraestructura de red existente en cada una de las IES participantes en esta nube privada distribuida. Esto da una muestra de la viabilidad de la implementación de una nube privada distribuida con la participación de diferentes IES a través del software Openstack.
OpenStack se presenta como una solución al proporcionar IaaS para recursos de hardware y un mecanismo para administrar y distribuir máquinas virtuales específicas de cursos, permitiendo además el crecimiento horizontal al poder agregar más nodos de cómputo a la solución según se requiera. Esta solución puede ir incluso más allá al poder implementar nubes IaaS colaborativas y distribuidas conocidas como Plataform for IaaS Distribution [20], la cuál permite que diferentes Instituciones de Educación Superior puedan proporcionar hardware para poder hacer crecer el poder de cómputo de la IaaS, todo esto orquestado a través de OpenStack.
5. Consideraciones finales
Como consideraciones finales podemos decir que, se abordó de una manera general las particularidades del cómputo en la nube y la virtualización, las características de las nubes privadas y públicas, así como también algunas de las ventajas y desventajas de su implementación en las Instituciones de Educación Superior.
De igual manera se han señalado las características de OpenStack para la orquestación de una nube privada IaaS y las posibilidades que este sistema tiene a futuro, ya que se encuentra en constante actualización, además de adaptación a las nuevas tecnologías. Pero, sobre todo también se señala las posibilidades del uso de esta tecnología para el trabajo colaborativo de diferentes IES al aprovechar el poder de cómputo existente en ellas, abriendo la posibilidad de tener una nube privada IaaS distribuida, con un gran poder de cómputo al servicio inmediato de las necesidades de cada una de las instituciones participantes de un proyecto de este tipo, y lo mejor de todo, con un costo prácticamente nulo por el uso de software, teniendo la posibilidad así de invertir una mayor porción de presupuesto a la adquisición de Hardware o a la expansión del ya existente, además de crear un lazo de trabajo colaborativo entre las diferentes IES del país o bien del extranjero.
6. Referencias
[1] Sosinsky, B. (2010).Cloud Computing Bible. Indianapolis, Indiana: Wiley Publishing.
[2] Mell, P., Grance, T. (2011). The NIST definition of cloud computing. Recuperado de: https://nvlpubs.nist.gov/nistpubs/Legacy/SP/nistspecialpublication800-145.pdf
[3] Basha, S., Dhavachelvanm, P. (2011). Survey on E-Business Models. International Journal of Engineering Science and Technology (IJEST), 3 (5), 3631–3639.
[4] Al-Zoube, M.(2009). E-Learning on the Cloud. InternationalArab Journal of e-Technology, 1 (2), 58-64.
[5] Kurose, J. F., Ross, K. W. (2007). Computer networking: a top down approach. 4th Edition. USA: Addison Wesley.
[6] Doelitzscher, F., Sulistio, A., Reich, C., Kuijs, H., Wolf, D. (2011). Private cloud for collaboration and e-Learning services: From IaaS to SaaS.Computing, 91, 23-42. doi: 10.1007/s00607-010-0106-z
[7] Odun-Ayo, I., Oladimeji, T., Odede, B. (2018). Cloud computing economics: Issues and developments. Trabajo presentado en Conference: The International MultiConference of Engineers and Computer Scientists, Hong, Kong.
[8] Sefraoui, O., Aissaoui, M., Eleuldj, M. (2012). OpenStack: Toward an Open-source Solution for Cloud Computing. International Journal Computer Applications, 55 (3), 38–42. doi: 10.5120/8738-2991
[9] Craig-Wood, K. (2013). Open source as the secure alternative: A case study. Computer Fraud & Security, 2013 (2), 15-20. doi: https://doi.org/10.1016/S1361-3723(13)70021-6
[10] Teixeira, J. (2014). Developing a cloud computing platform for Big Data: The OpenStack Nova case. Trabajo presentado en IEEE International Conference on Big Data, Washington, DC, USA. doi: 10.1109/BigData.2014.7004496
[11] Rocha, L., Vazquez, A. (2014). Benefits of adoption of Cloud Computing in Mexico. Ecorfan Jorunal, 5 (12), 2043-2056.
[12] Jain, P., Datt, A., Goel, A., Gupta, S. C. (2016). Cloud service orchestration based architecture of OpenStack Nova and Swift. Trabajo presentado en International Conference on Advances in Computing, Communications and Informatics (ICACCI), Jaipur, India. doi:10.1109/ICACCI.2016.7732425
[13] Ding, W., Gu, C., Luo, F., Chang, Y. (2018). Construction and performance analysis of unified storage cloud platform based on OpenStack with Ceph RBD. Trabajo presentado en 3rd IEEE International Conference on Cloud Computing and Big Data Analysis (ICCCBDA), Chengdu, China.
[14] Intel. (2011). OpenStack: Open Source Software for Building Private and Public Clouds. Recuperado de: https://www.intel.com/content/dam/www/public/us/en/documents/solution-briefs/openstack-open-source-building-clouds-brief.pdf
[15] Cañenguez Serbino, D. M., Chicas Villegas, R. W., Megía García., F. J.,Navarrete, B. A. (2017). Creación de una infraestructura de alta disponibilidad reutilizando hardware a través de OpenStack. Trabajo presentado en X Congreso de Computación Para El Desarrollo (COMPDES), San Carlos de Guatemala. Recuperado de: http://www.compdes.org/compdes2017/docs/LibroCompdes2017.pdf
[16] Urueña, A., Ferrari, A., Blanco, D., Valdecasa, E. (2012). Cloud Computing - Retos y Oportunidades. España: ONTSI.
[17] Rackspace Support. (2017). Understanding the Cloud Computing Stack SaaS, Paas, IaaS. Recuperado de: https://support.rackspace.com/how-to/understanding-the-cloud-computing-stack-saas-paas-iaas/
[18] Lugo Cardozo, N. E. (2014). Tecnologías de virtualización en los sistemas informáticos de las organizaciones empresariales del estado Zulia. Télématique: Revista Electrónica de Estudios Telemáticos, 13 (2), 49-67. Recuperado de: https://dialnet.unirioja.es/servlet/articulo?codigo=5157975
[19] Bhatia, G., Al Noutaki, I., Al Ruzeiqi, S., Al Maskari, J. (2018). Design and implementation of private cloud for higher education using OpenStack. Trabajo presentado en Majan International Conference (MIC), Muscat Oman.
[20] Souza Couto, R., Sadok, H., Cruz, P., da Silva, F. F., Sciammarella, T., Campista, M., M. K. Costa, L. H., Braconnot Velloso, P., Goncalves Rubinstein, M. (2018). Building an IaaS cloud with droplets: a collaborative experience with OpenStack. Journal of Network and Computer Applications, 117, 59–71.
[21] Vásquez-Bermúdez, M., Hidalgo, J., Avilés-Vera, M. P. (2017). Servicio de nube para la comunidad académica de la carrera de computación e informática de la universidad agraria del ecuador. Revista de Investigación en Tecnologías de Investigación (RITI), 5 (10), 1-6.