Curso
As 20 principais perguntas e respostas da entrevista sobre o Terraform para 2025
A primeira vez que usei o Terraform, fiquei cético. Parecia muito estranho atualizar a infraestrutura no meu editor de código em vez de clicar no console da nuvem, e eu não entendia os benefícios na época. Mas como era a política da empresa, eu aceitei. Então, um dia, pediram que eu criasse um ambiente de desenvolvimento totalmente novo. Lembro-me perfeitamente de ir até o desenvolvedor sênior da minha equipe e perguntar a ele o que eu havia perdido, porque isso levou apenas 10 minutos. Ele verificou meu trabalho, riu e confirmou que sim, era simples assim.
Não é de se admirar que o Terraform tenha sido tão amplamente adotado no setor. Com a rápida evolução da computação em nuvem, as equipes de todo o mundo estão migrando para a Infraestrutura como Código (IaC) para gerenciar infraestruturas cada vez mais complexas. A capacidade do Terraform de fornecer uma abordagem consistente, repetível e dimensionável para o gerenciamento de infraestrutura fez dele a principal escolha para empresas de vários setores.
Em uma entrevista sobre o Terraform, o que será avaliado não é apenas o número de comandos que você conhece, mas a sua capacidade de usar o Terraform de forma eficaz para se encaixar nos fluxos de trabalho modernos de DevOps e resolver problemas do mundo real. Neste artigo, mostrarei a você algumas das perguntas mais comuns das entrevistas sobre o Terraform. Eu os agrupei em categorias - Básico, Intermediário e Avançado - de modo que, independentemente de onde você esteja em sua carreira, há algo aqui para você!
E antes que você comece: Se você é completamente novo em computação em nuvem, recomendo que faça primeiro nosso curso Introduction to Cloud Computing. Este curso detalha os conceitos básicos da nuvem, explica os principais termos, como escalabilidade e latência, e aborda as vantagens das ferramentas de nuvem de provedores como a AWS. O Terraform tem tudo a ver com lidar com a infraestrutura de nuvem, portanto, certifique-se de que você esteja familiarizado com esses conceitos primeiro, tanto na teoria quanto na prática!
Perguntas básicas da entrevista sobre o Terraform
Essas perguntas se concentram no que é o Terraform e como ele funciona. Você provavelmente encontrará essas perguntas se nunca tiver trabalhado com o Terraform antes ou se o entrevistador não tiver certeza do seu nível de habilidade e quiser começar com o básico.
1. O que é o Terraform e qual é sua principal finalidade?
O Terraform é uma ferramenta de infraestrutura como código (IaC) de código aberto criada pela HashiCorp. Ele permite que você defina e gerencie a infraestrutura na nuvem e no local usando uma linguagem de configuração declarativa chamada HCL (HashiCorp Configuration Language). O Terraform automatiza o provisionamento, a atualização e a versão da infraestrutura para garantir a consistência e reduzir o esforço manual.
2. Como o Terraform difere de outras ferramentas de IaC, como CloudFormation ou Ansible?
Terraform versus CloudFormation: O Terraform é independente da nuvem, o que significa que ele pode gerenciar a infraestrutura em vários provedores (AWS, Azure, GCP etc.), enquanto o AWS CloudFormation é específico para a AWS. O Terraform também tem uma sintaxe e um gerenciamento de estado mais flexíveis.
Terraform versus Ansible: O Ansible é principalmente uma ferramenta de gerenciamento de configuração (gerenciamento de software, pacotes e configurações de sistema operacional), enquanto o Terraform se concentra no provisionamento e no gerenciamento de recursos de infraestrutura de forma declarativa.
3. Quais são os principais comandos do Terraform e o que eles fazem?
-
terraform init
- Inicializa um projeto Terraform e faz o download dos plug-ins de provedor necessários. -
terraform plan
- Cria um plano de execução que mostra quais alterações serão aplicadas pelo Terraform. -
terraform apply
- Aplica as alterações planejadas e provisiona recursos. -
terraform destroy
- Exclui todos os recursos gerenciados. -
terraform validate
- Verifica se há erros de sintaxe nos arquivos de configuração do Terraform.
4. O que é um arquivo de estado do Terraform?
O Terraform mantém um arquivo de estado (terraform.tfstate
) para rastrear a infraestrutura do mundo real que ele gerencia. O arquivo de estado ajuda o Terraform a entender o estado atual dos recursos, detectar desvios e aplicar alterações com eficiência. Ele é essencial para a colaboração, mas como contém dados confidenciais, deve ser armazenado com segurança.
5. O que são provedores do Terraform e por que eles são importantes?
Os provedores do Terraform são plug-ins que permitem que ele interaja com plataformas de nuvem, serviços SaaS e outras APIs. Cada provedor (por exemplo, AWS, Azure, Kubernetes) define os recursos que o Terraform pode gerenciar. Sem os provedores, o Terraform não saberia como criar ou configurar recursos de infraestrutura.
Se você quiser saber mais sobre o Terraform e como ele funciona, dê uma olhada neste guia para iniciantes. Nesse artigo, analiso os principais componentes do Terraform com mais detalhes e os prós e contras da ferramenta. Há até mesmo um minitutorial para que você comece a provisionar a infraestrutura no AWS.
Perguntas intermediárias da entrevista sobre o Terraform
Esta seção se aprofunda nos fluxos de trabalho, nas práticas de configuração e nas estratégias do Terraform para gerenciar o estado e os recursos em projetos do mundo real. Você precisará de uma boa quantidade de experiência prática com o Terraform para responder a essas perguntas, especialmente se for solicitado a falar sobre exemplos específicos.
6. O que são módulos do Terraform?
Os módulos do Terraform são componentes reutilizáveis que ajudam a organizar o código da infraestrutura, agrupando recursos relacionados. Eles melhoram a capacidade de manutenção, permitem que sua equipe reutilize o código em vários projetos e simplificam as implementações.
Um módulo pode ser tão simples quanto um diretório contendo arquivos .tf
e um arquivo opcional variables.tf opcional!
7. Como o Terraform gerencia o estado remoto?
Por padrão, o Terraform armazena o estado localmente, mas, para colaboração, ele oferece suporte a back-ends remotos (S3 com DynamoDB para AWS, GCS para Google Cloud ou Terraform Cloud). O estado remoto é ativado:
- Acesso compartilhado para vários membros da equipe.
- Bloqueio de estado para evitar conflitos.
- Melhor segurança com criptografia e acesso controlado.
8. O que são espaços de trabalho do Terraform e quando você deve usá-los?
Os espaços de trabalho do Terraform permitem que você mantenha arquivos de estado separados dentro da mesma configuração. Eles são úteis para gerenciar vários ambientes (como desenvolvimento, preparação, produção) sem duplicar o código.
Os espaços de trabalho são melhores para a separação simples de ambientes, mas podem ser muito difíceis de manter para configurações complexas de várias contas.
Fonte: DevOps Mojo
9. Como o Terraform lida com a importação da infraestrutura existente e quais são as limitações?
O Terraform pode importar recursos existentes para seu estado usando o comandoterraform import . No entanto, ele não gera automaticamente arquivos de configuração (os arquivos .tf
) para esses recursos, portanto, você precisará escrevê-los manualmente.
Há algumas limitações para essa funcionalidade de importação:
- As configurações complexas exigem reconciliação manual da configuração.
- Alguns tipos de recursos não são compatíveis com a importação.
- Há um risco de desvio se a configuração do recurso importado não corresponder à infraestrutura real.
10. O que são provisionadores do Terraform e quando você deve usá-los?
Os provisionadores executam scripts ou comandos em um recurso depois que ele é criado. Eles são frequentemente usados para tarefas como configuração de VMs ou instalação de software.
Há dois tipos de provisionadores:
- Provisionadores locaisque são executados na máquina que executa o Terraform).
- Provisionadores remotosque são executados no recurso de destino via SSH ou WinRM.
Como os provisionadores introduzem dependências e reduzem a natureza declarativa do Terraform, eles devem ser usados com moderação. Uma alternativa é usar ferramentas de gerenciamento de configuração como Ansible ou cloud-init.
Fonte: Opcito
11. O que é detecção de desvios no Terraform e como você pode lidar com isso?
A detecção de deriva refere-se à situação em que o estado real da infraestrutura diverge do estado definido na configuração do Terraform. Isso pode acontecer quando são feitas alterações manuais fora do Terraform, como atualizações no console do provedor de nuvem ou em outras ferramentas de automação.
O Terraform pode detectar o desvio executando terraform plan, que compara o estado atual do arquivo de estado com a infraestrutura real.
Se for detectado desvio, você deverá reverter as alterações manuais para que correspondam à configuração do Terraform, atualizar a configuração para refletir o novo estado desejado e executar terraform apply para que a infraestrutura volte a se alinhar com a configuração.
12. Como você implementaria uma atualização contínua usando o Terraform para um aplicativo implantado em várias instâncias?
Uma atualização contínua permite que você atualize sua infraestrutura de forma incremental para reduzir o tempo de inatividade e garantir que um subconjunto das instâncias do aplicativo permaneça disponível durante a atualização. Em um cenário de atualização contínua, o Terraform cria uma nova instância do recurso, espera que ela se torne saudável (usando verificações de integridade) e, em seguida, substitui gradualmente as instâncias antigas.
Na prática, você pode implementar uma atualização contínua definindo uma infraestrutura imutável no Terraform e usando contagem ou for_each em suas definições de recursos (por exemplo, instâncias do EC2, balanceadores de carga).
13. Como você lida com as dependências de recursos no Terraform e qual é a função das dependências implícitas e explícitas?
No Terraform, as dependências de recursos são tratadas automaticamente por meio de seu mecanismo de construção de gráficos. As dependências implícitas são criadas quando um recurso faz referência a outro em sua configuração (por exemplo, fazendo referência a um aws_security_group em uma aws_instance) e o Terraform infere automaticamente a ordem de dependência .
As dependências explícitas são úteis para lidar com casos extremos em que o Terraform não pode inferir automaticamente a ordem de dependência. Eles são criados quando o argumento depends_on é usado, o que força o Terraform a aplicar uma ordem específica de execução, mesmo quando os recursos não são diretamente referenciados .
Fonte: HashiCorp
Perguntas avançadas da entrevista sobre o Terraform
No nível avançado, os entrevistadores vão querer ver sua experiência no gerenciamento de infraestrutura de grande escala com o Terraform. As perguntas podem incluir tópicos como implementações em várias nuvens, colaboração em equipes e desafios de automação. É aqui que você pode realmente mostrar sua experiência e suas habilidades, portanto, não hesite em falar sobre os projetos em que trabalhou e dar exemplos práticos!
14. Como você gerencia implantações complexas de várias nuvens com o Terraform?
Para gerenciar ambientes com várias nuvens, você precisa lidar com vários provedores em uma única configuração. O Terraform permite que você configure recursos de diferentes provedores de nuvem (por exemplo, AWS, Azure, Google Cloud) no mesmo arquivo main.tf, especificando diferentes provedores e usando recursos específicos do provedor.
Você pode usar aliases de provedor para gerenciar várias instâncias do mesmo provedor (por exemplo, AWS em diferentes regiões) e aproveitar os módulos para abstrair configurações comuns e evitar a duplicação. No entanto, certifique-se de que você gerencie as dependências entre nuvens com cuidado, pois os recursos em nuvens diferentes podem não ter relações diretas.
15. O que são os comandos taint e untaint no Terraform? Como você os usaria em um cenário do mundo real?
O terraform taint marca um recurso para recriação na próxima vez que o terraform apply for executado, mesmo que não haja alterações na configuração. Isso é útil quando um recurso se tornou problemático ou está em um estado indesejável.
Por exemplo, se uma instância do EC2 falhar e precisar ser recriada, você poderá manchá-la para acionar sua destruição e recriação durante o próximo aplicar.terraform untaint é usado para desfazer o taint e impedir que o recurso seja recriado.
16. O que é o Terraform Cloud e o Terraform Enterprise, e quais são suas principais diferenças?
O Terraform Cloud é uma oferta de SaaS da HashiCorp que fornece recursos de colaboração, como gerenciamento de estado remoto, gerenciamento de espaço de trabalho, integração de controle de versão e aplicação de políticas. É ideal para equipes pequenas e médias.
Terraform Enterprise é uma versão auto-hospedada que adiciona recursos mais avançados, como registros de módulos privados, controles de acesso mais granulares e recursos de segurança avançados, incluindo implantações no local.
Em resumo: O Terraform Cloud é hospedado e mantido pela HashiCorp, enquanto o Terraform Enterprise é auto-hospedado e oferece às organizações controle total sobre sua infraestrutura.
Fonte: Google Cloud
17. Como você gerencia os problemas de bloqueio de estado e simultaneidade no Terraform ao trabalhar com equipes grandes?
O bloqueio de estado no Terraform tem o objetivo de impedir que dois usuários modifiquem o mesmo estado simultaneamente, pois isso pode levar a arquivos de estado corrompidos.
O Terraform Cloud e o Enterprise lidam automaticamente com o bloqueio de estado usando um backend.
Para back-ends remotos como S3 com DynamoDB, o Terraform usa o DynamoDB para bloqueio de estado e para evitar problemas de simultaneidade.
18. O que são implantações com tempo de inatividade zero e como o Terraform pode alcançá-las?
As implementações sem tempo de inatividade ocorrem quando você aplica alterações na infraestrutura sem interromper a disponibilidade dos serviços. O Terraform pode conseguir isso por meio de estratégias como:
- Implantação azul-verde: Usando dois ambientes idênticos (azul e verde), nos quais você alterna o tráfego entre eles para implementar alterações sem tempo de inatividade.
- Atualizações contínuas: Aplicar gradualmente as alterações a um pequeno subconjunto de instâncias de cada vez, permitindo que o restante permaneça ativo durante as atualizações.
Essas são estratégias comuns na arquitetura de nuvem e o Terraform oferece recursos que podem ajudar a implementá-las. No entanto, a implementação completa dessas estratégias de tempo de inatividade zero geralmente requer ferramentas adicionais, como balanceadores de carga.
19. Como você lida com o gerenciamento de segredos no Terraform e quais são as práticas recomendadas?
O Terraform em si não gerencia segredos, mas pode ser integrado a ferramentas externas de gerenciamento de segredos. Por exemplo, você pode usar:
- HashiCorp Vault: O Terraform tem suporte integrado para que o Vault recupere segredos como chaves de API ou senhas em tempo de execução, garantindo que eles não sejam codificados em arquivos de configuração.
- Variáveis de ambiente: Para valores sensíveis, você pode defini-los como variáveis de ambiente.
- Back-ends remotos com criptografia: Armazene arquivos de estado em back-ends remotos com a criptografia ativada para evitar o acesso não autorizado a dados confidenciais.
- Uso de sensível argumento: Marque saídas e variáveis como sensitive para evitar que apareçam nos registros de planejamento/aplicação do Terraform.
20. Como você implementa provedores personalizados do Terraform e quando precisaria de um?
Os provedores personalizados do Terraform são usados quando você precisa gerenciar recursos ou serviços que o Terraform não suporta nativamente. Eles são implementados em Go e envolvem a criação de funções personalizadas que interagem com APIs ou serviços que não são cobertos pelos provedores existentes, como uma API interna, um serviço de nuvem de nicho ou uma tecnologia proprietária.
O Terraform fornece o Terraform Plugin SDK para ajudá-lo a criar provedores, mas você precisará lidar com autenticação, operações CRUD (Create, Read, Update, Delete) e qualquer configuração especial específica da API com a qual está interagindo.
Conclusão
Espero que este artigo tenha dado a você o conhecimento e a confiança necessários para acertar em cheio na sua entrevista com o Terraform!
Se você precisar de mais prática, dê uma olhada nos tutoriais do Terraform da HashiCorp para saber como usar o Terraform em tarefas e casos de uso comuns, ou confira nossa publicação no blog 14 Essential Data Engineering Tools to Use in 2024 para entender como o Terraform se encaixa no kit de ferramentas do engenheiro de dados.
Engenheiro de software sênior, redator técnico e consultor com formação em física. Comprometida em ajudar as startups em estágio inicial a atingir seu potencial e tornar conceitos complexos acessíveis a todos.
Perguntas frequentes sobre o Terraform
Qual deve ser o nível de conhecimento do Terraform para uma entrevista?
Depende da função. Para um cargo júnior, é suficiente entender conceitos básicos como provedores, gerenciamento de estado e recursos. As funções de nível médio exigem conhecimento de módulos, espaços de trabalho e estado remoto. As funções sênior exigem experiência em bloqueio de estado, integrações de CI/CD e depuração de problemas complexos.
Devo memorizar os comandos do Terraform para a entrevista?
Embora seja útil conhecer os principais comandos, como terraform init
, plan
e apply
, os entrevistadores se preocupam mais com a forma como você aplica os conceitos do Terraform. Eles podem pedir que você descreva como estruturaria o Terraform para um cenário do mundo real, em vez de simplesmente listar os comandos.
Qual é a importância da certificação do Terraform para conseguir um emprego?
Uma certificação Terraform (como a HashiCorp Certified: Terraform Associate) pode ajudar a validar seu conhecimento, mas não é obrigatório para a maioria das funções. A experiência prática com o Terraform em projetos reais tem mais peso do que apenas uma certificação. No entanto, se você é novo no Terraform, obter uma certificação pode ser uma boa maneira de aprender.
Aprenda a usar a nuvem com o DataCamp
Curso
AWS Concepts
Curso
Understanding Microsoft Azure

blog
As 25 principais perguntas da entrevista sobre aprendizado de máquina para 2024
blog
As 20 principais perguntas e respostas para entrevistas sobre o AWS Lambda em 2024
blog
As 30 principais perguntas e respostas da entrevista sobre IA generativa para 2024

Hesam Sheikh Hassani
15 min
blog
As 20 principais perguntas do Snowflake para entrevistas de todos os níveis

Nisha Arya Ahmed
20 min

blog
As 45 principais perguntas da entrevista sobre PostgreSQL para todos os níveis
blog
As 20 principais perguntas da entrevista sobre o NumPy: Do básico ao avançado

Tim Lu
20 min