¿Qué es la infraestructura como código (IaC)?
La infraestructura como código (IaC) es la práctica que consiste en gestionar y aprovisionar la infraestructura a través de procesos automatizados y software, en lugar de procesos manuales y hardware. Permite a los desarrolladores de software escribir y ejecutar instrucciones para cumplir los requisitos informáticos, de almacenamiento y de red, y así aprovisionarlos más rápido de lo que sería posible mediante un proceso manual. A diferencia de los scripts básicos que se utilizan para automatizar los procesos de TI repetitivos, la infraestructura como código puede controlar procesos más complejos, versátiles y adaptables.

Documento técnico de IDC: «Network Automation: The Missing Piece in DX Strategies»

VMware Aria Automation
¿Por qué es importante la infraestructura como código?
Diferencias entre infraestructura como código y plataforma como código
La infraestructura como código (IaC) y la plataforma como código (PaC) son conceptos similares que se aplican a diferentes capas de la pila de tecnología. Como hemos visto, la IaC se ocupa del aprovisionamiento de recursos informáticos, almacenamiento y red en la capa de infraestructura. Por el contrario, la PaC se ocupa de la capa de la plataforma (incluidos el sistema operativo y las herramientas de desarrollo) y permite a los desarrolladores definir y ejecutar la plataforma para sus aplicaciones.
Además de la diferencia en cuanto a la capa de la que se ocupan, la principal diferencia entre la IaC y la PaC radica en cómo se implementan: la IaC se implementa escribiendo capas superficiales en las API de Kubernetes, mientras que la PaC se implementa escribiendo extensiones de API de Kubernetes.
¿Cuáles son las ventajas de la infraestructura como código?
Entre las ventajas que ofrece la implementación de la infraestructura como código, se encuentran las siguientes:
- Implementación de las prácticas recomendadas de DevOps: cuando la infraestructura se aborda de la misma manera que cualquier otro código, las prácticas recomendadas de DevOps (como, por ejemplo, la supervisión continua, el control de versiones y las pruebas automatizadas) ayudan a garantizar una gestión sencilla.
- Autoservicio para desarrolladores: en lugar de obligar a los desarrolladores a depender del departamento de TI para aprovisionar recursos, la IaC les permite aprovisionar su propia infraestructura de forma segura y conforme.
- Aprovisionamiento más rápido y escalabilidad: la naturaleza automatizada de la IaC permite ampliar o reducir recursos de una manera que sería difícil de gestionar manualmente, sobre todo en un entorno contenedorizado donde los microservicios requieren que la infraestructura se aprovisione por separado para cada servicio.
- Repetibilidad y coherencia garantizadas: el hecho de usar la misma base de código para aprovisionar la infraestructura le permite mantener la coherencia en cientos o miles de aplicaciones.
Consideraciones para la infraestructura como código
La infraestructura como código (IaC) se vuelve necesaria en un entorno empresarial de DevOps que esté contenedorizado, además de suponer pocas desventajas. Sin embargo, puede presentar algunos desafíos: la variedad de herramientas de infraestructura como código disponibles puede ser compleja y podría requerir formación adicional para los equipos de TI. La automatización de la infraestructura también significa que los errores pueden proliferar rápidamente en un entorno de IaC, por lo que el control de versiones y las pruebas son muy importantes. Del mismo modo, aunque la IaC suele proteger contra las discrepancias de configuración, en realidad puede contribuir a ellas si los administradores de TI cambian las configuraciones de los servidores sin seguir la plantilla de IaC estándar. Por este motivo, es importante poner en práctica unos estándares de IaC y documentar las políticas minuciosamente.
¿Qué ventajas de seguridad ofrece el uso de la infraestructura como código?
En lo que respecta a la seguridad, se aplica a la infraestructura como código la misma advertencia que a cualquier tipo de automatización: debe configurarse correctamente desde el principio para evitar un incremento de los daños o problemas de seguridad debido a que los errores se repiten a gran escala. Sin embargo, cuando se configura y se analiza detenidamente, una infraestructura como código segura puede minimizar los riesgos de que se produzcan errores humanos y garantizar que las consideraciones de seguridad se integren en el proceso de desarrollo.
Debido a que se basa en la automatización en lugar de en procesos manuales, la IaC brinda todas las ventajas de seguridad de la automatización y puede evitar los problemas de seguridad asociados a las discrepancias de configuración. La gestión centralizada de servidores y aplicaciones garantiza la coherencia y la seguridad en todo el entorno. Los cambios no se efectúan manualmente, sino que se deben definir en el código, lo que ayuda a evitar cambios no autorizados. De hecho, las configuraciones declarativas garantizan que cualquier cambio efectuado directamente (en lugar de mediante código) se anule automáticamente y se priorice el estado definido en el código. También es fácil revertir los cambios (incluso los aplicados mediante código) gracias a un eficaz control de versiones.
Asimismo, los entornos de IaC son más fáciles de auditar, ya que todo (incluso las configuraciones de los servidores) está definido y documentado en el código. De este modo, es fácil proporcionar esa información a un auditor externo.
Productos y soluciones relacionados
VMware Aria Automation
Utilice una plataforma de automatización de la infraestructura.
Red moderna
Cree una red moderna centrada en los usuarios y las aplicaciones que utilizan.
Gestión de la nube
Hace posibles la implementación, las operaciones y la optimización coherentes.