Contenedores sin complicaciones: explore Carina de Rackspace

por Adrian Otto

La semana pasada, en la Cumbre de OpenStack en Tokio, Rackspace anunció Carina, una versión beta pública gratuita de un nuevo servicio que le permite crear grupos administrados para administrar contenedores en la nube usando las mismas herramientas que usa actualmente para administrar contenedores a nivel local en su propia computadora. Como arquitecto de la estrategia de contenedores globales de Rackspace, deseo explicar por qué Carina es diferente desde una perspectiva técnica, y compartir nuestra filosofía detrás del servicio.

Soy responsable de formar el equipo de contenedores OpenStack, que colaboró en diseñar y armar el OpenStack Magnum, lanzado inicialmente en enero de 2014. Me desempeño como líder del equipo de proyecto de OpenStack Magnum, dirigiendo nuestra impresionante comunidad de colaboradores. Antes de mis esfuerzos con Magnum, Rackspace se dedicó al diseño de Carina en preparación del servicio que estamos ofreciendo ahora. De hecho, gran parte de las contribuciones que realizó Rackspace a OpenStack Magnum se basaron en lo que aprendimos en el desarrollo de Carina.

OpenStack permite a los operadores de la nube crear conjuntos de servidores físicos, conocidos como agregados de servidores, que son asignados por el programador Nova con metadatos a la imagen de Glance y/o en el aspecto de Nova. Esta característica nos permite ofrecer diferentes aspectos para los servidores de Linux, servidores de Windows y ahora servidores de contenedores, cada uno manejado por un agregado de servidores adecuado para un uso en particular. Actualmente, usamos el controlador libvirt/lxc de Nova para crear contenedores LXC en un agregado especializado en servidores diseñado para administrar contenedores en lugar de administrar máquinas virtuales. Esperamos utilizar el mismo enfoque para conectar servidores de contenedores de Windows en el futuro.

OpenStack Magnum presenta un nuevo recurso esencial conocido como una bahía que permite múltiples inquilinos de forma segura para contenedores en nubes de OpenStack. Cada bahía es un grupo de instancias de cómputo de Nova que se ejecutan un Motor de Orquestación de Contenedores (Container Orchestration Engine, COE) como Docker Swarm, Kubernetes o Apache Mesos como clúster administrado. Su COE es responsable de ejecutar sus contenedores en uno o más de los servidores en la bahía, y puede administrarlos una vez que se inician. Por ejemplo, Kubernetes puede reiniciar automáticamente contenedores en un servidor alternativo si un servidor falla. Cada COE posee propiedades únicas que lo vuelven ideal para el manejo de varios casos de uso. Carina utilizará esta capacidad para ofrecer a los usuarios una opción de COE.

Actualmente ofrecemos Docker Swarm, y pronto introduciremos Kubernetes, y potencialmente otras opciones de COE, de acuerdo con las opiniones de nuestros usuarios. Están surgiendo nuevos rápidamente, por lo que es realmente importante contar con una forma estándar de adaptarlos. Puede crear números arbitrarios de bahías, para que sus diferentes equipos de desarrollo no necesiten compartirlas.

La mayoría de los servicios hospedados de contenedores que hemos observado utilizan máquinas virtuales como la base de servidores que ejecutan contenedores. Las máquinas virtuales tienen ventajas y desventajas. Ocasionan que el código de aplicación se ejecute más lentamente que la velocidad que tendría en un entorno de servidor de metal desnudo. Eso no es bueno.

Son fácil de asegurar para múltiples inquilinos. ¡Eso es bueno! La interfaz de hardware virtual es relativamente simple en comparación con la interfaz de llamada al sistema de Linux. Usando las llamadas al sistema, las aplicaciones pueden interactuar con el núcleo de Linux, y esa interfaz es una superficie amplia de ataque que debe asegurarse para impedir que los contenedores vecinos escapen al núcleo, y para impedir el acceso potencial no autorizado entre cargas de trabajo vecinas. Es un trabajo difícil. Estrictamente hablando, la práctica de usar máquinas virtuales para el aislamiento de seguridad de múltiples inquilinos tiene un menor riesgo desde una perspectiva de seguridad debido a su menor superficie de ataque.

Los servidores ofrecen beneficios considerables de desempeño en comparación con las máquinas virtuales. Sin embargo, requieren el agregado de grandes incrementos de capacidad porque no es fácil compartirlos. Termina agregando un servidor completo por vez. ¡Es una gran cantidad de hardware! Sería mejor si existiera una forma de escalar usando menores incrementos de capacidad que sigan más atentamente las necesidades de carga de trabajo dinámica. Es por eso que la mayoría de los proveedores de servicios en la nube usan la virtualización como la base para sus servicios de contenedores. Mantienen un compromiso entre estas buenas y malas características. Desafortunadamente, ese compromiso significa un menor desempeño.

Carina es diferente.

