Cómo ya hemos explicado antes en otro artículo sobre el tema de la Virtualización, este concepto no es más que una tecnología que consiste básicamente en poder compartir una misma «Infraestructura de Hardware»
para la instalación y ejecución de varios «Sistemas Operativos»
, funcionando de forma totalmente independiente.
Aunque a veces, tan solo suelen virtualizarse aplicaciones de un «Sistema Operativo»
sobre otro. Utilizando para ello tecnologías más modernas y amigables, como la de los «Contenedores»
, que no necesariamente requieren de la «Virtualización»
de todo un «Sistema Operativo»
para ejecutar aplicaciones no nativas.
En esta publicación, ahondaremos sobre este tema de las «Tecnologías de Virtualización basada en Contenedores»
para seguir contribuyendo con la formación de los actuales y futuros SysAdmins y DevOps. Además seamos Administradores o Especialistas TI, o un simple Usuario de algún «Sistema Operativo»
libre o privativo, aprender sobre «Virtualización»
, es algo de imprescindible necesidad ya que nos permite expandir nuestras posibilidades y capacidades dentro de nuestra plataforma (ordenador/red) actual.
Tenga presente que, como toda tecnología, la «Virtualización»
mediante «Hipervisores»
o «Contenedores»
, tiene ventajas y desventajas que la harán más útil en algunos casos que otros. «Ventajas»
como: Ahorro de costes, Solventar problemas de compatibilidad de programas, Permitir la clonación y migración de sistemas en caliente, Poseer entornos de prueba, Garantizar el aislamiento y la seguridad de sistemas o aplicaciones, y favorecer la flexibilidad y agilidad del trabajo o la operatividad.
Y «desventajas»
tales como: Rendimientos inferiores a lo no virtualizado, Limitaciones de hardware soportados, Tendencia a la sobre-virtualización de recursos, Riesgos por centralización de recursos virtualizados, y Riesgos de portabilidad de recursos virtualizados por falta de uniformidad o estandarización de las tecnologías implementadas.
Sin embargo, a pesar de todos los pros y contra, de las «Tecnologías de Virtualización»
en general, las basadas en «Contenedores»
, se erigen como una excelente solución informática, que ofrece mucho y permite un mejor y mayor aprovechamiento de los recursos de hardware disponibles, entre otros puntos a destacar.
Tecnologías de Contenedores disponibles
Tal como expusimos brevemente en nuestro artículo anterior sobre el tema, en donde nos enfocamos sobre las «Tecnologías de Virtualización basada en Hipervisores»
(Tipo 1, Tipo 2 e Híbridos), las «Tecnologías de Virtualización basada en Contenedores»
han crecido en popularidad como una muy buena alternativa al uso de los «Hipervisores»
, ya que pueden colocar más aplicaciones en un solo «Servidor físico»
que en una «Máquina Virtual»
.
Repaso Histórico
Inicios
Los «Contenedores»
no son un concepto nuevo; los primeros pasos hacia los «Contenedores»
sobre «Linux»
se dieron en el año 1979, mientras que ya antes sobre«Unix»
se habían dado hace unos años antes. Desde este punto hasta ahora, ha habido muchos hitos importantes (pasos evolutivos) para llegar al actual despliegue de aplicaciones de contenedores existente, que aún no termina.
Al principio, las «Tecnologías de Virtualización basada en Contenedores»
se centró en mejorar el aislamiento de los mismos. Es decir, en el enfoque principal basado en aislar los sistemas de archivos de los contenedores, lo que dio origen a «Solaris Containers»
, tecnología que aprovechó la función mejorada del «Sistema Operativo Solaris»
llamada «Zones»
para aislar aún más los «Contenedores»
.
Luego, resaltan las contribuciones de «Google»
en el ámbito los «Contenedores»
, que derivaron en varias arquitecturas de contenedores desde el año 2006. Las cuales tenían la capacidad de particionar y asignar recursos de hardware, almacenamiento y red a los contenedores creados, proporcionando a los usuarios un mayor poder de control sobre los «Contenedores»
y el cómo estos podían influir sobre la seguridad y el desempeño colaborativo dentro de un mismo Servidor.
Mejoras que poco a poco se insertaron dentro de los propios «Sistemas Operativos Linux»
, lo cual impulsó la evolución de las «Tecnologías de Virtualización basada en Contenedores»
conocidas actualmente. Destacándose las conocidas como «LXC»
, «LMCTFY»
de «Google»
, que luego derivo en «Kubernetes»
, y «Docker»
.
Actualidad
Siendo está última bastante resaltante, ya que fue diseñada para tomar el marco técnico de los contenedores (aislamiento y control de recursos) y operacionalizarlo. Y así al día, de hoy, la tendencia marca un panorama hacia la fusión progresiva entre «Kubernetes»
y «Docker»
, al igual que otras tecnologías, que tienden a combinarse como, por ejemplo, «RKT»
de CoreOS que es una especie de variante de «Docker»
. Desde entonces, el uso de «Contenedores»
ha crecido en popularidad y se ha convertido en una estrategia viable para la «Virtualización»
a nivel empresarial durante estos últimos años.
Ahora, y durante el año 2020, la evolución de las «Tecnologías de Virtualización basada en Contenedores»
no tiene signos de ir en descenso, al contrario, se ve en pleno crecimiento y desarrollo. Ya que, estas seguirán siendo compatibles con la implementación de aplicaciones como una opción de alojamiento, pero con el añadido de evolucionar hacia una tecnología que proporcione un conjunto completo de herramientas para crear y ejecutar aplicaciones distribuidas, para estar a tono con esta moderna y pareja tendencia tecnológica de desarrollo.
Mientras, todo esto llega y pasa, seguramente veremos cambios importantes y rápidos, que requerirán un tiempo considerable de capacitación y trabajo de integración en los departamentos empresariales de TI y sus equipos de trabajo para asimilar e implementar toda esta nueva tecnología en plena evolución. Sobre todo, por qué las «Tecnologías de Virtualización basada en Contenedores»
del futuro serán muy diferente a las de hoy en día, por lo que se debe aprovechar al máximo cada paso en el conocimiento y uso de las mismas.
¿Qué es un Contenedor?
Un Contenedor puede definirse con varias ideas o conceptos. Por ejemplo:
- Es un entorno de ejecución completo.
- Son paquetes de elementos que permiten ejecutar una aplicación determinada en cualquier Sistema Operativo.
- Es la replicación de un sistema u aplicación a partir de la base que provee una aplicación intermedia (middleware).
- Es un modo estándar de empaquetar código, configuraciones y dependencias de una aplicación en un único objeto.
- Es la tecnología que consiste en agrupar y aislar entre sí, aplicaciones o grupos de aplicaciones, que se ejecutan sobre un mismo núcleo de un Sistema Operativo.
En palabras más técnicas y mejor expresadas, se puede citar el concepto conseguido en la página oficial de HPE (Hewlett Packard Enterprise) que dice:
“Los Contenedores de aplicaciones son entornos ligeros de tiempo de ejecución que proporcionan a las aplicaciones los archivos, las variables y las bibliotecas que necesitan para ejecutarse, maximizando de esta forma su portabilidad”.
HPE, luego agrega de forma individual sobre los mismos, el siguiente concepto para diferenciar esta tecnología de virtualización de la de Hipervisores:
“Si bien las Máquinas Virtuales (VM) tradicionales permiten la virtualización de la infraestructura de computación, los Contenedores habilitan la de las aplicaciones de software. A diferencia de las Máquinas Virtuales, los Contenedores utilizan el Sistema Operativo (SO) de su host en lugar de proporcionar el suyo propio”.
Sin embargo, un «Contenedor»
puede fácilmente contener un «Sistema Operativo»
independiente y funcional si fuese necesario. Y todas las arquitecturas de «Contenedores»
se diferencian de las arquitecturas de «Hipervisores (Máquinas Virtuales)»
porque están diseñadas para virtualizar el hardware y al menos el software básico de plataforma, no solo el hardware.
Además, al hablarse de «Contenedores»
, hay 2 conceptos muy importantes que siempre se mencionan y se deben tener presente, que son:
La Orquestación
La «Orquestación»
es la capa de la pila de la tecnología de los «Contenedores»
, donde se implementan, duplican y se despliegan los mismos, cuando se necesitan ampliar o reemplazar algunos defectuosos, por lo que se le considera el factor unificador de dicha tecnología. Es decir, está se centra en la automatización y administración de los «Contenedores»
y su interacción. Esto, debido a que como cada «Contenedor»
corre un solo «Sistema Operativo»
, y cada «Contenedor»
comparte el «Kernel del Sistema Operativo»
común con los otros «Contenedores»
, el proceso de «Orquestación»
es fundamental para el óptimo funcionamiento de dicha tecnología.
La Operacionalización
La «Operacionalización»
se refiere a la parte de la tecnología que se centra en facilitar la implementación y la gestión operativa del ciclo de vida de las aplicaciones dentro de los «Contenedores»
. Esto, con la finalidad ir más allá de lo que un «Contenedor»
hace, y explotar al máximo lo que un «Sistema de Contenedores»
podría necesitar y hacer, con miras a las tecnologías basadas en la nube, los microservicios y otras existentes y nuevas, para facilitar la integración de los beneficios de las «Tecnologías de Virtualización basada en Contenedores»
con los objetivos del negocio, y así crear las mejores políticas de TI necesarias.
Ventajas
- Ofrecen un enfoque alternativo para la Virtualización basada en Hipervisores.
- Reducen los costos de licencias sobre el Sistema Operativo al compartir el mismo, además de aumentar el rendimiento y eliminar el gasto de recursos de memoria y procesador necesarios para ejecutar múltiples versiones del mismo.
- Benefician a los entornos de nube en una variedad de maneras. Ya que, en comparación con las pesadas Máquinas Virtuales, los Contenedores son ambientes de componentes ligeros que permiten a las aplicaciones moverse entre las nubes sin necesidad de un gran trabajo por rehacerlas.
- Minimizan los recursos redundantes que cada instancia virtual necesita, permitiendo al mismo Servidor alojar más contenedores que Máquinas Virtuales comparables, lo que mejora significativamente la escalabilidad y el rendimiento sobre la nube.
- Mejoran los entornos que exigen computo de gran escala y que comparten componentes clave. Por ejemplo, si hay que implementar 10 copias de un mismo recurso, con la misma carga de trabajo y Sistema Operativo usado, es mucho más eficiente y rentable utilizar Contenedores que Máquinas Virtuales tradicionales basadas en Hipervisores.
- Permiten la arquitectura de microservicios, lo que los convierte en una nueva forma de ensamblar aplicaciones.
- Proveen mayores velocidades de respuestas, ya que se pueden iniciar y detener mucho más rápido que las Máquinas Virtuales. Mientras que un contenedor puede iniciar hasta en fracciones de segundo, cualquier Máquina Virtual requiere varios segundos.
Desventajas
- Menos versatilidad al depender de un solo Sistema Operativo comparado con la Virtualización basada en Hipervisores. Por ejemplo, como los contenedores deben moverse a los Servidores con el núcleo del Sistema Operativo compatible, migrarlos requiere más pensamiento y planificación. Mientras que las Máquinas Virtuales tradicionales pueden ser migradas a casi cualquier lugar con un Hipervisor adecuado, independientemente del Sistema Operativo.
- No son muy útiles en Centros de Datos que exijan versatilidad e independencia óptima con respecto a las cargas de trabajo ejecutadas.
Programas usados
Entre las actuales y más usadas «Tecnologías de Virtualización basada en Contenedores»
podemos mencionar a las siguientes, en orden alfabético:
Docker
Está tecnología de «Contenedores»
fue lanzada en el año 2013 como un desarrollo de código abierto llamado «Docker Engine»
. Desarrollo que aprovechó los existentes conceptos y conocimientos sobre contenedores hasta la fecha provenientes del mundo Linux, tales como «cgroups»
y «namespaces»
, para formarse y evolucionar. Haciendo de sí misma, una tecnología única que se centra en los requisitos de los desarrolladores y operadores de sistemas para separar las dependencias de las aplicaciones de la infraestructura.
Con el tiempo, el éxito de esta tecnología la hizo expandirse del ambiente abierto de «Linux»
al ambiente privativo de «Microsoft»
sobre «Windows Server»
. Por lo que a veces, «Docker»
es conocido ahí como «Docker Windows»
. Y así «Docker»
, su tecnología y sus bases libres y abiertas, han logrado también ser aprovechada por los mejores proveedores de «Centros de Datos»
y «Computación en la nube»
. Por eso, hoy en día es muy común ver dicha tecnología asociada a «Soluciones IaaS»
y de «Computación sin Servidores»
en la nube.
Pero, en resumen y citando al sitio web oficial (https://www.docker.com/) de «Docker»
, ellos mismos definen al «Contenedor»
de «Docker»
como:
“Una unidad estándar de software que empaqueta el código y todas sus dependencias para que la aplicación se ejecute de forma rápida y fiable de un entorno informático a otro. Una imagen de contenedor Docker es un paquete de software ligero, independiente y ejecutable que incluye todo lo necesario para ejecutar una aplicación: código, tiempo de ejecución, herramientas del sistema, bibliotecas de sistema y configuraciones”.
«Docker»
hace que todo el «Software Contenedorizado»
siempre funcioné de la misma manera, independientemente de la infraestructura. Ya que aíslan el software de su entorno y garantizan su funcionamiento uniforme a pesar de las diferencias, por ejemplo, entre el desarrollo y la puesta en escena.
«Docker»
asegura que cuando sus «Contenedores»
ejecutados sobre su «Docker Engine»
son:
- Un estándar para el sector de Contenedores, muy portátil y fácil de ejecutar en cualquier lugar.
- Muy ligeros, ya que todos los Contenedores comparten el núcleo del Sistema Operativo, aumentado la eficiencia de los Servidores y reduciendo los costos de los Servidores y las licencias usadas.
- Muy seguros, debido a sus potentes capacidades de aislamiento.
Hyper-V Container
«Microsoft»
inicio pruebas de la «Tecnología de Virtualización»
conocida como «Hyper-V»
entre el 2006 y 2007, lanzando una versión definitiva para junio de 2008. Está se basa en el uso de un «Hipervisor»
para los «Sistemas Operativos»
de 64 bits soportado por procesadores basados en tecnología «AMD-V»
o «Intel-VT»
, y debutó definitivamente sobre el «Sistema Operativo»
«Windows Server 2008»
.
Está tecnología dentro de «Windows»
incluye dos niveles distintos de aislamiento para los «Contenedores»
, los cuales son: «Aislamiento de procesos»
y «Aislamiento por Hyper-V»
. El «Aislamiento de procesos»
suele también mencionarse como «Aislamiento por Sistema»
. Los 2 niveles o clases crean, gestionan y funcionan de forma idéntica. Además, hacen crean y gestionan las mismas imágenes contenidas. La diferencia entre ellos radica en el nivel de aislamiento creado entre el «Contenedor»
, el «Sistema Operativo»
del Host y todos los demás «Contenedores»
que se ejecutan en ese Host.
Y cada una de ellas puede describirse de la siguiente manera:
- Aislamiento por Sistema: En este modo las múltiples instancias de contenedores pueden ejecutarse simultáneamente en un host, mediante el aislamiento proporcionado a través de tecnologías de espacio de nombres, control de recursos y el aislamiento de los procesos. Los Contenedores comparten el mismo núcleo con el host, y entre ellos. Asemejándose mucho al funcionamiento de los Contenedores en los Sistemas Operativos Linux.
- Aislamiento por Hyper-V: En este modo las múltiples instancias de contenedores pueden ejecutarse simultáneamente en un host, sin embargo, cada contenedor se ejecuta dentro de una Máquina Virtual especial. Para así proporcionar aislamiento a nivel del Kernel entre cada Contenedor y el Host que lo contiene.
Los «Contenedores»
utilizados bajo «Aislamiento por Sistema»
proporcionan un rendimiento superior, debido a que son de peso ligero, no dependen de una capa de virtualización o de las distintas capas de abstracción que vienen con ella, mientras que comparten el núcleo del Servidor del «Sistema Operativo Windows»
. Mientras que los «Contenedores»
utilizados bajo «Aislamiento por Hyper-V»
son más lentos, pero ofrecen mayor seguridad, ya que no comparten componentes del núcleo con el «Sistema Operativo»
principal del Servidor. Para ello, utilizan Máquinas Virtuales Hyper-V que albergan «Contenedores»
dentro de los espacios de nombres dedicados.
Todo esto, trae como consecuencia que un «Contenedor bajo Hyper-V»
tiende a ser físicamente más grande que un «Contenedor bajo Sistema»
. O que un «Contenedor bajo Hyper-V»
no se desempeñe tan bien como un «Contenedor bajo Sistema»
, e incluso llegue consumir más recursos del Sistema. Por lo tanto, un «Contenedor bajo Sistema»
suele ser mejor para manejar cargas de trabajo de propósito general, mientras que un «Contenedor bajo Hyper-V»
es más adecuado para entornos de alta seguridad. Puede conseguirse más información al respecto, en la sección oficial de Hyper-V (https://docs.microsoft.com/es-es/virtualization/hyper-v-on-windows/about/) en español, en el sitio oficial de Microsoft.
Kubernetes
Está tecnología de «Contenedores»
fue lanzada en el año 2014, por parte de «Google»
y cómo resultado del esfuerzo y la experiencia acumulada por este en la materia, por década y media, y en el área de gestión de aplicaciones en producción a gran escala, más la suma de las mejores ideas y prácticas de la comunidad de usuarios de las mismas.
Según el sitio oficial (https://kubernetes.io/es/docs/concepts/overview/what-is-kubernetes/) de «Kubernetes»
en español, esta tecnología se describe como:
“Una plataforma portable y extensible de código abierto para administrar cargas de trabajo y servicios. Kubernetes facilita la automatización y la configuración declarativa. Tiene un ecosistema grande y en rápido crecimiento. El soporte, las herramientas y los servicios para Kubernetes están ampliamente disponibles”.
Los usos de esta tecnología pueden ser muy variados y útiles, por ejemplo, puede ser usada como plataforma de «Contenedores»
, «Microservicios»
o «Nube portable»
, entre otras formas. Pero según el sitio oficial antes mencionado, dicha tecnología es especial para:
“Ofrecer un entorno de administración centrado en contenedores. Kubernetes orquesta la infraestructura de cómputo, redes y almacenamiento para que las cargas de trabajo de los usuarios no tengan que hacerlo. Esto ofrece la simplicidad de las Plataformas como Servicio (PaaS) con la flexibilidad de la Infraestructura como Servicio (IaaS) y permite la portabilidad entre proveedores de infraestructura”.
Está plataforma cuenta con un excelente soporte y documentación en español, y otros idiomas, por lo que lo ideal es consultar la fuente original para conocerla, usarla y dominarla.
LXC
La «Tecnología de Virtualización basada en Contenedores»
de «LXC»
no proporciona una «Máquina Virtual»
, sino un «Entorno Virtual»
con su propio espacio de procesos y de nombres. Está tecnología hace un uso eficiente de los conocidos «cgroups»
, que es una funcionalidad propia del «Kernel Linux»
, lo que provoca que solo permita alojar «Sistemas Operativos GNU/Linux»
.
Esta «Tecnología de Virtualización»
permite aislar los procesos y los recursos de una manera mucho más simple que con «Máquinas Virtuales»
tradicionales, por lo que su objetivo se centra en crear y gestionar una instalación estándar de un «Sistema Operativo»
, sin la necesidad de tener varias instancias del «Kernel»
. Esto hace que, el «Sistema Operativo»
virtualizado funcione a velocidad nativa. Por lo que esta tecnología, suele verse como un avance natural de los clásicos «chroot»
, para obtener un mayor más aislamiento y una mejor flexibilidad.
Según la traducción del sitio oficial (https://linuxcontainers.org/) de LXC está tecnología se define como:
“Una interfaz de espacio de usuario para las funciones de contención del núcleo de Linux. La cuál a través de una potente API y herramientas sencillas, permite a los usuarios de Linux crear y gestionar fácilmente Contenedores de sistemas o aplicaciones”.
Y para lograr su objetivo, usa las siguientes características del «Kernel Linux»
:
- Kernel namespaces
- Apparmor
- Perfiles SELinux
- Políticas Seccomp
- Chroot y CGroups
- Y demás capacidades del Kernel
Es de resaltar, que dicha tecnología es «Software Libre»
, y la mayor parte de su código está bajo la «Licencia GNU LGPLv2.1+»
, algunas partes relacionadas con la compatibilidad con «Android»
están bajo la «Licencia BSD»
, y algunos binarios y plantillas son lanzados bajo la «Licencia GNU GPLv2»
.
OpenShift
«OpenShift»
no es literalmente una «Tecnología de Virtualización»
en sí, sino una «Plataforma de desarrollo»
, con características de «Cloud Computing»
de la capa «PaaS (Plataforma como Servicio)»
, que ofrece la empresa «Red Hat»
. La misma internamente utiliza «Docker»
como gestor de contenedores, y «Kubernetes»
para controlar la ejecución de esos «Contenedores»
en los distintos nodos del «Clúster»
gestionado.
En otras palabras, y citando la sección de «OpenShift»
en el sitio oficial (https://www.redhat.com/es/technologies/cloud-computing/openshift) de «Red Hat»
en español, está es:
“Una plataforma de contenedores de Kubernetes empresarial con operaciones automatizadas integrales para gestionar implementaciones de nube híbrida y multicloud. Red Hat OpenShift está optimizada para mejorar la productividad de los desarrolladores y promover la innovación”.
En resumen, lo que «OpenShift»
ofrece es una infraestructura, una plataforma, donde los desarrolladores de «WebApps»
trabajen sus distintos lenguajes de programación, de forma sencilla, para lograr implantar las mismas rápidamente.
Panamax
Según el sitio oficial (http://panamax.io/) de «Panamax»
, está tecnología es algo parecida a la de
«OpenShift»
. La traducción de su web dice que «Panamax»
es:
“Es un creador de aplicaciones en contenedores con un mercado de aplicaciones de código abierto alojado en GitHub. Panamax proporciona una interfaz amigable para los usuarios de Docker, Fleet & CoreOS. Con Panamax, usted puede crear, compartir e implementar fácilmente cualquier aplicación en contenedores sin importar lo compleja que sea”.
En resumen, «Panamax»
se distingue de otras herramientas basadas en «Docker»
por ofrecer una interfaz de usuario basada en la nube, dispuesta para utilizarse en la creación y gestión de múltiples «Contenedores Docker»
mediante plantillas que se pueden compartir sobre la plataforma de «GitHub»
, que actualmente es propiedad de «Microsoft»
.
RKT (Rocket)
Está tecnología es descrita como un «motor de contenedores»
basado en estándares y orientado a la seguridad. Es decir, que técnicamente no es una «Tecnología de Virtualización basada en Contenedores»
, sino que gestiona las mismas ya existentes, desde la nube. En su sitio oficial (https://coreos.com/rkt/), dicha tecnología es explicada de la siguiente manera:
“Un motor de contenedor de aplicaciones desarrollado para entornos de producción modernos y nativos de la nube. Cuenta con un enfoque pod-nativo, un entorno de ejecución enchufable y un alcance bien definido que lo hace ideal para la integración con otros sistemas”.
En resumen, «RKT»
implementa un formato de contenedor estándar abierto y puede ejecutar otras imágenes de contenedor, como las creadas con «Docker»
. Y es el «motor de contenedores»
predeterminado para «CoreOS»
que, a su vez, es un «Sistema Operativo Linux»
ligero diseñado para implementaciones en «Clúster»
que proporciona automatización, seguridad y escalabilidad para las aplicaciones más críticas.
Singularity
«Singularity»
es otra plataforma que usa «Tecnología de Virtualización basada en Contenedores»
desde la Nube. La misma, es una plataforma de contenedores de «Código Abierto»
diseñada para ser simple, rápida y segura. Además, está optimizada para cargas de trabajo de «EPC»
y «HPC»
, permitiéndole a los usuarios no confiables ejecutar contenedores no confiables de una manera confiable.
Es decir, los «Contenedores»
de «Singularity»
permiten empaquetar flujos de trabajo científicos completos, software y bibliotecas, e incluso datos. Otorgándole a los Usuarios, la posibilidad de un control total sobre el «Contenedor»
creado sin necesidad de pasar por el administrador de la plataforma.
Más información sobre «Singularity»
, puede conseguirse en su sitio web oficial (https://sylabs.io/singularity/).
Vagrant
Mención especial, merece «Vagrant»
que, aunque no es una «Tecnología de Virtualización basada en Contenedores»
propiamente dicha, funciona como una de ellas. Ya que realmente ejecuta una Máquina Virtual pero usando motores externos existentes de Máquinas Virtuales. Básicamente y citando al sitio oficial (https://www.vagrantup.com/) de sus desarrolladores, «Vagrant»
es:
“Una herramienta gratuita de línea de comandos, disponible para Windows, MacOS X y GNU/Linux, que permite generar entornos de desarrollo reproducibles y compartibles de forma muy sencilla. Para ello, Vagrant crea y configura Máquinas Virtuales a partir de simples ficheros de configuración”.
En resumen, «Vagrant»
sirve simplemente para ayudarnos a crear y configurar «Máquinas Virtuales»
con determinadas características y componentes. Por lo que además, es necesario también instalar «VirtualBox»
, «Docker»
o «Hyper-V»
, entre otros.
Y por último, vale la pena mencionar que existen otras tecnologías parecidas o relacionadas con los «Contenedores»
, o el uso de los llamados «Virtual Private Servers (VPS)»
o de las «Tecnologías de Virtualización por Aislamiento»
, entre las que destacan:
Linux-VServer
Visitar el enlace: http://www.linux-vserver.org/
Openvz
Visitar el enlace: https://openvz.org/
Oracle Solaris Zones
Visitar el enlace: https://docs.oracle.com/cd/E37929_01/html/E36580/zonesoverview.html
Virtuozzo
Visitar el enlace: https://www.virtuozzo.com/
Para mayor información sobre estás, te recomendamos acceder a sus sitios oficiales para que inicies las respectivas investigaciones al respecto.
Conclusión
Determinar qué tipo de «Tecnologías de Virtualización»
es mejor depende de las necesidades y modelo de negocio de una Organización y de las capacidades de su Personal TI (Ingenieros, SysAdmins, DevOps). Sin embargo, las actuales «Tecnologías de Virtualización basadas en Contenedores»
suelen tener buenos puntos fuertes con respecto a las «Tecnologías de Virtualización basadas en Hipervisores»
, ya que son mucho más portables y menos exigentes a nivel recursos de cómputo.
Mientras, los «Contenedores»
permiten desplegar aplicaciones más rápidamente, iniciarlas y detenerlas más rápidamente y aprovechar mejor los recursos de hardware disponibles, las «Maquinas Virtuales»
permiten crear sistemas completos totalmente aislados, con mayor control sobre el entorno y mezclando «Sistemas Operativos»
diferentes entre el equipo «host»
y los equipos «huéspedes»
.
Sin embargo, debemos tener presente que debido a temas de seguridad, funcionabilidad y usabilidad de los elementos virtualizados vía «Contenedores»
, estos no necesariamente reemplazarán el uso de «Hipervisores»
, sino que las Organizaciones tenderán por mucho tiempo a usar una combinación de ambas tecnologías para diversos ámbitos en los que cada una es mejor que la otra, tal como actualmente suele suceder en la práctica.
Sobre todo, en cuanto al tema de «Seguridad Informática»
se refiere, ya que los «Contenedores»
suelen considerarse menos seguros que los «Hipervisores»
, debido a que las aplicaciones de los primeros tienen un «Sistema Operativo»
compartido, mientras que las «Máquinas Virtuales»
de los segundos aíslan no solo la aplicación, sino también el «Sistema Operativo»
usado.
Ocasionando que, si una aplicación virtualizada en un «Contenedor»
se ve comprometida, se podría atacar al «Sistema Operativo»
compartido, afectando a las otras aplicaciones existentes. Mientras que una aplicación virtualizada comprometida dentro de una «Máquina Virtual»
seguramente solo afectará al «Sistema Operativo»
de la misma, y no otras aplicaciones o «Sistemas Operativos»
de otras «Máquinas Virtuales»
o del «Servidor físico»
.
Por lo tanto y en definitiva, las actuales «Tecnologías de Virtualización basadas en Contenedores»
están desde hace mucho tiempo entre nosotros, debemos conocerlas, usarlas, dominarlas y sacar el mejor provecho para nosotros y nuestras organizaciones, por el tiempo que estén vigentes y sean reemplazadas por nuevas y mejores tecnologías en este ámbito de la «Virtualización»
.
Gracias por visitar el blog oficial de la tienda ReDIGIT Informática Circular. Si estás buscando ordenadores, monitores o portátiles baratos, en nuestra tienda online podrás encontrar PC de sobremesa a partir de 99 euros IVA incluido y portátiles económicos con 2 años de garantía. Todos los equipos en venta en ReDIGIT son de ocasión (segunda mano, renovados, refurbished y outlet), funcionan perfectamente y son ideales para cualquier tarea de tipo doméstico y profesional. ReDIGIT es la primera tienda en España que ofrece hasta 3 años de garantía en productos de informática de ocasión. Ponte en contacto con nosotros llamando/escribiendo directamente al Tel. y WhatsApp: 974 353 720.