La infraestructura como código (IaC) es un enfoque para gestionar las infraestructuras de los sistemas de TI que se basa en el uso de archivos de configuración reutilizables para generar entornos de despliegue coherentes para el desarrollo de CI/CD.

¿Qué es la infraestructura como código?

La infraestructura como código hace referencia al aprovisionamiento y la gestión de infraestructuras —incluidos el hardware, los recursos virtuales, las plataformas, los sistemas de contenedores, los servicios y las topologías— mediante definiciones declarativas o basadas en scripts, es decir, código, en lugar de recurrir a la configuración manual o a herramientas de configuración tradicionales. La IaC desvincula las configuraciones, las políticas, los perfiles, los scripts y las plantillas del hardware o software en el que se implementan, de modo que puedan almacenarse, compartirse, revisarse y aplicarse como cualquier otro código.

Este enfoque, que ha crecido con la popularidad de las infraestructuras en la nube, nace de una mentalidad DevOps y aplica a la orquestación de la infraestructura el mismo tipo de control de versiones y repetibilidad que los desarrolladores utilizan para el código fuente de las aplicaciones. Un enfoque de IaC facilita la integración, la entrega y el despliegue continuos al crear el mismo entorno de infraestructura cada vez que se aplica.

diagrama

Figura 1: La IaC separa los recursos de configuración del hardware o el software para que puedan almacenarse, compartirse y gestionarse como código

¿Por qué es importante la infraestructura como código?

La capacidad de tratar la infraestructura como código aporta a su gestión las ventajas de la automatización, la visibilidad, la eficiencia y la escalabilidad, lo que permite desplegar aplicaciones de forma más rápida y fiable, con menos trabajo manual y un menor riesgo de errores humanos o vulnerabilidades de seguridad. Como la configuración está desacoplada del sistema, puede implementarse más fácilmente en otro sistema similar. De este modo, se reducen las dificultades que conlleva migrar de un centro de datos a la nube o de una nube a otra.

La IaC también facilita las estrategias de desarrollo ágil y CI/CD al garantizar que los entornos de pruebas aislados, de prueba y de producción sean idénticos y mantengan su coherencia a lo largo del tiempo, ya que todos se configuran con el mismo código declarativo o los mismos scripts.

¿Cómo funciona la infraestructura como código?

La configuración mediante IaC de servidores, equilibradores de carga, máquinas virtuales y otros recursos de centros de datos o de la nube puede llevarse a cabo mediante enfoques imperativos, que especifican las instrucciones (sin detallar el resultado), o enfoques declarativos, que especifican el resultado de configuración deseado (sin detallar cómo alcanzarlo, para lo cual pueden utilizarse flujos de trabajo y plantillas preexistentes). La diferencia puede compararse con pedir un sándwich y confiar en que quien lo prepara sepa qué pasos seguir y en qué orden (declarativo), o especificar cada paso necesario para prepararlo sin mencionar necesariamente que el resultado será un sándwich (imperativo).

Tanto si se utiliza un enfoque declarativo como uno imperativo, la IaC automatiza el aprovisionamiento y la gestión de la infraestructura.

¿Cómo gestiona F5 la infraestructura como código?

La plataforma F5 BIG-IP puede tratarse «como código» mediante complementos o extensiones de F5 Application Services 3 (AS3) para herramientas de configuración y control de versiones de IaC como Terraform y Ansible.

La cadena de herramientas de automatización de F5 incorpora extensiones de AS3 y de F5 Declarative Onboarding (DO). AS3 es un mecanismo flexible y de baja sobrecarga, basado en declaraciones JSON, para configurar servicios de aplicaciones de las capas L4 a L7 en un sistema BIG-IP. Las extensiones de DO permiten la incorporación declarativa de las capas L1 a L3 para los productos BIG-IP.