El hosting y los contenedores LXC

lxc logo

Recientemente se publicaba la noticia de que SiteGround, uno de los grandes proveedores de alojamiento web a nivel europeo, se asentaba en nuestro país y adoptaba una tecnología puntera en cuanto a rendimiento se refiere: hablamos de los Linux Containers o LXC. Esta funcionalidad no es nueva, dentro de los sistemas operativos, ya que FreeBSD posee Jails, Solaris tiene Zones y existen otro tipo de contenedores como los proporcionados por OpenVZ y Linux VServer que poseen otra configuración distinta dentro de su kernel para llevarla a cabo.

El hecho de que SiteGround haya acogido esta posición en cuanto a su tecnología, y su clara visión de negocio enfocada al alto rendimiento de su infraestructura, tanto a nivel de hardware (mediante discos de estado sólido SSD) como de software, hace plantear la cuestión de si tan buena y prometedora es. Hablamos de LXC a contenedores a continuación.

LXC o Linux Containers representa en la actualidad una de las tecnologías más modernas y con mayor proyección de futuro. Se trata de contenedores que virtualizan entornos a nivel de sistema operativo Linux y pueden ser desplegados a través de múltiples instancias dentro de un mismo servidor físico. Todos ellos operan de forma aislada como SPVs (Servidores Privados Virtuales) o EVs (Entornos Virtuales), donde se propocionan todos los recuros a nivel de procesamiento, comunicaciones y almacenamiento.

Pero, ¿dónde está realmente el beneficio de los contenedores? Pongamos el siguiente caso de ejemplo. Un portal de servicios quiere que sus usuarios puedan desplegar plataformas autónomas y aisladas bajo demanda. De forma tradicional habría que instalar todo el software y componentes requeridos para cada herramienta que se desease, pero gracias a los contenedores, pueden agruparse todos los recursos necesarios e instanciarse cuantas veces se requiera de forma automática.

lxc vs host

Cuando en SiteGround hicieron su última migración acogieron, además de esta tecnología, el almacenamiento a través de disco de estado sólido SSD. LXC les proporciona, en palabras de sus propios empleados, la flexibilidad necesaria para su negocio, y los discos SSD la rapidez de ejecución requerida para dar un servicio adecuado en tiempo a sus usuarios. Asimismo, la compañía ha creado su propia implementación de LXC y genera multitud de parches para el kernel de Linux que corrigen errores y solucionan problemas de seguridad.

El futuro de los contenedores parece muy prometedor y podría suponer el fin de la Virtualización como a día de hoy la conocemos. ¿O no?

Características de LXC

La posibilidad de crear contenedores encapsulados y aislados con su propia reserva de recursos es una función que ya se realiza actualmente mediante entornos de virtualización. Sin embargo, la tecnología de contenedores proporciona un mayor rendimiento (casi similar a una virtualización en bare-metal) y flexibilidad. Los contenedores no emulan el hardware de una máquina y, mientras no se virtualice un espacio, no se ocupa espacio de almacenamiento.

LXC debe concebirse como un sistema operativo dentro del nuestro propio, y que a efectos prácticos se comporta como una máquina virtual. La emulación la realiza el propio kernel de Linux y LXC proporciona el contenedor mínimo para poder almacenar una plantilla de varias distribuciones de sistemas operativos y aplicaciones de usuarios que permiten su reutilización en varios entornos y ciclos de desarrollo.

La portabilidad con este funcionalidad está asegurada, ya que realiza el desacople de las aplicaciones del sistema operativo y es posible ejecutar cualquier contenedor a partir de la instalación de un entorno mínimo. Además, gracias al aislamiento de recursos es posible ejecutar varias instacias al mismo tiempo de varias versiones de Java, PHP o Apache, con total flexibilidad y pudiendo balancear sus cargas entre varios sistemas, clonar sus entornos o realizar copias de seguridad en cuestión de segundos.

El futuro de la virtualización no está aún acabado, ya que con él es posible desplegar muy diversos ecosistemas que, en la actualidad, los contenedores no son capaces al emplear un kernel específico para esta tarea.

LXC y Docker

lxc-vs-docker

LXC y Docker son dos sistemas de contenerización cuya filosofía opera de forma muy similar: virtualizar de forma aislada distintos entornos de aplicación que operen de forma autónoma. Ubutu trabaja con ambos proyectos que a menudo tienden a confundirse y cuya principal diferencia os hacemos notar. Los contenedores LXC poseen un init que permite ejecutar múltiples procesos mientras que los contenedores Docker poseen uno que sólo puede ejecutar un único proceso de cada tipo.

La idea de Docker es reducir el tamaño de sus contenedores lo máximo posible a un único proceso que se gestione desde esta aplicación. El problema es que muchas aplicaciones desarrolladas en la actualidad tienen la expectativa de poder ser ejecutadas en entornos multiproceso, con soporte de varios cron, demonios, SSHs, etc. Como Docker no posee ninguno de estos, tiene que hacerse a través de la aplicación la configuración del entorno de despliegue, la red, el almacenamiento y el orquestamiento final de todo el sistema.

 

Esto es sólo la punta del iceberg, ya que quedan en el aire otras cuestiones como la gestión de recursos de red, tunelización de las comunicaciones, el apilamiento de contenedores o la migración entre entornos en caliente. Actualmente, parece que la brecha que separa ambas tecnologías quiere reducirse y será el tiempo quien decida qué tecnología se posicionará por encima.


Categorías

Noticias, Off-Topic

Luis Gómez

Ingeniero informático y administrador de sistemas. Es un apasionado de la tecnología en general y de la informática en particular. Le gustan los libros de ciencia ficción y el cine de suspense.

Escribe un comentario