¿Qué es OpenStack?
OpenStack es un conjunto de programas que forman un entorno en la nube. El término cloud computing, es decir, computación en la nube, se refiere al acceso descentralizado a programas y datos. En la nube, los datos se almacenan en realidad en diferentes lugares, que pueden estar separados geográficamente. Este sistema requiere una infraestructura que permita acceder a ellos de forma descentralizada sin dejar de garantizar la máxima seguridad. Al fin y al cabo, los datos sensibles no solo deberían gozar de alta disponibilidad, sino también estar protegidos frente al acceso por parte de terceros y frente a posibles pérdidas.
Bajo la división Arsys Cloud Solutions, diseñamos Soluciones a tu medida.
La nube como solución de almacenamiento segura y económica
Las soluciones en la nube ofrecen la ventaja insuperable de permitir a los dispositivos finales acceder a ellas sin necesidad de contar con hardware de alto rendimiento. La potencia de procesamiento se da en la cloud, en la nube, y se puede escalar de forma flexible: el único requisito es una conexión a Internet rápida y estable. Esta ventaja permite crear una red compleja de forma más económica, ya que se eliminan los altos coses de hardware. Los costes derivados de operar en la nube suelen limitarse a los recursos que se utilicen. Es posible utilizar el entorno cloud desde servidores virtuales alquilados, un planteamiento muy atractivo para pequeñas empresas y startups que aún no pueden permitirse gastar mucho en infraestructuras informáticas.
OpenStack: lo que hay que saber
El paquete de software de OpenStack incluye todos los componentes necesarios para crear un entorno cloud. Aunque se trata de un proyecto relativamente joven, ya se considera maduro en su evolución y seguro. OpenStack fue fundado en 2010 por la NASA, la agencia estadounidense responsable de la investigación aeronáutica y aeroespacial, junto con la empresa Rackspace. Por aquel entonces, la NASA deseaba contar con un software para sus proyectos que permitiera crear redes computacionales de forma flexible y, en parte, limitada en el tiempo. Para lograrlo, prestigiosas empresas como AT&T, RedHat, Canonical (desarrolladora de Ubuntu), Intel, IBM y Huawei se pusieron manos a la obra.
OpenStack solo funciona en sistemas Linux y se publicó bajo la licencia Apache. Su código fuente es, por lo tanto, de libre acceso y el programa puede usarse ilimitadamente de forma gratuita. En octubre de 2019 se presentó la ya vigésima versión de OpenStack con el nombre de Train.
¿Qué componentes forman OpenStack?
La cloud de OpenStack está compuesta por diferentes elementos, entre los cuales destacan los siguientes:
- Nova (compute service)
- Keystone (identity service)
- Glance (image service)
- Neutron (networking)
- Cinder (block storage)
- Swift (object storage)
- Horizon (dashboard)
Nova
Nova es el componente de computación de la nube OpenStack y el primero con el que se inició el proyecto en 2010. Es, por así decirlo, la columna vertebral sobre la que recae la tarea más importante: la gestión de los ordenadores virtuales. Desde entonces, Nova se ha desarrollado hasta el punto de poder gestionar grupos enteros de ordenadores virtuales, cada uno de los cuales se conecta con los demás de forma sináptica. En esta conexión puede haber cualquier número de puntos nodales (es decir, de sinapsis). Como base de las computadoras virtuales, Nova utiliza preferentemente los hipervisores libres de licencia del KVM (máquina virtual basada en el núcleo) de Linux, así como el monitor XEN, desarrollado por la universidad de Cambridge.
Keystone
Keystone es el responsable de conceder derechos y de la autenticación de los usuarios (identity). En cloud computing, esto no solo incluye ordenadores individuales, sino también redes enteras. Por ello, es muy importante asegurar una buena autenticación de los usuarios y aislar los elementos parciales. Keystone concede a cada usuario de la nube (a cada mandant) condiciones de acceso individuales, que incluyen explícitamente qué derechos le corresponden.
Glance
Glance se encarga de ofrecer las imágenes, es decir, la representación de los soportes de datos de las máquinas virtuales. Puede, además, guardar y restaurar dichas imágenes, de forma que es posible crear bibliotecas con las plantillas de los sistemas requeridos, para luego recrear las imágenes en la red tantas veces como se quiera. Glance también garantiza la disponibilidad permitiendo que las máquinas en cuestión sean reconstruidas en cualquier momento.
Neutron
Neutron (anteriormente llamado Quantum) se encarga de crear la infraestructura de red virtual de OpenStack: es el componente que hace posible la división de subredes, la gestión de las direcciones IP y la creación de redes virtuales (VLAN). Neutron también funciona con VPN (Virtual Private Networking). De esta forma, hace posible, en primer lugar, el intercambio de datos entre los componentes de OpenStack como, por ejemplo, las máquinas virtuales individuales. Además, Neutron es el responsable de generar el cortafuegos o firewall de la red.
Cinder
Cinder se encarga de crear memorias permanentes en formato de almacenamiento en bloque como, por ejemplo, discos duros. Lo hace mediante virtualización, lo cual permite adaptar el volumen como se desee (escalabilidad). La memoria en bloque de Cinder se comporta como un disco duro físico en el ordenador. La seguridad de los datos se consigue de forma sencilla, ya que el usuario accede a los discos a través de Cinder, mediante una interfaz que incluye una función de snapshot (copia instantánea de volumen).
Swift
Swift proporciona almacenamiento de objetos: puede integrar diversos sistemas de almacenamiento distribuido y permite así usar objetos de datos (que a primera vista parecen estar distribuidos de forma aleatoria) en unidades de disco comunes. De esta forma, de ser necesario, puede crearse redundancia de forma transparente, puesto que los objetos pueden copiarse en diferentes soportes físicos. Además, el espacio de almacenamiento que ofrece Swift también puede usarse con Cinder o Glance. También es posible utilizar como base de la estructura el almacenamiento distribuido de objetos creado con Ceph o GlusterFS.
Horizon
Horizon es el dashboard, es decir, el cuadro de mando o interfaz gráfica desde la que se pueden gestionar los componentes del conjunto OpenStack. Desde Horizon también se lleva a cabo la administración de usuario. Su diseño y funcionalidad son personalizables.
Interacción de los componentes
La cloud de OpenStack es una réplica en software de una infraestructura informática que admite prácticamente todos los niveles de complejidad. Los módulos, que, por lo general, deben estar disponibles en formato físico, son generados virtualmente, según su función, por alguno de los componentes descritos anteriormente. El espacio de almacenamiento necesario es creado por Swift y, según convenga, presentado al usuario gracias a Cinder como espacio de almacenamiento en bloque. La funcionalidad de cada uno de los servidores y ordenadores de la red es posible gracias a Nova, que se encarga de gestionarla. Al conjunto o pool de máquinas virtuales disponibles se accede mediante Glance.
Neutron, por su parte, es el componente encargado de las interconexiones. Garantiza la seguridad mediante un firewall y, si es necesario, también realiza acciones de monitoreo. Keystone regula la autenticación y los derechos de los usuarios. Gracias a Horizon, el sistema puede administrarse de forma cómoda desde el inicio. Si, de forma inesperada, se necesita más espacio de almacenamiento o un mayor rendimiento, se pueden realizar las modificaciones que correspondan.
¿Qué ventajas e inconvenientes tiene OpenStack?
La OpenStack cloud ofrece las siguientes ventajas:
- Pocos requisitos para su uso: los servicios en la nube por lo general pueden usarse desde cualquier dispositivo final con conexión a Internet.
- Alto nivel de seguridad de los datos, frente a terceros y en caso de avería
- Espacio de almacenamiento y capacidad de rendimiento escalables
- Servicio en la nube que hace posible el trabajo colaborativo
- Acceso desde cualquier lugar
- Buena aceptación y popularidad
- Estándares unificados
Desafortunadamente, el uso de OpenStack también va ligado a algunas desventajas:
- Rápido desarrollo de nuevas funciones: OpenStack es una solución de cloud computing abierta y, por lo tanto, muy dinámica. Constantemente surgen nuevas funciones y se eliminan otras.
- Los proyectos open source no suelen ofrecer soporte técnico oficial y organizado. Si bien se pueden encontrar muchos manuales y artículos de ayuda en Internet, la búsqueda del contenido adecuado puede ser larga y tediosa, ya que, al contrario de lo que ocurre con los sistemas comerciales, no hay un fabricante concreto a quien dirigirse.
- Los hipervisores más compatibles son KVM y XEN, lo cual puede causar problemas si se integran otras soluciones de virtualización, como podría ser VMWare. Algunos usuarios afirman haber tenido problemas de red al utilizar VMWare con OpenStack.
¿En qué casos suele utilizarse OpenStack?
Puesto que se trata de un proyecto libre de licencia, el uso de OpenStack apenas conlleva costes. Una vez se ha instalado el sistema, se puede operar con él de forma muy sencilla. Si se utilizan los servidores virtuales del servicio de hosting correspondiente, se puede disfrutar de una solución modesta de computación en la nube por precios que rondan los 10 o 20 euros al mes. Así, se puede implementar OpenStack como plataforma para servicios privados en cloud: para crear una wiki, por ejemplo. También los proyectos personales o las ideas de empresa, como podría ser la de una tienda online, pueden llevarse a cabo usando este servicio.
Open Stack para pymes y grandes empresas
Para las pymes, OpenStack es una opción ideal para dar el salto a la computación en la nube y poder almacenar sus datos y aplicaciones. Una opción muy conveniente es, por ejemplo, la creación de una public cloud, es decir, una nube pública. La gestión de derechos de acceso a la cloud de OpenStack ofrece muchas posibilidades para trabajar de forma colaborativa, con diferentes cuentas de usuario.
Las empresas grandes, por su parte, pueden usar OpenStack para ubicar en la nube parte de su infraestructura de red, como podrían ser los datos o programas más sensibles. OpenStack también puede usarse en el marco de un sistema multicloud o como parte de una nube híbrida o hybrid cloud. De este modo, se reduce el riesgo de que se averíen los servidores de aplicaciones, ya que se pueden replicar tantas veces como se quiera. Los datos se guardan en el sistema siempre de forma redundante, para poder descartar cualquier pérdida en caso de que el hardware falle.
Alternativas a OpenStack
Si no quieres recurrir a OpenStack, puedes recrear tú mismo los servicios que necesites usando, por ejemplo, servidores virtuales y memorias en línea. También podrías incluso implementar soluciones como Owncloud o Nextcloud.
Otros proyectos que ofrecen servicios similares son:
- OpenNebula (gratuito)
- VMWare (de pago)
- Microsoft AzureStack (de pago)
- Google Anthos (de pago)
Además, cada vez más empresas utilizan la cómoda opción de dejar la instalación y gestión de su cloud en manos de empresas profesionales (managed cloud).
Si no te atreves con OpenStack, también puedes optar por contratar una nube privada con IONOS, que te ofrece la máxima flexibilidad y una infraestructura adaptada perfectamente a tus necesidades.
Conclusión
Sea cual sea la opción que elijas a la hora de usar servicios de cloud computing, siempre habrá buenas razones que la respalden. En lo que a los costes y a la flexibilidad se refiere, los servicios en la nube son inmejorables. Se trata, además, de una opción más sostenible en el sentido medioambiental, ya que evita el uso de hardware adicional que, quizá, se implementaría de forma ineficiente.
En cualquier caso, el factor más importante es sin duda la seguridad de los datos. La confianza ha de ser total cuando se toma la decisión de dejar los propios datos o los de los clientes en manos de servicios externos. En este aspecto, por lo tanto, vale la pena invertir esfuerzos en crear tu propia cloud con OpenStack, un proyecto consolidado y de renombre.