Desde 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
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 .
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
Este enfoque tambiƩn puede mejorar el rendimiento, porque hay un solo sistema operativo encargƔndose de los avisos de hardware.
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.