Infraestructura como código: la automatización programada de los sistemas TI

Manuel García Gil    21 septiembre, 2017
infraestructura-como-codigo-iac

¡Bienvenidos al mundo de la virtualización, de cloud, del no hierro! Vivimos una época dorada en la que se promete el uso continuado de recursos de computación, espacio ilimitado, IOPS (entradas y salidas por segundo) como caramelos y conectividad sin restricciones, pero ¿esto se detendrá en algún momento?

En la actualidad la tecnología cloud y todo lo relacionado con ella está creciendo a un ritmo vertiginoso, con cambios constantes y rápidos avances. Lo ilustra muy bien este chiste de Forges:

-Vengo a por este ordenador que es el último modelo

-Perdone, caballero, no es el último modelo

-¿Cómo que no? Ayer mismo me dijeron que…

-Ayer, caballero, ayer…

Es un ejemplo de que el concepto de virtualización, de nube, de elasticidad en el uso, de plasticidad en los sistemas está permeando en todas las capacidades TI que puede necesitar una empresa, ya que no solo es posible abstraer los recursos de computación, espacio de trabajo y almacenamiento, sino que también disponemos de esa posibilidad en las redes y la seguridad.

Si nos fijamos, ha cambiado mucho la forma de abordar las Tecnologías de la Información. No hace tanto pensábamos en tener servidores de sockets, procesadores, buses, drivers y elementos de red con más o menos procedimientos operativos estandarizados, gigabits y trunks… y todo esto ha sido desplazado por una forma de pensar en la que no importa la infraestructura física que haya por debajo porque usamos las instancias virtuales y disponemos de los recursos de computación según los necesitamos. Resulta tan sencillo como entrar en el entorno de gestión y activarlos.

Pero podemos ir o, mejor dicho, lo estamos haciendo ya, un paso más allá, con infraestructuras, software, plataformas, almacenamiento y “cualquier cosa” como servicio: IaaS, PaaS, SaaS, StaaS, XaaS… ¿Hasta cuándo esta escalada de siglas? Creo que vamos a continuar con esta evolución bastante tiempo más, pero también que de alguna forma hemos llegado a un punto importante en el camino con un nuevo acrónimo: IaC o Infraestructura como Código.

Quienes hemos aprendido programación sabemos que consiste en el sutil arte de decirle a un ordenador qué es lo que tiene que hacer, aunque de entrada se negará… Por tanto, hay que especificarle que use clases, una, capture, imprima, ponga en pipes, haga grep… y todo eso mil veces con bucles (OMG) o con los eventos adecuados. En este sentido, la infraestructura como código permite activar, desactivar y modificar programáticamente los elementos TI que necesitemos. Es decir, hablamos de automatizar con un programa o grupo de ellos el uso de los sistemas. Esto permite no solo un control mucho más fino del uso de los recursos, sino una adecuación casi instantánea a las necesidades.

IaC se puede aplicar a entornos virtualizados en las dependencias propias, en entornos de nube pública, en despliegues de SDN, SD-WAN, SDS y en todo lo que sea “definido por software”. Implica -es el primer punto que se pone de relevancia en estos entornos- que la inteligencia no está en “el cacharro”, sino abstraída de los switches, cabinas, etc., de manera que es posible definir y redefinir de forma muy plástica un contexto. Una serie de programas permiten responder a eventos, escalar horizontalmente las instancias virtuales, ejecutar backups, almacenar imágenes de máquinas virtuales, establecer VLANs, añadir puertos, cambiar anchos de banda, etc.

¿Y todo esto sin intervención humana, os estaréis preguntando? Sí y no. Una vez que el programa se ejecuta la persona no interviene, pero alguien habrá tenido que diseñar ese programa, ¿no?

Imagen: nigelpepper

Comentarios

Deja un comentario

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