Virtualización
La virtualización es una tecnología que permite crear versiones abstractas de recursos físicos como servidores, almacenamiento, redes o procesadores mediante software.
Su objetivo es ejecutar múltiples entornos aislados sobre un único hardware físico, mejorando la utilización de los recursos y simplificando la administración.
El componente encargado de gestionar este proceso es el Hipervisor (VMM - Virtual Machine Monitor).
Hipervisores
Los hipervisores son el software que crea y administra las máquinas virtuales.
Existen dos tipos principales.
Hipervisores Tipo 1 (Bare-Metal)
Se ejecutan directamente sobre el hardware físico.
Características
- Máximo rendimiento.
- Menor latencia.
- Mayor seguridad.
- Uso habitual en centros de datos.
Ejemplos
- VMware ESXi.
- Microsoft Hyper-V Server.
- Citrix Hypervisor.
- KVM.
Hipervisores Tipo 2 (Hosted)
Se ejecutan como una aplicación sobre un sistema operativo anfitrión.
Características
- Más sencillos de instalar.
- Menor rendimiento.
- Ideales para pruebas y desarrollo.
Ejemplos
- Oracle VirtualBox.
- VMware Workstation.
- QEMU.
Máquinas virtuales (VM)
Una máquina virtual es un ordenador completo emulado por software.
Cada VM dispone de:
- vCPU.
- vRAM.
- vNIC.
- Almacenamiento virtual.
- Sistema Operativo Invitado (Guest OS).
Ventajas
- Aislamiento completo.
- Compatibilidad con distintos sistemas operativos.
- Facilidad de copia y migración.
Inconvenientes
- Mayor consumo de CPU y RAM.
- Necesidad de arrancar un kernel completo.
- Más espacio en disco.
Contenedores
La contenerización es una forma de virtualización ligera.
A diferencia de las VMs, los contenedores:
- Comparten el kernel del sistema anfitrión.
- No emulan hardware.
- Incluyen solo la aplicación y sus dependencias.
Ventajas
- Arranque muy rápido.
- Menor consumo de recursos.
- Alta densidad de aplicaciones.
- Fácil despliegue.
Inconvenientes
- Menor aislamiento que una VM.
- Dependencia del kernel anfitrión.
Docker
Docker es la plataforma más utilizada para crear y ejecutar contenedores.
Conceptos fundamentales
| Concepto | Descripción |
|---|---|
| Imagen | Plantilla inmutable con la aplicación y sus dependencias. |
| Contenedor | Instancia en ejecución de una imagen. |
| Dockerfile | Archivo con las instrucciones para construir una imagen. |
Funcionamiento básico
- Se crea un Dockerfile.
- Se construye una imagen.
- Se ejecuta un contenedor a partir de esa imagen.
Kubernetes
Kubernetes es una plataforma de orquestación de contenedores.
Su función es administrar automáticamente miles de contenedores distribuidos en varios servidores.
Conceptos principales
| Elemento | Función |
|---|---|
| Pod | Unidad mínima de ejecución. |
| Node | Servidor físico o virtual del clúster. |
| Cluster | Conjunto de nodos gestionados por Kubernetes. |
Funciones
- Despliegue automático.
- Escalado.
- Recuperación ante fallos.
- Balanceo de carga.
- Actualizaciones sin interrupción.
Consolidación de servidores
La consolidación consiste en ejecutar múltiples servidores virtuales sobre un número reducido de servidores físicos.
Objetivos
- Mejorar el aprovechamiento del hardware.
- Reducir el consumo eléctrico.
- Disminuir la refrigeración necesaria.
- Ahorrar espacio en el CPD.
Ventajas
- Menor coste operativo.
- Administración centralizada.
- Mayor flexibilidad.
Computación en la nube (Cloud)
La nube permite acceder bajo demanda a recursos informáticos a través de la red.
Modelos de servicio
IaaS (Infrastructure as a Service)
El proveedor ofrece:
- Servidores.
- CPU.
- Memoria.
- Redes.
- Almacenamiento.
El cliente administra el sistema operativo y las aplicaciones.
Ejemplos: Amazon EC2, Azure VMs.
PaaS (Platform as a Service)
El proveedor ofrece una plataforma lista para desarrollar y ejecutar aplicaciones.
El cliente solo gestiona:
- Código.
- Datos.
Ejemplos: Heroku, Google App Engine.
SaaS (Software as a Service)
El proveedor entrega una aplicación completa accesible por Internet.
El usuario únicamente utiliza el servicio.
Ejemplos: Microsoft 365, Google Workspace, Salesforce.
Comparación
| Modelo | Gestiona el cliente |
|---|---|
| IaaS | SO, aplicaciones y datos |
| PaaS | Aplicación y datos |
| SaaS | Solo el uso del servicio |
Escritorios virtuales (VDI)
La Infraestructura de Escritorio Virtual (VDI) hospeda los escritorios de los usuarios en máquinas virtuales dentro del centro de datos.
Funcionamiento
- El escritorio se ejecuta en un servidor central.
- El usuario se conecta remotamente mediante RDP, ICA o PCoIP.
- Toda la computación se realiza en el servidor.
Ventajas
- Mayor seguridad.
- Administración centralizada.
- Copias de seguridad unificadas.
- Acceso desde múltiples dispositivos.
Aplicaciones virtualizadas
La virtualización de aplicaciones permite ejecutar programas aislados del sistema operativo anfitrión.
Características
- No modifican el sistema operativo.
- Se ejecutan en un entorno aislado (sandbox).
- Permiten usar varias versiones de una misma aplicación simultáneamente.
Ejemplos
- Microsoft App-V.
- VMware ThinApp.
Comparación VM vs Contenedor
| Característica | Máquina Virtual | Contenedor |
|---|---|---|
| Sistema operativo propio | Sí | No |
| Kernel independiente | Sí | No |
| Aislamiento | Muy alto | Alto |
| Consumo de recursos | Alto | Bajo |
| Tiempo de arranque | Segundos o minutos | Milisegundos |
| Densidad de aplicaciones | Menor | Mayor |
Caso práctico: elección entre VM y contenedor
Situación
Una empresa necesita desplegar cientos de microservicios con arranque rápido y bajo consumo de recursos.
Solución
La mejor opción son los contenedores, porque:
- Comparten el kernel.
- Consumen menos memoria.
- Se despliegan rápidamente.
- Facilitan el escalado automático.
Si se requiere ejecutar sistemas operativos diferentes o un aislamiento máximo, la opción adecuada serían las máquinas virtuales.
Ventajas e inconvenientes
Ventajas
- Mejor aprovechamiento del hardware.
- Reducción de costes.
- Escalabilidad.
- Alta disponibilidad.
- Despliegue rápido.
- Facilidad de copia y recuperación.
Inconvenientes
- Mayor complejidad de administración.
- Dependencia del hipervisor.
- Riesgo de sobreasignación de recursos.
- Necesidad de monitorización continua.
Errores habituales
- Confundir VM con contenedor.
- Pensar que Docker es un hipervisor.
- Creer que Kubernetes crea máquinas virtuales.
- Sobrecargar un servidor físico con demasiadas VMs.
- No diferenciar IaaS, PaaS y SaaS.
- Ignorar el modelo de responsabilidad compartida en la nube.
Cómo evitarlos
- Identificar qué capa se virtualiza.
- Recordar que los contenedores comparten kernel.
- Entender el papel del hipervisor.
- Planificar correctamente CPU, RAM y almacenamiento.
- Comprender los modelos de servicio cloud.
Relaciones con otros temas
La virtualización está estrechamente relacionada con:
- Sistemas operativos.
- Almacenamiento.
- Redes.
- Cloud Computing.
- Contenedores.
- Docker.
- Kubernetes.
- Alta disponibilidad.
- Centros de datos.
- Seguridad informática.