¿Qué es la infraestructura como código (Infrastructure as Code)?

Infrastructure as Code (IaC)

La infraestructura como código permite a las empresas controlar más eficientemente los cambios y las configuraciones en un entorno de nube. IaC ofrece prácticas de DevOps que permiten a los desarrolladores y a las operaciones trabajar más estrechamente en la implementación de máquinas virtuales, en las redes virtuales que se construyen alrededor de ellas, y en la aplicación en las mismas.

Imperativo frente a declarativo

Una de las decisiones que debe realizar para aprovechar las IaC es si realizar cambios en su entorno con una automatización declarativa o imperativa. La mayoría de las IaC son declarativa por naturaleza. Esta es una sencilla forma de concebirla: imperativo frente a declarativo es la diferencia entre cómo debería funcionar el programa frente a qué es lo que necesita llevar a cabo el programa.

Para realizar cambios de automatización imperativos en su infraestructura, podría utilizar una interfaz de línea de comandos (CLI). Esta detecta cambios primero en la nube en un contenedor y, a continuación, en una máquina virtual (VM) y, luego, en una nube privada virtual, en orden, mediante un script. Esta es una lista detallada, pero si la configuración se debe modificar tras el lanzamiento de múltiples máquinas, los pasos y el script se tienen que volver a realizar.

Un enfoque de automatización declarativo requiere la creación de un objetivo. Por ejemplo, en vez de utilizar la CLI y enumerar paso por paso la configuración exacta para una VM, simplemente declararía que desea una VM con, digamos, un dominio adjunto y, a continuación, dejaría que la automatización realice el resto. El enfoque declarativo le permite declarar más fácilmente lo que las herramientas de automatización necesitan llevar a cabo.

Mutable frente a inmutable

La deriva de la configuración representa un gran problema respecto a la configuración de cualquier parte de la infraestructura. Esto tiene lugar cuando tiene lugar una infraestructura mutable. Mutable significa que es proclive al cambio. Dado que una parte de la infraestructura cambia, se desincroniza con el resto. Es realmente importante para la seguridad que se realice una aplicación uniforme de las configuraciones en toda la infraestructura.

No es posible cambiar una infraestructura inmutable una vez implementada. Se realizarán cambios, pero tendrán lugar en las exposiciones declarativas originales. Una vez que los cambios están listos, se modifican todos los dispositivos o configuraciones similares de forma uniforme. La uniformidad es necesaria desde una perspectiva de seguridad debido a que los hackers solo necesitan una puerta abierta para entrar. Al cerrar cada puerta de la misma forma complica las tareas del hacker.

DevOps

El desarrollo, la prueba y la implementación de aplicaciones en un entorno de producción, a menudo, requiere que los desarrolladores esperen a la producción, o viceversa. Es posible una implementación más rápida y fluida cuando la configuración de la máquina virtual y la red se lleva a cabo mediante un sistema controlado. A continuación, los desarrolladores pueden solicitar contenedores o máquinas virtuales con el mismo nivel de estabilidad que se aplican al código mediante una solicitud automatizada. Esto conduce a mejores versiones que son más fáciles de trazar.

Artículos relacionados

Investigaciones relacionadas