A día de hoy, prácticamente la totalidad de las empresas de TI se han visto forzadas a replantearse los costes y valores generados por las tecnologías de virtualización. La premisa es sencilla: consolidar las múltiples aplicaciones, distribuidas en varios servidores habitualmente infrautilizados, en un único servidor, así como obtener importantes ahorros y evitar costes adicionales.
Pero, ¿cuáles son las opciones a la hora de optar por la virtualización de sistemas? En esta ocasión os presentamos dos: las máquinas virtuales y los contenedores.
Las principales características de las máquinas virtuales son:
Los contenedores se caracterizan por:
¿Cuáles serían entonces las ventajas de la virtualización por contenedores frente a las máquinas virtuales?
Los contenedores pueden parecer el entorno de virtualización ideal y, sin embargo, no están exentos de problemas. El principal de ellos es la seguridad. El contenedor deja la seguridad en manos del sistema operativo y, por tanto, se debe encapsular al usuario. Una política de permisos incorrecta puede derivar en un sistema vulnerable.
Una forma de encapsular al usuario consiste en definir accesos de “solo lectura” o de “escritura” en ubicaciones definidas, pero esta configuración es manual y requiere bastante trabajo del Administrador del sistema.
La regla básica es “tratar un contenedor como cualquier otra aplicación”, siguiendo tres directrices:
Otro problema es que cualquiera puede crear contenedores y el origen de los mismos puede ser desconocido. Es muy recomendable verificar su contenido en sistemas independientes del entorno productivo, ya que su contenido puede ser inesperado y pueden hacer que un sistema se convierta en vulnerable.
Un contenedor soluciona la parte descendente del problema, ya que se sabe lo que tiene, pero no soluciona la parte ascendente de las dependencias. Es fácil implantar una aplicación en un contenedor, pero si no es la adecuada la implantación se transforma en una pérdida de tiempo.
La extensión de contenedores puede convertirse en un quebradero de cabeza. Desmenuzar las implantaciones en partes es un método inteligente, pero implica que hay muchas más partes que gestionar. Habrá que establecer un punto de inflexión entre extensión y preocupación.
El objetivo de un contenedor es ejecutar una única aplicación. Cuantas más aplicaciones se adhieran a un contenedor, más necesario se hace usar una máquina virtual.
Un contenedor está diseñado para ejecutar el mismo sistema operativo donde se aloja. Es muy complejo ejecutar aplicaciones diseñadas para un sistema operativo dentro de un contenedor alojado en otro sistema operativo diferente. La razón es que el núcleo del sistema subyacente es distinto. Esta característica puede ser beneficiosa porque evita preocupaciones por las dependencias una vez que la aplicación se ejecute adecuadamente en el contenedor, pero establece límites que la máquina virtual no tiene.
En términos generales, el uso de contenedores está orientado a una sola aplicación, por ejemplo, varias instancias de un motor de base de datos o servicios web, mientras que las máquinas virtuales están enfocadas en implantar sistemas operativos ágilmente para ejecutar múltiples aplicaciones de manera flexible.
El enfoque de uso de estas tecnologías no debe ser exclusivo sino al contrario. La combinación de ambos métodos al usarlos conjuntamente aporta una complementación de virtudes muy beneficiosa.
Si quieres contactar con nosotros puedes enviarnos un email a mkt@aitana.es, usar el formulario de contacto o llamar al 902 500 358.
Créditos imágenes: 105784187