La infraestructura como código (IaC) es un enfoque para la gestión de infraestructuras de sistemas de TI que se basa en el uso de archivos de configuración repetibles para generar entornos de implementación consistentes para el desarrollo de CI/CD.
La infraestructura como código se refiere al aprovisionamiento y la gestión de la infraestructura, incluido el hardware, los recursos virtuales, las plataformas, los sistemas de contenedores, los servicios y las topologías, mediante definiciones declarativas o de guion (código) en lugar de mediante la configuración manual o el uso de herramientas de configuración tradicionales. La IaC separa las configuraciones, las políticas, los perfiles, los guiones y las plantillas del hardware o el software en el que se implementan para que puedan almacenarse, compartirse, revisarse y aplicarse como puede hacerse con el código.
Este enfoque, que ha crecido con la popularidad de las infraestructuras de la nube, surge a partir de la mentalidad de DevOps y aplica a la orquestación de la infraestructura el mismo tipo de control de versiones y de repetibilidad que los desarrolladores utilizan para el código fuente de las aplicaciones. Un enfoque IaC apoya la integración, entrega e implementación continuos, creando el mismo entorno de infraestructura cada vez que se aplica.
La capacidad de tratar la infraestructura como código aporta los beneficios de la automatización, la visibilidad, la eficiencia y la escalabilidad a la gestión de la infraestructura, de modo que las aplicaciones pueden implementarse de forma más rápida y fiable, con menos esfuerzo manual y riesgo de errores humanos o vulnerabilidades de seguridad. Dado que la configuración está separada del sistema, puede implementarse más fácilmente en un sistema similar en otro lugar. De esta manera, se reducen las dificultades de migrar de un centro de datos a una nube o de una nube a otra.
La IaC también da soporte al desarrollo ágil y las estrategias de CI/CD, asegurando que los entornos de caja de arena, pruebas y producción sean idénticos y permanezcan consistentes a lo largo del tiempo, ya que todos están configurados con el mismo código declarativo o de guiones.
La configuración de la IaC de servidores, equilibradores de carga, máquinas virtuales y otros recursos de centros de datos o de la nube se puede lograr ya sea mediante enfoques imperativos que especifican instrucciones (sin detallar el resultado) o mediante enfoques declarativos que especifican el resultado de configuración deseado (sin detallar cómo llegar a ese resultado, que puede basarse en flujos de trabajo y plantillas preexistentes). La diferencia es comparable a pedir un sándwich y confiar en que el fabricante de sándwiches sepa qué pasos hay que dar y en qué orden (declarativo), o especificarle todos los pasos necesarios a seguir sin mencionar necesariamente que está haciendo un sándwich (imperativo).
Ya sea que se utilice un enfoque declarativo o imperativo, la IaC automatiza el aprovisionamiento y la administración de la infraestructura.
La plataforma F5 BIG-IP puede tratarse «como código» con plug-ins o con extensiones de Application Services 3 (AS3) de F5 para la configuración de IaC y herramientas de versionado como Terraform y Ansible.
F5 Automation Toolchain incorpora extensiones AS3 y extensiones F5 Declarative Onboarding (DO). AS3 es un mecanismo flexible y de bajo coste basado en declaraciones JSON para configurar los servicios de aplicaciones de las capas L4-L7 en un sistema BIG-IP. Las extensiones DO permiten la incorporación de productos BIG-IP declarativa de L1-L3.