virtualizationDesde hace ya más de una década, la tecnología de virtualización de hardware, más conocida como máquinas virtuales, se ha convertido en la base de los sistemas en producción que hoy usamos en nuestra sociedad de la información. Además, ha hecho rentable y sostenible, en plena crisis económica, la evolución del software y los servicios conectados a la red .

Pero no olvidemos que la virtualización se puede implementar a distintos niveles, y la evolución tecnológica nunca cesa en su intento de conseguir sistemas más potentes y eficientes, como la virtualización a nivel de sistema operativo, tecnología que está causando furor en los últimos años.

Se define virtualización como la abstracción de algún recurso de computación, como el hardware, el sistema operativo, sistemas de almacenamiento o recursos de red, que podemos dividir mediante software, en entornos de ejecución, para aprovechar al máximo la capacidad del recurso subyacente. La capa de software arbitra los recursos disponibles, repartiendo dinámicamente los recursos reales entre todos los recursos virtuales definidos.

¿Qué es la virtualización a nivel de sistema operativo o virtualización basada en contenedores?

La virtualización a nivel de sistema operativo o contenerización, es una aproximación a la virtualización en la cual, la capa de virtualización se ejecuta como una aplicación en el sistema operativo.

En este enfoque, los contenedores son máquinas virtuales aisladas entre sí, que están instaladas sobre el mismo sistema operativo (fig 1).

Cada contenedor dispone de su software específico, pero comparte el kernel del sistema operativo anfitrión, y usualmente también binarios y librerías. Utilizando estos componentes compartidos como de solo lectura .

virtualization

Un contenedor se compone, principalmente, de 4 elementos:

1. Demonio: es el proceso principal de la plataforma.
2. Cliente: se trata del binario que constituye la interfaz y que permite al usuario interactuar con el Demonio.
3. Imagen: plantilla utilizada para crear el contenedor para la aplicación que se pretende ejecutar.
4. Sistema de ficheros: donde se almacena todo lo necesario (librerías, dependencias, binarios, etc.), para que la aplicación pueda ejecutarse de forma aislada.

Gracias a la contenerización se consigue una portabilidad real, que permite predecir el comportamiento de un software cuando se mueve de un servidor a otro distinto. Esto se debe a que el contenedor encapsula solamente el software específico del aplicativo que se ejecuta dentro de él, y las librerías de las cuales depende para su correcta ejecución, utilizando el sistema operativo del sistema anfitrión. De este modo abstrae el servidor en el que se va a ejecutar el software, ya sea en instalaciones físicas, en la nube pública, en la nube privada, etc.

Con la virtualización basada en contenedores, no existe la sobrecarga que implica tener a cada huésped ejecutando un sistema operativo completo. El servidor requerirá más hardware, pero todos sus recursos serán aprovechados directamente por el software en ejecución. En ningún caso será consumido por necesidades del sistema operativo o sus procesos asociados (fig2).

Este enfoque también puede mejorar el rendimiento, porque hay un solo sistema operativo encargándose de los avisos de hardware.

virtualization

Debido a esto, los contenedores suelen ser excepcionalmente ligeros, se mueven en torno a los megabytes de tamaño en disco y necesitan pocos segundos para arrancar, contra los gigabytes de ocupación y los minutos de arranque que suelen tomar los servidores en máquinas físicas y virtuales.

Además, el uso de contenedores reduce la carga de trabajo en la administración de sistemas. Debido a que los contenedores usan un sistema operativo común, aunando las actualizaciones, la gestión de vulnerabilidades en paquetería y demás tareas administrativas.

En general, los contenedores son más rápidos, ágiles y portables que el software instalado en máquinas físicas o virtuales.

Docker es uno de los proyectos más conocidos y utilizados en este tipo de virtualización. Lejos de ser un sistema operativo como tal, esta plataforma de código abierto hace uso de las funciones de aislamiento de recursos del kernel de Linux para dar lugar a contenedores independientes.

Docker también cuenta con una serie de repositorios, similares a los de Linux, en los cuales, los fabricantes de software y usuarios publican sus propios contenedores de manera que cualquiera que los necesite los pueda bajar rápidamente desde allí.

La tecnología SD-WAN de Teldat usa la virtualización a nivel de sistema operativo en su infraestructura core; pero va incluso un poco más allá. Al tener un ecosistema con multitud de servicios contenerizados, hemos implementado la figura del orquestador de micro-servicios. Este sistema permite la abstracción del hardware, sistemas operativos o almacenamiento, de los servicios de software contenerizados, clusteres, redes, balanceadores de carga, entre otros elementos, que realmente están dando el servicio al usuario de forma transparente, en entornos tolerantes a fallos y de alta disponibilidad. (fig 3.)

virtualization

 


Sobre el autor

Guillermo Lopez
Guillermo Lopez
Ingeniero en Informática en el departamento de I+D. Dentro de dicho departamento trabaja en el grupo de Cloud Appliances como Ingeniero de Infraestructuras.

Comparte este post


Nuestras Soluciones Relevantes



| Etiquetas: