Los contenedores son una tecnología que no es nueva en el mundo de los servidores de Linux, pero que actualmente son un tema importante; si lo dudan, Docker, el software que permite esta tecnología y que es el más importante actualmente, acaba de asegurar USD $150 millones en financiamiento; aquellos que lean sobre rondas de financiamiento a startups y demás proyectos de software o de manera general relacionados con computadoras e Internet, sabrán que es hasta cierto punto atípico que un proyecto como Docker reciba este tipo de financiamiento, pero eso es señal de la importancia que tiene actualmente; el que Microsoft lo haya implementado en el próximo Windows Server Nano, creo que también es señal de la importancia de esta tecnología.
Pero, ¿que es la tecnología de contenedores y como funciona? en concepto es algo muy sencillo; partamos del concepto de máquina virtual; estas corren sobre un emulador, que por cada máquina virtual tiene que gestionar una serie de recursos que parten desde el hardware, pasando por los dispositivos y llegando hasta el sistema operativo, y de ahí en adelante; este esquema no es malo, pero tiene una sobrecarga importante para el sistema subyacente donde se ejecutan, así como una gestión engorrosa, lo que a fin de cuentas termina limitando su utilidad.
Los contenedores o contenedores de software, en cambio, ofrecen un esquema similar, aunque compartiendo el sistema operativo; cada uno de estos contenedores puede ejecutar una aplicación o software, llámale como quieras, y tener sus propios recursos; al compartir el sistema operativo y hardware en consecuencia, la sobrecarga de cada contenedor es mínima; en pocas palabras, los contenedores permiten ejecutar muchas más instancias en el mismo hardware comparado con un hipervisor de máquinas virtuales, lo cual resulta en una ventaja importante si hablamos de la actualidad en la que muchas cosas corren en la nube, que no es más que muchísimas computadoras ejecutando un software con una finalidad determinada, pues la tecnología de contenedores permite que se haga un deployment a través de una nube con mucha facilidad. Y esa es una de las ventajas; los desarrolladores lo adoran porque les permite facilitar su trabajo, por ejemplo, creando un contenedor local que replique su ambiente de producción. En su mínima expresión, los contenedores son magníficos para proveer infraestructura.
Bien, ahora vamos con Windows Nano Server; este se anunció hace poco, y es básicamente un diseño headless (sin GUI) y con lo mínimo para funcionar, y es aún más pequeño en tamaño total que Windows Server Core; está pensado para dos escenarios: el primero es aplicaciones para la nube, y el segundo es para la infraestructura de plataforma de nube de Microsoft; el manejo de este es remoto a través de WMI y PowerShell, y todo el rollo anterior de contenedores y demás fue para llegar al punto de que la principal característica de Windows Nano Server es que implementa contenedores a través de Docker. Es importante hacer notar las diferencias en tamaño de Nano Server: 93% menor tamaño de disco duro virtual (VHD), 92% menos boletines críticos, y 80% menos reinicios. Nano Server, para lograr este tamaño, tuvo que remover GUI, soporte de 32 bits (WOW64), MSI y muchos otros componentes de Server Core. En esta implementación particular que Microsoft llama Windows Server Containers, otro aspecto clave es que permitirá controlar tanto contenedores de Windows como contenedores de Hyper-V, los cuales parece tendrán seguridad mejorada.
La idea en general es copiar el stack de Linux, a todas luces; y creo que es algo importante en el mundo de los servidores, pues le dará a Windows una característica que no tenía; pueden ser fans del sistema operativo que quieran, pero la verdad es que Linux manda en el ramo de los servidores; el que Windows Server implemente contenedores muy probablemente haga que algunos volteen a ver que es lo que están haciendo en este nuevo Microsoft bajo el mando de Satya Nadella, que si me preguntan, está tomando un giro interesante. Regresando al tema, creo que un aspecto determinante del éxito de Windows Server Containers será como se gestionen; PowerShell no es precisamente la taza de té que le gusta a todo el mundo, y pudiera significar una piedrota en el zapato. Tendremos que esperar a que se muestra la previa de Windows Nano Server en unas semanas en las conferencias BUILD para ver que tan prometedora resultará esta nueva tecnología.