Openstack Queens ha sido lanzado y es “Container-Tastic”
2018-04-10
Machine-translated — the English original is authoritative.
El número de proyectos de Openstack relacionados con tecnologías de contenedores está creciendo rápidamente, junto con la confusión que rodea sus diferentes casos de uso. Esperemos que esta publicación ayude a aclarar cuándo y por qué utilizar estos proyectos.
En primer lugar, sin embargo, ¿por qué contenedores? ¿Cuál es la gran novedad? ¿No son solo otro “sabor del mes” liderado por los desarrolladores? Si aún no has leído sobre contenedores o no los has utilizado en desarrollo/producción, es muy probable que trabajes para una empresa que aún utiliza aplicaciones monolíticas tradicionales y métodos de despliegue que pueden estar en centros de datos privados o en la nube pública.
Antecedentes
Durante los últimos 5 años, una empresa de contenedores, Docker, lanzó software y conjuntos de herramientas conocidos con el mismo nombre (aunque el proyecto de código abierto fue renombrado recientemente de manera confusa como Moby), lo cual simplificó enormemente el consumo del mecanismo de aislamiento de procesos y sus recursos dentro de un sistema operativo respecto a otros procesos. Estos mecanismos (espacios de nombres de red, cgroups, etc.) llevan muchos años existiendo, pero necesitabas ser un científico de cohetes (sin intención de hacer un juego de palabras) para comprender las llamadas al sistema necesarias para invocar el aislamiento. Docker envolvió estas llamadas al sistema en una API muy fácil de usar que facilitó la adopción masiva de contenedores: personas como yo de repente nos vimos empoderados.
Inicialmente, Linux era el único sistema operativo host soportado, pero en los últimos dos años Microsoft se ha volcado por completo en “imitar” la experiencia de contenedores en Windows: todavía es algo tosco en los bordes, pero mejora rápidamente. También se puede ejecutar en algunos mainframes ahora.
Sin embargo, Docker no se quedó ahí, configuraron muy inteligentemente un repositorio global gratuito que se podía utilizar para almacenar imágenes de contenedores (archivos yaml). La industria del software abrazó rápidamente esta nueva tecnología junto con el repositorio https://hub.docker.com, llenándolo rápidamente con distribuciones de sus ofertas de software empaquetadas como contenedores listos para usar.
Así que ahora tenemos un motor de contenedores con una fantástica biblioteca de aplicaciones que se pueden desplegar de forma sencilla y, lo que es más importante, consistente con un conjunto estándar de comandos.
Como resultado de este repositorio y de una gran API, Docker se ha convertido ahora en el estándar ‘de facto’ para los motores de contenedores, aunque afortunadamente contamos con la Iniciativa de Contenedores Abiertos [OCI] a la que Docker se adhiere, lo que debería garantizar que podríamos cambiar de motor de contenedores si fuera necesario con un esfuerzo mínimo.
Esta revolución, y la veo como una revolución y no como una evolución, empoderó y frustró a la comunidad de desarrolladores. La frustración de los desarrolladores surge cuando intentan desplegar sus aplicaciones basadas en contenedores en entornos de producción no basados en contenedores. Vuelven a tener largos tiempos de espera para la creación de entornos y esto resulta en largos ciclos de vida de las aplicaciones. Los siguientes proyectos de contenedores de Openstack ayudarán a resolver muchos de estos desafíos.
Entonces, ¿por qué usar contenedores?
- Mejora de la Utilización del Servidor, lo que resulta en una reducción de los costes de licencias del SO. Esto es similar a la revolución de las máquinas virtuales en la última década, donde virtualizamos muchos servidores físicos a servidores virtuales (P2V), reduciendo el número de servidores físicos necesarios. Sin embargo, cada máquina virtual aún requería su propio SO (sistema operativo), mientras que los contenedores pueden, y de hecho comparten, un único SO host.
Es posible lanzar muchos contenedores dentro de un único SO host, por lo que nuevamente obtenemos una mejora de un orden de magnitud tanto en la utilización de recursos como en los requisitos de licencias de SO.
- Modernización de Aplicaciones Tradicionales. Por favor, no confundas esto con transformaciones de aplicaciones. Esto es donde construyes tu aplicación monolítica (generalmente con estado) dentro de contenedores.
Siguen sufriendo las mismas restricciones de las aplicaciones tradicionales: típicamente requieren costosos servicios/soluciones de terceros para gestionar su estado desde una perspectiva de alta disponibilidad.
Sin embargo, obtienes los beneficios de la abstracción de IaaS (misma experiencia ya sea desplegado en nube privada o pública) y despliegues consistentes y codificados. Efectivamente, ahora estás jugando en el espacio de Contenedores como Servicio (CaaS) con aplicaciones tradicionales. - Desarrollo de Aplicaciones Nativas de la Nube. Estas aplicaciones tienden a utilizar patrones de microservicios extensivamente hoy en día, y los microservicios envueltos en contenedores son una combinación muy poderosa y complementaria.
- Despliegues en Pipelines de DevOps. Piensa en integración continua y despliegue continuo. Al estandarizar los contenedores como tu mejor práctica de despliegue de aplicaciones, abstraes efectivamente las complejidades innecesarias de la infraestructura subyacente. Los desarrolladores pueden garantizar la misma experiencia de despliegue ya sea apuntando a su propia laptop, servidor de desarrollo o incluso a las nubes públicas K5 de Fujitsu, AWS de Amazon o Azure de Microsoft. Estas últimas tres nubes públicas están respaldadas por tecnologías de infraestructura y APIs muy diferentes, pero ¡ya no nos importa! Todos estos entornos simplemente necesitan la capacidad de ejecutar el mismo motor de contenedores.
¿Qué tiene que ver Openstack con los contenedores?
Las diversas iniciativas de contenedores de Openstack están aquí para ayudar a resolver el despliegue y la gestión de contenedores en producción en baremetal y máquinas virtuales que han sido construidas utilizando el conjunto de software de Openstack. Los proyectos apuntan tanto a operadores de infraestructura que pueden aprovechar ellos mismos los beneficios de los contenedores para sus propios despliegues de Openstack, pero los proyectos también están diseñados pensando en los desarrolladores para ayudar a aliviar sus problemas de despliegue en pipelines, asegurando que puedan tener un proceso consistente, rápido y ágil para mover sus aplicaciones rápidamente a producción.

