Cloud init, el fichero que personaliza la nube

Cloud init, el fichero que personaliza la nube

Hace años la industrialización y la producción en serie permitieron qué John Ford redujera los costes del coche de motor de explosión y así dejar fuera de la batalla a los coches eléctricos. A veces la tecnología no tiene que ser más puntera, precisa o técnicamente superior para triunfar y escalar de forma masiva. Muchas veces no solo basta con tener el atributo qué el usuario necesita, sino que el combo perfecto, se crea a través de la unión junto con el precio y la usabilidad. O acaso alguno no se acuerda en los años 80 de la batalla comercial entre el sistema VHS y el Betacam, pocos aventuraban por aquel entonces que una tecnología como el VHS con menos prestaciones que el sistema Betacam de Sony que venía del entorno profesional, pudiese extenderse tan rápido y de forma tan efectiva dejando de forma residual el uso de beta en los hogares.

En la nube pasa lo mismo, la industralización y la adopción masiva se basa en las plantillas disponibles en los principales proveedores de Cloud. La repetición y uso de esas plantillas hace que la nube sea fácil de gestionar y fácilmente escalable para los grandes proveedores, pero, ¿qué pasa cuando un usuario quiere customizar esa plantilla en el momento de realizar el despliegue y configuración desde cero una máquina virtual en la nube?.

Aquí es donde entra en juego el fichero personalizada la nube, aquel que hace que los servidores de Netflix y Spotify tengan características muy diferentes, como la configuración regional predeterminada, la configuración del nombre de host, creación y configuración de claves privadas SSH o inclusive la creación de puntos de montaje efímeros.

Recuérdo una época no muy lejana dónde muchas empresas se dedicaban a customizar las imágenes de los servidores, hoy en día y después de más de 10 años hablando, presentando, compartiendo una demo u organizando un despliegue con clientes, creo que no más de los clientes que pueda contar con los dedos de mi mano han subido un template personalizado a alguna las nubes de las empresas en las que he trabajado.

Los servidores de la nube en general se basan en plantillas del sistema operativo y cada instancia comienza como una copia idéntica de la original. Son los datos del usuario los que le dan a cada instancia de la nube su personalidad y cloud-init es la herramienta que aplica los datos del usuario a sus instancias automáticamente.

El desarrollo de cloud-init lo inició hace años Ubuntu, ahora está disponible para la mayoría de los principales sistemas operativos Linux y FreeBSD. Inclusive tiene su versión adaptada para los servidores que corren bajo el logo de la ventana más famosa del mundo TI, conocida como Cloudbase-Init. Mientras es posible ejecutar CloudInit como un sistema de aprovisionamiento independiente, es mucho más común usarlo en conjunto con otros sistemas de aprovisionamiento, como Ansible, Chef, Puppet o Salt.

Cloudbase-Init es el equivalente de Windows del proyecto Cloud-Init utilizado en la mayoría de las imágenes de Linux. Cuando se implementa como un servicio en Windows, Cloudbase-Init se encarga de todas las acciones de inicialización de invitados: expansión de volumen de disco, creación de usuarios, generación de contraseñas, ejecución personalizada de PowerShell, CMD y Bash, plantillas de Heat, configuración remota de PowerShell y mucho más.

Gracias a estos ficheros de configuración los proveedores de cloud son capaces de personalizar y adaptar a sus necesidades las imágenes gold o máster de los principales fabricantes o distribuciones libre de sistemas operativos. El problema aparece cuando cada proveedor adapta este fichero a sus necesidades y operativa del servicio, lo que hace incompatible el descargar una máquina virtual de proveedor x y subirla al proveedor Y, más allá de la infraestructura subyacente o capas de virtualización en cada uno de los mismos.

A este respecto y mucho más allá de las herramientas de migración disponibles en el mercado, para el clonado y replicación de servidores entre los diferentes proveedores de nube. No os voy a engañar, esta historia ha cambiado poco desde que el informático es informático y hacia migraciones de servidores físicos en su data center con el famoso Ghost de Symantec. Hoy en día hay herramientas mucho más sofisticadas que permiten migraciones X2X, y no las equis no tienen ninguna connotación sexual. La x indica que el origen puede ser cualquiera, cloud, físico o virtual. En este selecto grupo tenemos viejos conocidos como puedan ser PlateSpin, Radware,…

Pero quien realmente ha sabido generar un nicho de mercado de la nada, ha sido una pequeña empresa española, con sede en Sevilla y que ha sido capaz de extender sus servicios al igual que la peste por los principales proveedores de servicios cloud. Para quien no la conozca, esta empresa se llama Bitnami.

Bitnami (según Skynet o lo que es lo mismo Mr.Google) es una biblioteca de instaladores o paquetes de software para aplicaciones web y pilas de desarrollo, así como dispositivos virtuales. Bitnami es patrocinado por Bitrock, una compañía fundada en 2003 en Sevilla, España por Daniel Lopez Ridruejo y Erica Brescia.

Efectivamente muchos de los servicios que hoy en día proporciona Bitnami, se lanzaron a través de desarrollos y proyectos donados a la comunidad Open Source y mantenidos por Bitrock. La ventaja diferencial de Bitnami es que garantiza la interoperabilidad y coexistencia de las imganes creadas por ellos, entre los principales proveedores de cloud pública. Lo cual te garantiza que realizar un despliegue en el proveedor X y luego mover esa misma aplicación al proveedor Y, generará muchos menos quebraderos de cabeza a los SysAmins que lo tengan que realizar.

Y tú, ¿de qué forma diseñas y defines las arquitecturas que despliegas en el cloud?, ¿Cuáles son tus armas para evitar el tan temido vendor lock-in?, estoy deseando conocer en detalle como lo haces, así que deja tus comentarios más abajo.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *