OpenStack es uno de los sistemas operativos en la nube de más rápido crecimiento. Sin embargo, la palabra está muy confundida y mucha gente no tiene la idea real detrás de ella.
En este artículo intentamos diseccionar la tecnología detrás de OpenStack y cómo surgió. Pero antes de profundizar en OpenStack, necesitamos comprender en profundidad algunos aspectos de la tecnología detrás de OpenStack llamada Virtualización.
Fuente de la imagen: pixabay.com¿Qué es la virtualización?
La virtualización es una tecnología que nos permite crear instancias virtuales de contrapartida del mundo real. Por ejemplo, una máquina física real se crearía en máquinas virtuales. Las máquinas virtuales son solo una implementación virtual de sus máquinas reales.
Se puede establecer una analogía con los emuladores. Las máquinas virtuales actúan más del mismo tipo, solo que en lugar de emular juegos, emulan una máquina completa.
La tecnología que actúa detrás de la virtualización y permite la creación de instancias virtuales se llama hipervisor. Ahora todas las máquinas virtuales se ejecutan en una máquina física.
Las máquinas virtuales en sí mismas pueden ser de cualquier tipo de máquina con cualquier configuración dada, sin embargo, debe ser menor que la de la máquina en la que se genera. Lo que hace el hipervisor es que cierra la brecha entre el núcleo de su máquina física y el núcleo de la máquina virtual.
Captura las llamadas del sistema, convierte el código de operación del lenguaje de nivel de máquina, lo procesa y luego lo transforma en el código de operación que luego sería entendido por la máquina virtual.
La máquina en la que una máquina virtual se "genera" o se crea se llama máquina host. La máquina virtual que se genera o crea el hipervisor en la máquina host se llama máquina Invitada.
Del mismo modo, el sistema operativo que se ejecuta en la máquina host se llama sistema operativo host, y el sistema operativo que se ejecuta en la máquina huésped se llama sistema operativo invitado.
La máquina host y los sistemas operativos host siempre son significativamente más potentes que la máquina huésped y los sistemas operativos invitados. Esto se debe a que el hardware real que proporciona la potencia de procesamiento reside solo en la máquina host.
El hipervisor también se instala en la máquina host donde realiza la mayor parte de su operación, utilizando la potencia del propio sistema operativo host. La máquina virtual utiliza el hipervisor para obtener acceso a parte del hardware de la máquina host real.
Es función del hipervisor proporcionar a la máquina virtual el hardware virtual requerido. Las máquinas virtuales generadas por el hipervisor generalmente no tienen idea de que son virtuales.
El hardware requerido se suministra al generar la máquina virtual. Una vez engendrada, en una red real, la máquina virtual sería tratada como un solo nodo.
Tipos de hipervisores
Los hipervisores se dividen en dos tipos principalmente:
Tipo 1: hipervisor nativo o de metal desnudo:
Estos hipervisores se ejecutan directamente en el hardware del host y tienen una estrecha integración con el núcleo del host. Administran los sistemas operativos invitados directamente y las máquinas virtuales generadas aparecen como un proceso. También se les llama hipervisor de metal desnudo. Los ejemplos incluyen Citrix, XenServer y VMW son ESX / ESXi.
Tipo 2: hipervisores alojados:
Estos hipervisores se ejecutan como un programa típicamente instalado en los sistemas operativos host. Generan una máquina virtual y los abstraen del sistema operativo host. Se puede establecer una analogía con los emuladores de juegos. Los ejemplos incluyen QEMU, VirtualBox y VMWare Workstation.
También hay un tercer tipo de hipervisor híbrido como la máquina virtual basada en kernel (KVM) que, aunque se ejecuta como un programa típico, pero al ejecutarse, se integra estrechamente con el kernel y, posteriormente, con el hardware de la máquina host.
KVM es quizás el hipervisor de código abierto más famoso, y para OpenStack, KVM se usa ampliamente. Todos estos hipervisores funcionan creando algo llamado imágenes.
Estas imágenes son copias de un sistema operativo instalado o un sistema operativo personalizado con requisitos especiales de kernel. Más tarde, cuando el usuario usa la imagen, modifica la imagen de acuerdo con los datos almacenados por el cliente.
Este espacio de almacenamiento es nuevamente administrado por el hipervisor, que ve que los datos del cliente se conservan y está presente exactamente en el mismo estado que tenía antes de que el usuario lo abandonara.
La virtualización era necesaria para permitir el uso eficiente del hardware. Especialmente para los operadores de centros de datos en la nube, la virtualización fue una bendición. Utilizando diferentes tipos de hipervisores, los proveedores de la nube utilizaron rápidamente la virtualización para generar máquinas virtuales, conmutadores virtuales, enrutadores virtuales y otras instancias virtuales de hardware.
Además, los integraron estrechamente para crear cualquier tipo de red o máquina según lo requieran los clientes. Mediante la virtualización, un operador de centro de datos podría establecer varias máquinas en lugar de una sola.
Y dado que la nube se trata de alquilar su potencia informática, el modelo de ingresos aumentó sustancialmente al alquilar varias máquinas virtuales en lugar de una sola máquina física.
También aumentó la reutilización, ya que la máquina virtual que no se está utilizando podría alquilarse a otros clientes. Entonces, la virtualización dominaba y cambiaba las reglas del centro de datos.
En lugar de comprar un hardware completo por un costo considerable, los usuarios comerciales tomaron prestadas instancias virtualizadas del hardware, reduciendo el costo de su infraestructura de TI.
Por lo tanto, la virtualización avanzó a pasos agigantados, sin embargo, los operadores de centros de datos enfrentaron un gran problema que detuvo su progreso de manera significativa e incluso redujo sus ingresos hasta el punto de enfrentar pérdidas.
¡El gran problema que los operadores de centros de datos no podían visualizar era la administración! A medida que la virtualización evolucionó y proporcionó instancias virtualizadas de casi cualquier hardware posible, surgió la dificultad en el proceso de administrar esas multitudes de hardware virtual.
Imagínese como jefe de su negocio, desearía 10 máquinas diferentes en diferentes lugares en diferentes zonas horarias. Desearía que cada uno de ellos tuviera requisitos de hardware y software por separado, y también desea realizar un seguimiento de la cantidad de datos que fluyen dentro y fuera de él.
Como operador del centro de datos, respeta las demandas del cliente y crea esas 10 máquinas virtuales. Sin embargo, imagine que junto con la creación de esas máquinas virtuales, sigue recibiendo nuevas demandas de más máquinas virtuales, cada una con requisitos aún más complejos.
¿Cómo gestionaría tantas máquinas virtuales, cada una con su propio conjunto complejo de requisitos y configuraciones? Además de eso, deberá facturar con precisión cada una de las máquinas virtuales que se alquilan. Supongamos que el cliente tiene diferentes demandas de facturación.
Para una máquina que se usa como servidor, la facturación dependería de la cantidad de datos que recibe la máquina. Para otra máquina, que está actuando como cliente, la facturación se realizará según el tiempo que la máquina virtual del cliente esté encendida.
Y estos requisitos son para una sola persona. Como operador de un centro de datos, uno posiblemente tiene que operar miles y miles de hardware virtual, cada uno con sus propias demandas de red, hardware y software.
Se requería una interfaz de administración adecuada para poner a la organización en el desorden que se estaba convirtiendo en un centro de datos virtualizado. En lugar de utilizar líneas de comandos y secuencias de comandos ampliamente, se requería un "sistema operativo en la nube" bien construido para proporcionar un mantenimiento adecuado al centro de datos. Y ahí es donde entra en juego OpenStack.
Cursos recomendados
- Curso en línea sobre AJAX
- Paquete de entrenamiento profesional de prueba rápida
- Curso en línea sobre ExtJS
- Paquete de entrenamiento CISSP
¿Qué es OpenStack?
Como se mencionó al principio, OpenStack es esencialmente un sistema operativo en la nube. Por sistema operativo, nos referimos a una plataforma de software libre y de código abierto para la computación en la nube. Comenzó en 2010 como un proyecto conjunto de Rackspace Hosting y de la NASA.
Inicialmente, se comenzó a abordar este problema particular del centro de datos, que era cómo administrar muchas máquinas virtuales. A partir de ahí, rápidamente creció hasta convertirse en una comunidad de pleno derecho con compromiso tecnológico y soporte de algunas de las marcas más famosas en Tecnología de la Información, como Oracle, VMWare, Yahoo Inc., etc.
OpenStack está respaldado actualmente por la fundación OpenStack, una entidad corporativa sin fines de lucro establecida en 2012. La comunidad de OpenStack, cada vez más próspera, ha logrado lanzar una mejor versión de su software OpenStack cada seis meses en un ciclo de lanzamiento basado en el tiempo con hitos de desarrollo claros en cada de sus lanzamientos.
Cada versión agregó más, pasando de ser un simple software de administración de centros de datos a ser una sofisticada plataforma de software en la nube.
Proporcionó una interfaz para administrar casi todos los aspectos de una máquina virtual, desde la creación de máquinas virtuales a pedido con solo hacer clic en un botón hasta la recopilación de datos de la red, OpenStack se ha expandido ampliamente.
Cada año, cada dos años, la comunidad se reúne para planificar nuevas funciones y soporte en OpenStack Design Summit, donde los planes de diseño de la extensa comunidad de OpenStack son revisados y ensamblados.
OpenStack permite a los usuarios ensamblar e implementar máquinas virtuales de manera eficiente. Ofrece algo llamado "interfaz gráfica de usuario" para acceder a casi todas las funciones requeridas por el usuario final.
Volviendo a nuestro ejemplo anterior, querría 10 máquinas, cada una con su propio conjunto de requisitos. Con una interfaz de línea de comando anterior, hubiera sido muy engorroso administrar todo por su cuenta.
Con OpenStack, todo lo que necesita hacer es hacer clic en algunos botones y configurar su máquina virtual en consecuencia. Supongamos que si desea una red extensa adecuada y bien construida, puede administrar y ver la red de su computadora en gráficos y estadísticas en tiempo real.
Si desea funciones avanzadas como análisis de datos y soporte de clúster HADOOP, incluso puede facilitarlo fácilmente en su máquina virtual. Otras funciones estándar como almacenamiento, CPU, memoria y uso de núcleo también se pueden configurar muy fácilmente en la interfaz gráfica de usuario presentada por OpenStack.
También se proporciona OpenStack con soporte de facturación en tiempo real, mediante el cual puede realizar un seguimiento de las estadísticas de cada máquina virtual generada con el software. Incluye estadísticas en tiempo real, como uso de memoria, uso de disco, uso de núcleo, etc.
Además, dado que OpenStack está escrito principalmente en lenguaje Python, también se beneficia de las secuencias de comandos. Por lo tanto, también se ocupa de la automatización de la gestión de miles de máquinas virtuales. Puede escribir un script para decir, programar la automatización de la máquina virtual cuando se debe encender y cuándo se apagará.
Al automatizar de esta manera, puede crear una plataforma de computación en la nube muy bien construida y completa. Y dado que OpenStack es completamente gratuito, cualquiera puede usar el código fuente para desarrollar y agregar sus propias características, completamente personalizadas para satisfacer sus necesidades organizacionales o personales. HP lo ha hecho lanzando sus propias versiones de la nube llamadas HP Helion.
OpenStack, bajo la terminología de la nube, caería en la categoría de Infraestructura como servicio (IaaS), lo que significa que su principal utilizado para ayudar a construir infraestructura en la que se desplegarían las máquinas virtuales.
Básicamente, facilita el desove de las máquinas virtuales. Es en estas máquinas virtuales o "plataformas" que los clientes alquilarían según sus requisitos.
Componentes básicos de OpenStack
OpenStack se ha diversificado para tener muchos componentes diferentes, ya que al ser de código abierto, se podrían agregar e integrar varios componentes con el software.
Sin embargo, en el corazón del software, se encuentran solo tres componentes básicos de OpenStack:
-
Componente de almacenamiento:
El componente de almacenamiento OpenStack consta de Cinder y Swift. El objetivo principal del componente es almacenar los datos de las máquinas virtuales generadas y en funcionamiento.
-
Componente de infraestructura:
También llamado Nova Compute, este componente es responsable de administrar todos los aspectos de la administración y la creación de una máquina virtual. Esto incluye asignar el hardware requerido, interactuar con los hipervisores y actuar como un nodo central en la interacción con todos los demás componentes necesarios para generar máquinas virtuales.
-
Servicios de imagen:
También llamado Glance, proporciona servicios de búsqueda y recuperación de imágenes. Lo que esencialmente hace es que proporciona soporte para almacenar y administrar diferentes réplicas o imágenes de máquinas virtuales. Por lo tanto, según los requisitos, se puede recuperar cualquier tipo de imagen para el cliente.
Conclusión
OpenStack, desde su humilde comienzo como un software de código abierto para la administración de la nube, se ha convertido rápidamente en una gran comunidad de entusiastas de la nube que han hecho que OpenStack se ramifique en diferentes áreas de la nube.
En el corazón de OpenStack se encuentran la virtualización y los hipervisores, lo que garantiza que OpenStack como plataforma de administración pueda utilizar el poder de las máquinas virtuales.
Normalmente implementado como un sistema operativo para infraestructura como servicio (IaaS), ofrece una opción más fácil para administrar miles de instancias virtualizadas.
El futuro de OpenStack parece brillante, ahora con grandes datos y otros aspectos de la tecnología de nube más recientes integrados a la perfección. Y con una comunidad cada vez mayor, Open Stack está listo para crecer a un ritmo significativo.
Artículos recomendados
Aquí hay algunos artículos que lo ayudarán a obtener más detalles acerca de Open Stack vs Virtualization, así que simplemente vaya al enlace.
- Lo mejor para aprender Azure Paas vs Iaas
- ¿Quiere saber acerca de las preguntas de la entrevista AJAX?
- Guía completa para Android y Open Source Security (OS)
- Mitos y conceptos erróneos sobre el software de código abierto
- ¿Qué tecnología es la mejor? Computación en la nube o virtualización
- Las 10 principales comparaciones útiles entre la computación en la nube y la virtualización