Docker, optimizando virtualizaciones
Desde hace un tiempo, muchos departamentos de sistemas de empresas están optando por virtualizar sus servidores, de forma que muchos servidores virtuales se pueden almacenar en pocos servidores reales, con el consiguiente ahorro en la compra y el mantenimiento del hardware.
La virtualización, además permite optimizar el rendimiento, pues cuando un servidor no tiene carga, los ciclos que se gastarían en nada, se usan para otro servidor que sí que necesita carga en aquel momento. La correcta dimensión de los servidores debería resolver los episodios de fuerte carga simultánea.
La virtualización conlleva muchas ventajas y muchas optimizaciones, pero despilfarra un poco los recursos de la máquina host al tener que almacenar varios sistemas operativos que a veces son el mismo.
Hasta ahora se había simplificado un poco el esquema liberando al servidor host de su propio sistema operativo, poniendo un sistema que solamente era capaz de lanzar máquinas virtuales, como por ejemplo Vmware ESX, Vsphere o HyperV.
Docker propone un sistema novedoso por el que en lugar de focalizar los esfuerzos en los servidores virtuales disponibles, se focaliza en los servicios.
Docker propone un paquete de aplicación, por ejemplo ‘Servidor Web’ en el que se almacenan la propia aplicación de servidor web y sus dependencias con el sistema operativo, por ejemplo un intérprete PERL, un subsitema de comunicaciones TCPIP, y poca cosa más. Este paquete, se puede ejecutar sobre un sistema operativo común, ahorrando:
– un sistema operativo entero en cada máquina virtual
– el mantenimiento y las actualizaciones de los varios sistemas operativos.
– el espacio de almacenamiento de varios sistemas operativos.
– el espacio de memoria de cada sistema operativo
– la gestión de memoria y paginado virtual de cada sistema operativo.
– las licencias de cada sistema operativo.
Es sencillo: si yo quiero un servidor Web, un servidor de base de datos, un servidor de aplicaciones y un servidor de archivos, ello no debería conllevarme tener que cargar con el mantenimiento de cuatro servidores (entonces virtualizamos) y tampoco debería conllevarme el mantenimiento de cuatro sistemas operativos (entonces empaquetamos con Docker y corremos sobre un solo sistema operativo).
Evidentemente estos tipos de montaje son solo para empresas grandes, y para sistemas de alto rendimiento en los que los servidores son dedicados a su rol. Para empresas con montajes sencillos, es frecuente que un solo servidor cargue con todos los servicios, pero entonces quedamos limitados a la oferta de servicios que haya sobre la plataforma escogida y a peligrosas caidas de servicio en caso de contingencia.
De momento, Docker funciona sobre Windows, sobre Linux y sobre IOS, y acepta contenedores de aplicaciones solo de Linux, pero se está trabajando para tener contenedores de aplicaciones de Windows.
Por Sistemas, el 05/07/2015.