Terraform: qué es y beneficios que aporta para el cloud de tu empresa
*Con la colaboración de Daniel Álvarez.
Qué es Terraform
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:
- Núcleo Terraform. Consiste en recibir la información y tomar decisiones con ella.
- Proveedores. Son las herramientas con las que se crea la infraestructura.
¿Qué se puede hacer con Terraform?
La propia web de Terraform propone varios escenarios en los que se podría usar esta tecnología:
- Automatización de la infraestructura digital: servidores, bases de datos, firewall…
- Administrar un entorno multinube (AWS, Azure, GCP…) a pesar de sus diferentes interfaces o flujos de trabajo. Esto es ideal cuando el entorno se ha construido antes de implantar Terraform y hay que administrar diferentes entornos cloud. En cualquier caso, también puede administrar una sola aplicación y de un solo proveedor.
- Gestionar clústeres de Kubernetes e imágenes de máquinas virtuales. Sobre estas últimas, HCP Packer recopila imágenes de entornos multinube y las puede suministrar para una API.
- Las configuraciones se pueden compartir y volver a usar cuando se crea necesario.
Desde la web de Terraform es posible acceder a su código abierto y contribuir a este proyecto colaborativo.
Beneficios de Terraform para empresas
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.
Ansible vs. Terraform
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.
Pulumi vs. Terraform
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?