Home » Preguntas de Terraform en entrevistas
Preguntas comunes de Terraform en entrevistas de trabajo

Preguntas de Terraform en entrevistas

En el mundo de la infraestructura como código (IaC), Terraform se ha convertido en una herramienta indispensable. Pero, ¿cómo identificar a los verdaderos expertos en Terraform durante una entrevista? Este artículo te proporcionará una guía completa con preguntas clave y estrategias para evaluar el conocimiento de los candidatos. Desde conceptos básicos hasta escenarios avanzados, descubre cómo asegurar que tu equipo cuente con los mejores profesionales en Terraform.

Recordando mi época pasada en otra empresa donde laboraba, recordé las preguntas de Terraform en entrevistas que más solía hacer a los candidatos.

Nunca había respuestas iguales. De modo similar, tampoco había una sola respuesta correcta. La importancia radicaba en cómo el candidato explicaba lo que comprendía sobre el tema en cuestión, su forma de usarlo en la práctica y algunos ejemplos para darse a entender mejor.

Hoy comparto 10 preguntas de Terraform en entrevistas que tal vez te hayan preguntado, o quizá podrían preguntarte si tienes planes de postular a un nuevo puesto de trabajo. Aquí vamos.

Pregunta 1: ¿Qué es Terraform y cómo se diferencia de Ansible y CloudFormation?

Terraform es una herramienta de Infraestructura como Código (IaC) que permite definir y aprovisionar infraestructura en la nube o en entornos locales.

A diferencia de Ansible, que se centra en la gestión de la configuración, Terraform se especializa en la creación y modificación de la infraestructura misma.

CloudFormation, por otro lado, es un servicio específico de AWS para IaC, mientras que Terraform es agnóstico a la nube y soporta múltiples proveedores.

Pregunta 2: ¿Cómo maneja Terraform su estado?

Terraform almacena el estado de la infraestructura en un archivo llamado terraform.tfstate. Este archivo registra los recursos creados y sus configuraciones.

Para entornos colaborativos, se recomienda almacenar el estado de forma remota en servicios como AWS S3 o Azure Storage, lo que permite el bloqueo de estado y la consistencia entre los miembros del equipo.

Pregunta 3: ¿Cómo migras el estado de un backend a otro?

Para migrar el estado de Terraform de un backend a otro, primero configuras el nuevo backend en el código (backend "s3" { ... }, por ejemplo) sin ejecutar terraform init aún.

Luego, ejecutas terraform init -migrate-state, lo que mueve el estado al nuevo backend de manera segura.

Finalmente, verificas que la migración fue exitosa ejecutando terraform state list y eliminando la configuración del backend anterior si ya no es necesaria.

Pregunta 4: ¿Dónde sueles almacenar los módulos de Terraform que desarrollas?

Los módulos de Terraform se pueden almacenar en un repositorio Git (GitHub, o GitLab) para control de versiones y reutilización.

También se pueden publicar en Terraform Registry privado o público para facilitar su distribución.

Para equipos grandes, se recomienda usar un bucket en S3, Artifactory o un registro de módulos interno con control de acceso.

Pregunta 5: ¿Cuál es el propósito de los outputs de Terraform?

Los outputs en Terraform permiten exponer información clave de los recursos creados, como direcciones IP, nombres de instancias o ARN.

Son útiles para compartir datos entre módulos o con otros sistemas automatizados.

También facilitan la depuración y validación del estado de la infraestructura después de una ejecución.

Pregunta 6: ¿Qué son los proveedores de Terraform y sus dependencias?

Los proveedores en Terraform son plugins que permiten interactuar con diferentes plataformas (AWS, Azure, Kubernetes, etc.). Se especifican en el bloque provider y se gestionan con el terraform init, que descarga sus versiones según lo definido en required_providers.

Las dependencias de los proveedores determinan qué recursos y funciones están disponibles en Terraform para una infraestructura específica.

Pregunta 7: ¿Cómo recreas un único recurso sin afectar a todos los demás que son parte del módulo?

Para recrear un único recurso en Terraform sin afectar a los demás, utilizas el comando:

terraform apply -target=<recurso>

Si deseas forzar su recreación, primero lo eliminas con terraform destroy -target=<recurso> y luego lo aplicas nuevamente.

También puedes usar terraform taint <recurso> para marcarlo como obsoleto y forzar su recreación en el siguiente apply.

Pregunta 8: Dime un caso práctico en el cual usarías terraform state rm

Usaría terraform state rm cuando un recurso ha sido eliminado manualmente fuera de Terraform, pero aún aparece en el estado, causando errores en apply.

Ejemplo: si una instancia en AWS fue eliminada desde la consola, pero Terraform sigue intentando gestionarla, ejecutaría:

terraform state rm aws_instance.mi_instancia

Esto elimina la referencia del estado sin afectar la infraestructura real, evitando inconsistencias.

Pregunta 9: ¿Qué uso tiene el comando terraform state mv?

El comando terraform state mv se usa para renombrar o mover recursos dentro del estado de Terraform sin recrearlos.

Ejemplo de uso: si cambias el nombre de un recurso en el código, Terraform intentará crear uno nuevo y eliminar el antiguo. Para evitar esto, ejecutas:

terraform state mv 'aws_instance.old_name' 'aws_instance.new_name'

Así, el estado se actualiza sin cambios en la infraestructura real.

Pregunta 10: Explica las diferencias entre dependencias implícitas y explíticas en Terraform

Las dependencias implícitas en Terraform ocurren automáticamente cuando un recurso hace referencia a otro en sus atributos.

Ejemplo:

resource "aws_instance" "example" {
  subnet_id = aws_subnet.example.id  # Terraform entiende que la subnet debe crearse primero
}

Las dependencias explícitas se definen manualmente con depends_on cuando la relación no es evidente.

Ejemplo:

resource "aws_instance" "example" {
  depends_on = [aws_security_group.example]  # Asegura que el SG se cree antes
}

Se usan cuando Terraform no detecta correctamente la relación entre recursos.

Conclusión

Como mencionaba al principio, no hay respuesta que sea 100% correcta o errónea. Normalmente, los candidatos sí conocen en cierta medida de lo que se les pregunta. Lo importante en las entrevistas es saber qué tanto conocen de ello, lo cual debería ser contrastado con el nivel de expertise que se espera del candidato, según el nivel de seniority que se pida para el puesto de trabajo.

Las respuestas que incluí para cada pregunta son una guía bastante general y cercana a lo correcto, pero podría diferir en algunos casos. De cualquier modo, creo que esta es un punto de partida para saber qué tan bien debes conocer Terraform para pasar con éxito una entrevista de trabajo.

Espero que te haya sido de utilidad el artículo de hoy.

Post navigation

Deja un comentario

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *