IaC-un-paso-mas-Vermont-Solutiones.png
IaC-un-paso-mas-Vermont-Solutiones.png

IaC, un paso más.

 

La “Infraestructura como Código” o IaC, por sus siglas en inglés (Infrastructure as Code), es

el nombre del nuevo paradigma de gestión de infraestructuras de proyectos tecnológicos.

Se trata de un método de programación que permite implementar y mantener infraestructura

mediante código fuente sin necesidad de utilizar la interfaz gráfica provista por las distintas

herramientas, significando por tanto, un concepto disruptivo cuyo objetivo es eliminar los

límites entre el desarrollo de aplicaciones y su puesta en marcha en diferentes entornos

productivos y no productivos, y con ello también las separaciones entre los equipos de

desarrollo, arquitectura y operaciones.

Más allá de un concepto tan simple como la representación de una infraestructura por

medio de un lenguaje de programación, este paradigma implica:

  • Un aporte a la filosofía DevOps de los equipos corporativos, que facilita, además de

la automatización de pruebas e implementaciones de software, el despliegue

automatizado y ordenado de la infraestructura asociada a esas aplicaciones.

  • Un entorno centralizado de administración de la configuración de la

infraestructura que soporta un aplicativo, en lugar de gestionar los servicios

asociados por separado y manualmente.

  • Una forma más sencilla y eficaz de entender toda la infraestructura de un proyecto.
  • La posibilidad de tener un registro de los cambios realizados en la infraestructura

del proyecto, si lo gestionamos mediante alguna herramienta de control de versiones

como Git o BitBucket.

  • Mayor control entre los entornos de pruebas y producción. Al tratarse de una

representación en código, es más fácil garantizar que la configuración de la

infraestructura de cada entorno sea similar, disminuyendo así el margen de error en

el ciclo de puesta en producción.

Además de esto, la Infraestructura como Código, es compatible con IaaS (Infrastructure As

A Code), permitiendo que se puedan desplegar y gestionar las redes y máquinas virtuales

programáticamente, ya sea para cambiar la configuración de uno o más recursos

simultáneamente, o para desplegar nuevos. Lo mismo ocurre con otras soluciones de PaaS

y SaaS dispuestas por los Cloud Providers.

 

IaC con Terraform

En función del Cloud Provider seleccionado para la infraestructura del proyecto, se pueden

encontrar soluciones diversas, como CloudFormation de AWS o Azure ARM de Azure, pero

también han ido surgiendo nuevas herramientas desde el nacimiento del IaaS, como el caso

de Puppet y Chef, que establecieron una nueva categoría de herramienta de automatización

de infraestructura que ha sido ampliamente utilizada.

Terraform, creada por HashiCorp, nació como una solución con lenguaje propio para

representar infraestructuras con modelos de IaC agnósticos del Cloud Provider utilizado,

pudiendo a la vez utilizar varios recursos o servicios de distintos proveedores dentro de la

misma arquitectura. Su lenguaje de programación, HCL (HashiCorp Configuration

Language), proporciona la sintaxis para la definición de la infraestructura y definición de los

proveedores requeridos.

Esto permite desplegar y gestionar los recursos atendiendo a las necesidades del proyecto

pudiendo utilizar diversos servicios independientemente de su proveedor, dentro del mismo

plan de ejecución.

Para profundizar sobre cómo desplegar infraestructura usando Terraform, puedes visitar

https://www.terraform.io/docs/index.html