¿Virtualización o contenedores?
Cuando se quieren ejecutar varias aplicaciones aisladas entre sí en un mismo hardware, existen dos soluciones: el aislamiento mediante contenedores o la virtualización de servidores. Ambas soluciones difieren en su funcionamiento y en sus ámbitos de aplicación.
¿Pero qué sistema es adecuado para cada propósito? El siguiente artículo ofrece una orientación al respecto.
¿Qué es la virtualización?
Como virtualización se denomina la abstracción de componentes físicos de TI, como hardware, software, almacenamiento o RAM, a nivel virtual. Con una pieza de software especial, el hipervisor, se crean entornos que reproducen el sistema informático físico. Por eso a estos entornos se les denomina máquinas virtuales (VMs).
Cada VM cuenta con su propio sistema operativo (SO). Así, en un servidor físico se pueden ejecutar simultáneamente varios entornos de máquina aislados entre sí.
Se distinguen dos tipos de virtualización. Estos dependen del modo de funcionamiento de los hipervisores. El hipervisor de tipo 1 es un software que se instala directamente sobre el hardware y puede acceder plenamente a sus recursos. Al tipo 1 también se le denomina hipervisor bare-metal.
El hipervisor de tipo 2, en cambio, está instalado a nivel del sistema operativo. Por tanto, solo puede disponer de los recursos que le asigne el SO. Aun así, el tipo 2 también crea máquinas virtuales que, dentro de los recursos a su disposición, funcionan de forma completamente autónoma y aislada del resto del sistema.
¿Qué son los contenedores?
A diferencia de las máquinas virtuales, los contenedores no virtualizan todo el entorno del equipo, sino únicamente el sistema operativo. Por ello, los contenedores suelen contener solo una aplicación con todas las bibliotecas, binarios y archivos de configuración necesarios. Los contenedores comparten el kernel del sistema operativo anfitrión, pero permiten ejecutar las aplicaciones de forma aislada entre sí.
En comparación con las máquinas virtuales, los contenedores son muy pequeños. A menudo ocupan solo unos pocos megabytes y, por ello, también se inician con rapidez. Donde las máquinas virtuales suelen tardar minutos en arrancar, los contenedores están listos en cuestión de segundos. Una solución de contenedores muy utilizada es, por ejemplo, Docker.
Por tanto, la virtualización mediante contenedores es una alternativa a la virtualización de todo el sistema cuando solo se desea aislar aplicaciones individuales.
Consigue ahora el alojamiento web perfecto para contenedores Docker
Ir a la comparativa de alojamiento web para contenedores Docker
Casos de uso de las máquinas virtuales
La virtualización mediante máquinas virtuales ofrece la ventaja de que los sistemas actualizados o nuevos pueden probarse exhaustivamente antes de su puesta en producción. Los fallos de sistema o de software afectan únicamente a los sistemas invitados correspondientes y están aislados del sistema anfitrión. Además, se pueden simular virtualmente distintas configuraciones de hardware y comprobar la reacción del sistema invitado ante ellas. Esto ahorra espacio y costes que de otro modo se destinarían a hardware adicional.
Pero incluso los usuarios que operan varios sistemas informáticos completos de forma simultánea obtienen con la virtualización de servidores una solución rentable y con buen rendimiento. En particular, la creación de máquinas virtuales mediante un hipervisor bare-metal permite ofrecer VPS sin grandes limitaciones de rendimiento. Principalmente los proveedores de hosting o los grandes centros de datos se benefician de esta solución. De lo contrario, los paquetes de hosting web serían mucho más caros.
Ventajas de la virtualización de servidores
- alta rentabilidad: El uso de máquinas virtuales permite ahorrar los costes de adquisición y operación de hardware adicional.
- flexibilidad: Las máquinas virtuales permiten ejecutar varios sistemas operativos en un único sistema host. Así, incluso procesos de trabajo complejos que requieren entornos distintos pueden ejecutarse.
- seguridad: Al estar cada VM aislada entre sí, un fallo o un ataque de un hacker en un sistema huésped no afecta a los otros sistemas ni al sistema host. Por tanto, la virtualización también ofrece cierta protección a los servidores individuales.
Desventajas de la virtualización de servidores
- carga para el sistema host: Dado que cada VM ejecuta un sistema operativo completo, también necesita recursos de hardware correspondientes. Estos dejan de estar disponibles para el sistema host.
- rendimiento: Si se ejecutan muchas VMs simultáneamente, el rendimiento de cada máquina virtual puede verse afectado. Al desplegar varios VPS en un mismo hardware se debe tener en cuenta la importancia de la velocidad del servidor .
Ámbitos de aplicación de la virtualización de contenedores
Dado que los contenedores son mucho más pequeños que las máquinas virtuales y solo contienen aplicaciones dentro de un sistema operativo, son especialmente adecuados para probar programas o aplicaciones de forma aislada. Por ello desempeñan un papel destacado en el desarrollo ágil de software. Los contenedores permiten comprobar exhaustivamente distintas versiones de una aplicación antes de su lanzamiento.
Además, mediante la virtualización de contenedores, grandes arquitecturas de software pueden fragmentarse en múltiples microservicios. Cada aplicación se ejecuta aislada en su propio contenedor, pero sigue comunicándose con el sistema operativo host. Se pueden realizar cambios en los microservicios individuales sin poner en riesgo toda la arquitectura.
La virtualización por contenedores es, por tanto, una forma de proteger grandes estructuras de software. Si un contenedor está dañado, el resto de microservicios y el sistema operativo pueden seguir funcionando. Las correcciones y los ajustes en los contenedores correspondientes son posibles en cualquier momento, incluso sin tiempos de inactividad (downtime) del sistema en su conjunto.
Grandes empresas tecnológicas como Amazon o Google recurren a la virtualización por contenedores para ofrecer sus distintos servicios.
Ventajas de la virtualización por contenedores
- costes reducidos: Dado que los contenedores requieren menos recursos del sistema que las máquinas virtuales tradicionales, esta virtualización resulta más rentable para muchas empresas, ya que permite ahorrar costes en servidores o licencias.
- portabilidad: Las aplicaciones virtualizadas en contenedores pueden ejecutarse en cualquier infraestructura. Por tanto, los contenedores se pueden trasladar sin problemas de un sistema host a otro.
- eficiencia: Las aplicaciones se pueden desplegar y procesar más rápidamente en contenedores que en máquinas virtuales. Por ello, la virtualización por contenedores es esencial en el ámbito del desarrollo de software.
- posibilidad de aislamiento de programas y datos: Si en un sistema hay datos o programas sensibles, estos se pueden aislar mediante un contenedor con los permisos de acceso adecuados.
Desventajas de la virtualización por contenedores
- Seguridad: Dado que los contenedores comparten el sistema operativo, esta solución de virtualización ofrece una mayor superficie de ataque frente a ataques informáticos. Si el sistema host se ve comprometido, también lo estarán todos los contenedores. Un hipervisor bare-metal aísla completamente los sistemas invitados entre sí y protege mejor al host frente a ataques.
- Persistencia de datos: Si un contenedor se apaga, sus datos dejan de estar disponibles para el sistema operativo, a menos que se hayan almacenado previamente de forma separada.
Virtualización vs. contenedores: Resumen
Virtualización
La virtualización de servidores sirve principalmente para aislar sistemas completos entre sí y ejecutarlos de forma simultánea en un mismo hardware. Esto tiene especial importancia no solo para los proveedores de hosting web. También es posible probar el cambio a otro sistema operativo mediante una VM.
Más información al respecto en: Qué es la virtualización de servidores
Contenedores
La virtualización mediante contenedores se utiliza sobre todo en el desarrollo de software o en la gestión de grandes arquitecturas de software. Pero también puede ser útil para aislar aplicaciones o datos individuales en escritorios.
Más información al respecto en: Docker para utilizar en el sitio web
Nuestro artículo se basa en experiencias propias e investigación, así como en información de fuentes externas.
Fuentes & enlaces de interés sobre el tema:
https://www.computerweekly.com/de/definition/Server-Virtualisierung (Artículo sobre virtualización de servidores)
https://www.pcwelt.de/ratgeber/Zeit-fuer-eine-Bilanz-Die-10-groessten-Vorteile-von-Server-Virtualisierung-6197202.html (Artículo sobre virtualización de servidores)
https://www.parallels.com/de/blogs/hypervisor/ (Información de Parallels sobre el hipervisor)
https://www.storage-insider.de/was-ist-ein-hypervisor-a-842084/ (Artículo sobre hipervisores en Storage-Insider)
https://www.cloudcomputing-insider.de/grundlagen-der-container-virtualisierung-a-521961/ (Artículo sobre contenedores en Cloudcomputing Insider)
Crédito de la imagen:
Gerd Altmann en Pixabay
Escribe un comentario
- Virtualisierung
Etiquetas de este artículo
Más proveedores de hosting
Más artículos interesantes
VMware o Virtuozzo: ¿Cuáles son las diferencias?
Aquí analizamos en detalle las diferencias entre VMware y Virtuozzo.
Xen o KVM: hipervisores de código abierto en comparación
Aquí examinamos más detenidamente las diferencias entre Xen y KVM.