Su enfoque innovador ofrece acceso de aplicaciones al desempeño del hardware metálico en incrementos que cuestan menos que usar máquinas virtuales, ofreciéndole una opción de los tipos de características que componen sus bahías. Puede elegir lo que ofrece Carina en nuestro beta hoy (contenedores de metal desnudo aislados por técnicas adicionales de seguridad en el sistema operativo del servidor para ayudar a mantenerlos seguros de los demás).

En versiones futuras, puede ejecutar sus clústeres de contenedores en otros tipos de características como máquinas virtuales o incluso servidores completos de metal desnudo para los casos en que estas opciones tienen más sentido. Le permitiremos elegir la mejor opción, porque usted conoce mejor su aplicación. Puede obtener servidores completos de metal desnudo en la Nube de Rackspace hoy usando nuestras características de OnMetal. ¡Una vez que anunciemos compatibilidad para la API OpenStack Magnum con Carina, realizará esta elección especificando el tipo de característica con que se construyeron sus clústeres de contenedores, incluidas las características de OnMetal!

Al seleccionar su tipo de características, considere su caso de uso y encuentre el equilibrio adecuado entre el desempeño, el aislamiento de seguridad y el costo. La versión beta pública inicial de Carina ofrece contenedores como el primer tipo de características Agregaremos más con el tiempo. Esta tabla incluye las consideraciones más importantes:


¿Por qué nos preocupamos tanto por basar Carina en OpenStack Magnum en lugar de conformarnos con lo que tenemos actualmente? Tenemos varios motivos:

  • Creemos que los usuarios merecen una elección de qué COE ejecutar. Si planea personalizar ampliamente su ambiente, realmente puede beneficiarse con un estilo imperativo de administración que ofrece Docker Swarm, junto con el estilo declarativo de implementar aplicaciones con herramientas como docker-compose, que le permite agrupar numerosos contenedores que funcionan en conjunto en una única implementación. Kubernetes lo hace de forma diferente, lo que permite menos personalización sin cambiar el código en el COE. Es posible que desee ejecutar múltiples COE simultáneamente para diferentes cargas de trabajo. Con OpenStack Magnum, puede hacerlo hoy.
  • Rackspace ofrece una nube pública y nubes privadas administradas, por lo que deseamos ofrecer una experiencia coherente con la simplicidad y el desempeño de Carina, pero también para los usuarios de la Nube privada de Rackspace. Debería poder elegir si implementar su aplicación en una nube pública o privada, y hacerlo de la misma forma en cada una. Al basar Carina en OpenStack Magnum, podemos ofrecer esta experiencia de forma coherente en nubes públicas y privadas.
  • Debería poder elegir el tipo de características de hardware donde ejecutar su COE. Algunas cargas de trabajo, como el desarrollo/prueba o cargas de trabajo altamente efímeras, no son sensibles en términos de aislamiento de seguridad, pero puede obtener un importante beneficio comercial al poder obtener desempeño de metal desnudo que cuesta menos que los recursos de la nube pública.
  • Los programadores tienen fuertes preferencias por las herramientas que desean usar. Estamos convencidos de que ofrecer la opción para que los programadores usen herramientas y API nativas es esencial. No debería tener que aprender otra API de propiedad privada y otra herramienta compleja para ejecutar contenedores en Carina.

Puede preguntarse por qué simplemente no configura sus propios servidores de metal desnudo, coloca su propio COE en ellos y permite a sus usuarios comenzar a ejecutar contenedores allí.

En primer lugar, si lo hace, deberá aceptar la naturaleza de inquilino único de su COE seleccionado. En segundo lugar, no podrá ofrecer ninguna de las opciones detalladas anteriormente que hacen tan atractivo a OpenStack Magnum. Finalmente, nuestro enfoque realmente funcionará correctamente en un grupo estático de servidores. Si desea que ese grupo se escale dinámicamente hacia arriba y hacia abajo, el COE debe integrarse con un IaaS. De esta forma se abrirá una caja de Pandora con preguntas sobre cómo conectar sus redes, su almacenamiento, cómo asignar direcciones de IP, cómo firmar y distribuir certificados de TLS para que su COE prohíba el uso no autorizado en redes públicas, cómo administrará la integración con su sistema de identidad, cómo justificará el uso en su sistema… se puede imaginar de qué se trata.

Esa lista es larga, y la mayoría de esos cambios potenciales no tienen nada que ver con los contenedores. El uso de una solución como Carina le permite elegir, con confianza en que la tecnología subyacente proviene de una comunidad diversa y exitosa de colaboradores que trabajan conjuntamente hacia un objetivo: realizar la mejor integración posible de IaaS y contenedores, con más opciones y flexibilidad que la que tendría con el enfoque de instalación propia.

Carina ofrece una combinación exclusiva de simplicidad, desempeño y accesibilidad, lo que solo es posible al usar un enfoque diferente que otros proveedores de la nube. Estamos emocionados de tener la oportunidad de ofrecerle el poder de elección, y la confianza de que sus selecciones de tecnología actuales evolucionarán con usted a medida que la tecnología de contenedores cambie con el tiempo.

Obtenga Carina hoy sin costo.

 

2 COMMENTS

LEAVE A REPLY

Please enter your comment!
Please enter your name here