Magnum
Esta es la API del motor de orquestación de contenedores. Digamos que deseas desplegar y gestionar un clúster de Kubernetes Y/O un clúster de Docker Swarm Y/O un clúster de Apache Mesos, bueno, Openstack Magnum proporcionará una API consistente que puede envolver estas diferentes tecnologías y proporcionar una interfaz consistente para los operadores de infraestructura. Esto significa que los operadores deberían poder aprovechar el mismo proceso y llamadas a la API familiares para desplegar estos productos muy diferentes.

Zun
Desde el sitio web del proyecto “Zun (ex. Higgins) es el servicio de contenedores de OpenStack. Su objetivo es proporcionar un servicio API para ejecutar contenedores de aplicaciones sin la necesidad de gestionar servidores o clústeres.” Básicamente, Zun es a los contenedores lo que Nova es a las máquinas virtuales e Ironic es a los servidores baremetal. El servicio Nova-Docker fue un intento temprano de gestionar contenedores a través de la API de computación de Nova. Zun no está limitado por la API de Nova.

Kuryr
Una vez más, el sitio web del proyecto proporciona un buen resumen: “La idea detrás de Kuryr es poder aprovechar la abstracción y todo el trabajo duro que se puso en Neutron y sus plugins y servicios, y usar eso para proporcionar redes de grado de producción para casos de uso de contenedores. En lugar de que cada plugin o solución independiente de Neutron intente encontrar y cerrar las brechas, podemos concentrar los esfuerzos y enfocarnos en un solo lugar: Kuryr. Kuryr tiene como objetivo ser el “puente de integración” entre las dos comunidades, Docker (u otro motor de contenedores) y Neutron, y proponer y conducir los cambios necesarios en Neutron (o en Docker) para poder cumplir con los casos de uso necesarios específicamente para las redes de contenedores. Es importante tener en cuenta que Kuryr NO es una solución de red por sí misma ni intenta convertirse en una. El esfuerzo de Kuryr se centra en ser el mensajero que entrega las redes y servicios de Neutron a Docker.”

Kolla
Estos son servicios de OpenStack de grado de producción entregados como contenedores listos para usar. Cualquier desarrollador que lea esto entenderá inmediatamente lo empoderador que es: ¡OpenStack desplegado como contenedores! Para cualquiera como yo, que pasó por el dolor de las grandes instalaciones bash de OpenStack en centros de datos de clientes, como dice la canción de D:ream “Las cosas solo pueden mejorar”… y así ha sido. Los contenedores son de hecho el futuro del despliegue de aplicaciones. Proporcionan un mecanismo consistente, codificado y por lo tanto controlable para despliegues rápidos (o rollbacks si fuera necesario). Estas imágenes de contenedores Kolla se utilizarán en combinación con el proyecto/módulo LOCI.
LOCI
“El objetivo de LOCI es proporcionar imágenes y herramientas ligeras compatibles con OCI amigables con CI/CD para servicios de OpenStack. Puedes construir imágenes LOCI en un entorno air-gapped sin ninguna modificación (asumiendo que tienes un git, paquete y espejo pypi).” El sector de las telecomunicaciones, gran adoptador de OpenStack, prevé LOCI como un componente vital para impulsar el futuro de Openstack en el espacio de Edge Computing. Imagina tu enrutador o decodificador doméstico de BT, Virgin Media o AT&T ejecutando un contenedor. Esto daría a estas empresas Y a los usuarios domésticos mucha mayor agilidad y flexibilidad. Podrías potencialmente cambiar de proveedor en segundos sin la necesidad de nuevo hardware: ganar-ganar para todos. Para pequeñas empresas y centros de datos perimetrales, esto también puede eliminar la necesidad de dispositivos de hardware dedicados de tarea única: IoT, Big Data y la regulación gubernamental impulsarán rápidamente el crecimiento en el espacio de computación perimetral en los próximos años.
Ha habido muchas otras mejoras significativas en Openstack en este lanzamiento, particularmente enfocadas en la virtualización de GPU, así que para los detalles completos lee https://www.openstack.org/software/queens/
¡Feliz Apilamiento!
Graham
Originally published on allthingscloud.eu (2018-04-10).
