¿Por qué los programadores habrían de prestar atención a la infraestructura? Después de todo, están acostumbrados a escribir código, moverlo a la escena del entorno, y dejar que el equipo de operaciones realice un despliegue del mismo en forma de aplicaciones de usuario. No obstante, las cosas ahora son bien distintas. Los programadores de aplicaciones han de apresurarse a desarrollar aplicaciones en breves periodos de tiempo; un tipo de aplicaciones que han de poder operar flexiblemente y sacar todo el partido posible a las capacidades de los centros de datos definidos por software del mañana.
Hace poco tiempo, Microsoft anunciaba Nano Server como una interesante opción hacia esta tendencia. Diseñado para ofrecer un sistema operativo básico, fácil de desplegar, y de operar a través de hipervisores y contenedores, Nano Server puede ser dirigido hacia aquellos extremos en los que las infraestructuras programables y sistemas operativos tienen su punto de encuentro. Nano Server es, de algún modo, visto como el equivalente de Windows en el sistema operativo ligero de código abierto basado en el kernel de Linux, CoreOS, y en el SO preferido de la comunidad de código abierto que trabaja con contenedores controlados por Docker.
Aunque Nano Server pueda ser visto como un Windows Server pobre o poco consistente a causa de la supresión de todos las interfaces de usuario, actualmente es la plataforma orientada a la programación y suministro de características programáticas que permiten el empleo de herramientas de configuración de estado PoweShell (DSC) para el despliegue de dichas aplicaciones en el momento requerido. Del mismo modo, Nano Server crea sinergias con herramientas de configuración como Chef, cuyas fórmulas incluyen detalles acerca de los servicios necesarios por una aplicación y, no solo va a ser capaz de desplegar el SO, sino que también configurará y aprovisionará la clase de servicios que necesitan las aplicaciones, simplemente desencadenando una operación DSC.
La combinación de Nano Server y Chef proporciona una alternativa interesante para aplicar en operaciones llevadas por equipos de programadores, dado que el sistema delega gran parte de la responsabilidad a la infraestructura de gestión en el desarrollo de devops. En lugar de tener que gestionar múltiples imágenes de servidores, las necesidades del equipo de operaciones pasarán por disponer de un único SO de base que puede ser controlado y parcheado mientras el equipo de desarrollo se ocupa de la gestión de los servicios y las características de las aplicaciones que necesitan en cada momento.