¿Qué es Terraform? Explicación de la infraestructura como código
Respuesta rápida: Terraform es una herramienta de infraestructura como código (IaC), creada originalmente por HashiCorp, que te permite definir la infraestructura en la nube y en las instalaciones…
In this guide
- ¿Qué es la infraestructura como código y por qué es importante?
- ¿Cómo funciona realmente Terraform?
- ¿Qué son los proveedores?
- ¿Qué es el estado de Terraform?
- ¿Cómo es una configuración sencilla?
- Terraform frente a otras herramientas
- ¿Cuáles son los casos de uso habituales de Terraform?
Respuesta rápida: Terraform es una herramienta de infraestructura como código (IaC), creada originalmente por HashiCorp, que te permite definir la infraestructura en la nube y en las instalaciones locales mediante archivos de configuración legibles y, después, crearla, modificarla y versionarla de forma segura. Describes en un lenguaje declarativo llamado HCL los recursos que quieres, como servidores, redes y bases de datos; Terraform compara ese estado deseado con lo que existe realmente y realiza únicamente los cambios necesarios. Funciona en muchas plataformas mediante plugins llamados proveedores, lo que lo convierte en una de las herramientas más utilizadas en la ingeniería de DevOps y de la nube.
¿Qué es la infraestructura como código y por qué es importante?
La infraestructura como código consiste en gestionar servidores, redes y otros recursos mediante archivos de configuración, en lugar de hacer clic manualmente en una consola web. Sus beneficios son importantes. Tu infraestructura se vuelve repetible, porque los mismos archivos producen el mismo entorno cada vez. Se vuelve revisable, porque los cambios pasan por el control de versiones y la revisión de código, igual que el código de aplicaciones. Y se vuelve recuperable, porque puedes reconstruir un entorno a partir de los archivos si algo falla. Terraform es una de las formas más populares de aplicar IaC, y este enfoque está en el centro de lo que hace un ingeniero de DevOps en su día a día.
¿Cómo funciona realmente Terraform?
Terraform sigue un ciclo claro y repetible. Escribes la configuración, previsualizas los cambios y luego los aplicas. El flujo de trabajo principal suele resumirse como write, plan, apply.
- Write: declaras recursos en archivos .tf utilizando HCL, por ejemplo, una máquina virtual, un bucket de almacenamiento y una red.
- Init: al ejecutar terraform init, descargas los proveedores que necesita tu configuración y preparas el directorio de trabajo.
- Plan: al ejecutar terraform plan, se muestra exactamente qué va a crear, modificar o destruir Terraform, sin tocar todavía nada. Esta previsualización es una de las funciones de seguridad más valoradas de Terraform.
- Apply: al ejecutar terraform apply, se ejecuta el plan y se aprovisionan los recursos reales; después, el resultado se registra en el estado.
- Destroy: al ejecutar terraform destroy, se elimina todo lo que gestiona la configuración, lo que resulta útil para entornos temporales o de pruebas.
¿Qué son los proveedores?
Un proveedor es un plugin que enseña a Terraform a comunicarse con la API de una plataforma concreta. Existen proveedores para las principales nubes, como Amazon Web Services, Microsoft Azure y Google Cloud, así como para servicios como Kubernetes, GitHub, Cloudflare y numerosas bases de datos. Gracias a este modelo de plugins, la misma herramienta y el mismo flujo de trabajo pueden gestionar sistemas muy diferentes. Declaras qué proveedores necesitas, Terraform los descarga durante init y, a partir de ese momento, describes recursos utilizando los tipos de recursos de cada proveedor. Esta amplitud es una de las principales razones por las que Terraform se convirtió en un estándar del sector y por las que aparece con tanta frecuencia en las herramientas de un ingeniero de la nube.
¿Qué es el estado de Terraform?
El estado es la fuente de gran parte de la potencia de Terraform y, al mismo tiempo, el punto donde los principiantes encuentran más problemas. Cuando Terraform crea recursos, registra lo que ha creado en un archivo de estado que relaciona tu configuración con objetos del mundo real. En la siguiente ejecución, Terraform lee el estado para saber qué existe ya, de modo que puede calcular el conjunto mínimo de cambios en lugar de volver a crear todo.
De esto se derivan dos reglas prácticas. Primero, el archivo de estado puede contener datos sensibles, como contraseñas de bases de datos, por lo que debe protegerse. Segundo, cuando un equipo comparte infraestructura, todos deben utilizar el mismo estado, por lo que se almacena en un backend remoto, por ejemplo, almacenamiento de objetos en la nube, con bloqueo para evitar que dos personas apliquen cambios contradictorios al mismo tiempo. Editar el estado manualmente es arriesgado y, por lo general, se evita. Respetar el estado es el hábito más importante para trabajar de forma segura con Terraform.
¿Cómo es una configuración sencilla?
HCL está diseñado para ser legible. Una configuración declara recursos en bloques, cada uno con un tipo, un nombre y una serie de ajustes. Puedes referenciar un recurso desde otro para que Terraform determine el orden correcto, por ejemplo, creando una red antes que el servidor que la utiliza. También puedes utilizar variables para evitar valores fijados en el código, salidas para exponer resultados útiles, como una dirección IP, y módulos para empaquetar y reutilizar grupos de recursos. Como los archivos son texto plano, se guardan en el control de versiones junto con todo lo demás, lo que enlaza de forma natural con nuestra guía sobre qué es Git.
Terraform frente a otras herramientas
Terraform se compara con frecuencia con otras herramientas de infraestructura, y las diferencias son importantes al elegir la adecuada.
| Herramienta | Finalidad principal | Enfoque | Uso habitual con Terraform |
|---|---|---|---|
| Terraform | Aprovisionar infraestructura | Declarativo, multinube | La propia capa de aprovisionamiento |
| OpenTofu | Aprovisionar infraestructura | Declarativo; fork de código abierto de Terraform | Una alternativa interchangeable para equipos que prefieren MPL 2.0 |
| Ansible | Configurar máquinas existentes | Procedural, sin agentes | Configurar servidores después de que Terraform los crea |
| CloudFormation | Aprovisionar infraestructura | Declarativo, exclusivo de AWS | Una alternativa nativa de AWS |
| Pulumi | Aprovisionar infraestructura | Declarativo mediante lenguajes de propósito general | Una alternativa para equipos que prefieren Python, TypeScript, etc. |
Un aspecto clave para 2026: en agosto de 2023, HashiCorp cambió la licencia de Terraform de la licencia de código abierto MPL 2.0 a la Business Source License (BSL), que restringe el uso del software para crear productos que compitan directamente con él. En respuesta, varias empresas crearon OpenTofu, un fork con licencia MPL 2.0 que ahora está gobernado por la Linux Foundation y fue aceptado en la Cloud Native Computing Foundation en 2025. OpenTofu lee el mismo HCL, utiliza los mismos proveedores y escribe un archivo de estado compatible, por lo que, para la mayoría de los usuarios, ambas herramientas son intercambiables en el trabajo diario. La elección por parte de un equipo depende en gran medida de criterios de gobernanza y licencia. Considera que los números de versión cambian rápidamente y comprueba la versión actual antes de depender de una función concreta.
¿Cuáles son los casos de uso habituales de Terraform?
- Crear entornos en la nube, como desarrollo, staging y producción, que sean idénticos y reproducibles.
- Despliegues multinube o híbridos, utilizando un único flujo de trabajo con más de un proveedor.
- Entornos desechables para pruebas o demostraciones que se puedan crear y eliminar según sea necesario.
- Gestionar servicios de soporte, como registros DNS, políticas de acceso y clústeres de Kubernetes.
Como define entornos completos como código, Terraform es una competencia esencial para cualquier persona que diseñe sistemas grandes, por lo que aparece en itinerarios para convertirse en arquitecto de la nube y en las prácticas de fiabilidad descritas en nuestra comparación entre DevOps y SRE.
¿Qué son los módulos y por qué los utilizan los equipos?
A medida que las configuraciones crecen, copiar los mismos bloques en distintos proyectos se vuelve inmanejable. Los módulos resuelven este problema al empaquetar un grupo de recursos en una unidad reutilizable con entradas y salidas definidas. Por ejemplo, un equipo podría crear un módulo que establezca una red estándar con las subredes, las rutas y las reglas de seguridad adecuadas, y reutilizarlo en todos los entornos pasando simplemente variables diferentes. Los módulos favorecen la coherencia, reducen los errores por copiar y pegar y permiten que un equipo codifique sus prácticas recomendadas una sola vez. Los registros públicos ofrecen miles de módulos comunitarios para patrones comunes, aunque los equipos de producción suelen escribir y versionar los suyos. Pensar en módulos es una señal de madurez con Terraform y refleja la forma en que el buen software se divide en componentes reutilizables.
¿Cuáles son las principales ventajas yocese de Terraform?
Las fortalezas de Terraform explican su popularidad, pero también conviene ser honesto sobre sus fortalezas y weaknesses.
- Ventaja: coherencia multinube. Un único flujo de trabajo y lenguaje gestiona muchas plataformas, por lo que los equipos no tienen que aprender una herramienta nueva para cada proveedor.
- Ventaja: previsualizaciones seguras. El paso de planificación muestra cada cambio antes de que ocurra, lo que evita muchos errores costosos.
- Ventaja: repetibilidad y auditabilidad. Como todo está en forma de código y bajo control de versiones, los entornos son reproducibles y cada cambio se puede rastrear.
- Desventaja: complejidad del estado. Gestionar correctamente el estado, los backends y el bloqueo requiere disciplina y constituye la fuente más común de problemas reales.
- Desventaja: curva de aprendizaje. La Mentalidad declarativa y los detalles específicos de cada proveedor tardan en asimilarse, especialmente para quienes están accustomed a hacer clic en las consolas.
- Desventaja: deriva. Si alguien modifica un recurso manualmente fuera de Terraform, el mundo real y el estado pueden divergir, y hay que tener cuidado para reconciliarlos.
¿Cómo encaja Terraform en una canalización de CI/CD?
En equipos maduros, Terraform rara vez se ejecuta desde un portátil para aplicar cambios en producción. En su lugar, la configuración reside en un repositorio de Git y una canalización de integración continua ejecuta terraform plan automáticamente en cada pull request, de modo que quienes revisan pueden ver exactamente qué va a cambiar. Tras la aprobación, un paso automatizado ejecuta terraform apply en el entorno de destino. Esto aplica a la infraestructura la misma disciplina de revisión, pruebas y auditoría que los equipos ya aplican al código de las aplicaciones. También garantiza que el estado reside en un backend remoto compartido, en lugar de en la máquina de cualquier persona, lo cual es imprescindible cuando participa más de una. Este enfoque que prioriza la automatización es una característica definitoria de los equipos de plataformas modernos.
¿Cómo debe empezar un principiante con Terraform?
Empieza con un proveedor que ya conozcas, idealmente una nube que hayas utilizado mediante su consola. Instala Terraform, o OpenTofu, crea un único recurso pequeño, como un bucket de almacenamiento, y recorre init, plan y apply para familiarizarte con el flujo de trabajo. Presta especial atención a la salida del plan antes de cada apply; leer cuidadosamente los planes es un hábito profesional que conviene adquirir desde el principio. Guarda tu configuración en Git desde el primer día, mantén los secretos fuera de tus archivos y pasa a un backend remoto para el estado en cuanto participe más de una persona. Evita la tentación de copiar configuraciones grandes y complejas que no comprendas; los pasos pequeños que puedas explicar te enseñarán mucho más.
¿Vale la pena aprender Terraform?
Para cualquier persona que se dirija a DevOps, la nube o la ingeniería de plataformas, Terraform es una de las habilidades más valiosas disponibles. Está ampliamente adoptado, es transferible entre nubes y ocupa una posición central en la forma en que los equipos modernos construyen y modifican la infraestructura de manera segura. El modelo declarativo tarda poco en asimilarse y la gestión del estado exige respeto, pero el resultado es muy>[[Understood]]
Ready to earn your certification?
Boost eLearning offers Live Labs, a Pass Guarantee, and online, live virtual, and on-site delivery.
