Saltar a contenido

Máquinas virtuales y Contenedores.

¿Qué es la virtualización?

Permite reservar una serie de recursos del sistema (RAM, CPU, DISCO) para emular un sistema operativo (guest / invitado) dentro de otro (host / anfitrión).

Ventajas:

  • Podemos aprovechar mejor el hardware de la máquina anfitriona, ya que estamos ejecutando varios "ordenadores" en uno mismo, aprovechando recursos que de otra forma es posible que no se llegaran a usar.
  • Permite ejecutar software que quizá sea incompatible con tu sistema operativo anfitrión, ya sea por un motivo de versiones o porque son sistemas operativos diferentes (Windows, Linux, MAC).

¿Qué es un Hipervisor?

El hipervisor es la parte software que permite crear y gestionar las máquinas virtuales (asignar recursos, crear los discos virtuales, etc).

Se distinguen dos tipos:

Hipervisores de tipo 1 (hipervisores bare metal):

  • No necesitan de un sistema operativo anfitrión para comunicarse con los componentes del ordenador, por tanto la comunicación entre las máquinas virtuales y los componentes es más directa, rápida y eficiente. Es decir, si una máquina virtual necesita hacer una operación, se comunicará con el hipervisor y éste con la CPU.

  • Ejemplos: VMWare ESXi, KVM, Hyper-V

Hipervisores de tipo 2 (hipervisores alojados):

  • Son una aplicación más del sistema operativo instalado en la máquina y el hipervisor accede al hardware de la máquina a través de ese sistema operativo. Por tanto, si una máquina virtual requiere hacer una operación, pasará la orden al hipervisor, éste al sistema operativo y de ahí a la CPU.

  • Ejemplos: VirtualBox y VMWare Workstation.

¿Qué es un Contenedor?

  • Los contenedores, a diferencia de las máquinas virtuales, comparten el kernel, archivos binarios y librerías del sistema operativo (anfitrión).

    💥 Por tanto un host Linux podrá crear contenedores relacionados con Linux, y un host Windows podrá crear contenedores Windows.

NOTA

  • Windows tiene la posibilidad de ejecutar contenedores Linux a través del aislamiento de Hyper-V (WSL).
  • Básicamente activas un Kernel Linux en Windows y por tanto en Windows sí puedes generar contenedores de Linux.
  • Cada contenedor ocupa mucho menos espacio, puesto que se ahorra todo los ficheros del sistema del sistema operativo que ahora recoge de la máquina anfitriona.

  • Su objetivo no es simular un sistema operativo completo, sino un servicio/aplicación en concreto, por tanto aquí también se produce un ahorro de espacio en disco.

    💥 Aunque un único contenedor puede emular varios servicios/aplicaciones es habitual tener varios contenedores y cada uno que tenga únicamente corriendo 1 servicio/ aplicación y las dependencias que se necesitan para que éste funcione.

  • Arranca mucho más rápido que una máquina virtual, pues utiliza los procesos y ficheros del sistema del anfitrión, el cual ya se encuentra arrancado.

  • Docker es integrable con servicios en la nube:

    💥 AWS (Amazon Web Service).

    💥 Azure (Microsoft).

    💥 Google Cloud.

  • Docker es un software que permite la creación y gestión de contenedores.