Elena Canorea
Communications Lead
*Con la colaboración de Daniel Álvarez.
Terraform es una herramienta de configuración de software diseñada para potenciar la automatización de múltiples procesos a través de conceptos como el de infrastructure as code. A través de su lenguaje permite crear definiciones (llamadas resources) de objetos o recursos de infraestructura.
Su principal objetivo es facilitar la creación de infraestructura de manera declarativa, por ejemplo un centro de datos en servicios como Azure, Amazon Web Services (AWS) o Google Cloud Platform (GCP). Es decir, esta configuración se almacena en la nube y permite automatizar una infraestructura.
Terraform consta de elementos como:
La propia web de Terraform propone varios escenarios en los que se podría usar esta tecnología:
Desde la web de Terraform es posible acceder a su código abierto y contribuir a este proyecto colaborativo.
Uno de los principales beneficios de Terraform para empresas es que, al tener un lenguaje declarativo que abstrae los recursos de múltiples proveedores cloud (como los muy populares Azure, AWS y GCP) bajo una sintaxis común, facilita la implementación de infraestructura de manera mucho más ágil, con menos coste en tiempo y adaptación por parte del desarrollador. Además, esto permite que la infraestructura se pueda trasladar a otro servicio.
Asimismo, como veíamos antes, Terraform ayuda en la cada vez más atractiva automatización de las empresas. La automatización del flujo de trabajo se puede llevar a muy diferentes departamentos e integrarse a sus dinámicas. Este mismo flujo permite un fuerte control de la seguridad, con controles de acceso a la información.
Por otra parte, el lenguaje que usa, llamado HCL (lenguaje de configuración de HashiCorp, por la empresa creadora), es muy sencillo de usar, lo que facilita su uso. Y por si estos fueran pocos beneficios, recordemos que Terraform funciona con un código que es abierto y que, además, se puede descargar para ejecutar localmente.
Si comparamos las herramientas Ansible y Terraform, encontramos ciertas similitudes y diferencias para decidirnos por una u otra.
Ambas comparten que son herramientas de código abierto y sencillas de usar. Mientras que Ansible sirve para automatizar procesos de IT, con Terraform se construye y gestiona una infraestructura de IT. Además, las dos se parecen en su facilidad de implementación.
Con Ansible también se pueden actualizar estaciones de trabajo y servidores. Y de cara a los usuarios, se puede configurar al mismo tiempo un solo ordenador o redes completas de estos.
Además, Ansible trabaja con módulos que se pueden personalizar y compartir con otras personas. Sin embargo, Terraform es mejor para interconectar aplicaciones.
En cualquier caso, es posible trabajar con Ansible y Terraform juntas, y la segunda es accesible con más de 200 proveedores.
Otra posible comparación es Terraform y Pulumi.
Pulumi es una plataforma de código para gestionar entornos cloud. Funciona con lenguajes de programación como Python, .NET o TypeScript. Como Terraform, ambas son de código abierto y sirven para crear y administrar infraestructura como código en la nube. Además, son compatibles con algunas de las mismas plataformas que hemos citado: Azure, AWS, GCP…
La principal diferencia es que Terraform usa el lenguaje específico HashiCorp y Pulumi lenguajes de programación como los antes citados. Eso no es impedimento para que Pulumi se adapte a los diferentes proveedores de Terraform.
En definitiva, Terraform aumenta la productividad de la compañía en sus estructuras en la nube. En tiempos en los que el cloud computing tiene cada vez más importancia en la organización empresarial, ya has conocido todas las posibilidades de esta herramienta. ¿Quieres que te ayudemos a implantarla?
Elena Canorea
Communications Lead