El cajón de Drazul

El lugar donde duerme el pequeño dragón

Automatización De La Infraestructura: Vagrant Y Ansible

Desde hace un tiempo un ingeniero de sistemas, o mejor dicho, aquel ingeniero que se dedica a gestionar una infraestructura hardware, se pasa menos tiempo trasteando con el hardware y más programando. ¿Pero cómo es esto posible? Bueno, la respuesta es los múltiples sistemas de gestión de infraestructura mediante código, que permiten automatizar tareas tediosas o repetitivas como pudiera ser la configuración de una nueva máquina.

Pensemos en el caso en el que queremos ampliar nuestra infraestructura hardware y que compramos un nuevo servidor. ¿Cómo procedemos para instalarlo, configurarlo y dejarlo operativo? Pues tenemos varias opciones:

  • La clásica: donde una vez instalado el Sistema Operativo correspondiente cogemos la lista e instalamos a mano cada una de las dependencias software que se tienen que instalar para que nuestros procesos funcionen.
  • Forma actual: cogemos la misma lista de dependencias y la ejecutamos, de esta forma el proceso será totalmente automático y el ingeniero responsable podrá dedicarse a tareas más productivas (como leer este blog :P).

Las ventajas de gestionar la infraestructura mediante código ejecutable no se acaban en el hecho de ahorrar tiempo. Desde el momento en el que la infraestructura se trata de código, de un programa, se pueden aplicar todas las herramientas y técnicas que se llevan aplicando años al desarrollo del software, como es el control de versiones, el testing o incluso la integración contínua.

Gracias a estas herramientas se puede incluso ir un paso más allá y ¡automatizar los despliegues de hardware junto con los despliegues de nuevas versiones de nuestros procesos!

Gracias a esto también existe, por ejemplo, la tecnología de Elastic Compute de Amazon, que es capaz de gestionar la infraestructura de forma automática y añadir o quitar recursos o replicar o eliminar nuestras máquinas dependiendo de su nivel de utilización.

A continuación dejo unas transparencias sobre dos herramientas muy utilizadas para la gestión de la infraestructura: Vagrant como gestor de entornos virtuales y Ansible como sistema de aprovisionamiento y despliegue.

El ejemplo al que hacen referencia las transparencias se puede encontrar en este repositorio de Github.

Comments