Em relação a ferramentas e práticas em DevOps, julgue o item...
Em relação a ferramentas e práticas em DevOps, julgue o item subsequente.
O Terraform lida automaticamente com todas as compatibilidades de provedores e módulos utilizados, eliminando a necessidade de gerenciar explicitamente versões.
Gabarito comentado
Confira o gabarito comentado por um dos nossos professores
Na questão apresentada sobre ferramentas e práticas em DevOps, a resposta correta é a alternativa E - errado. Vamos entender o porquê.
O tema central da questão é o Terraform, uma ferramenta de infrastructure as code (IaC), amplamente utilizada em práticas de DevOps para provisionamento automatizado de infraestrutura na nuvem. O Terraform permite que você descreva a infraestrutura desejada em código e, em seguida, gerencie esse código para criar e atualizar a infraestrutura automaticamente.
Conceito Principal: O Terraform utiliza provedores para interagir com APIs de diferentes serviços de nuvem (como AWS, Azure, Google Cloud) e módulos para reutilizar configurações. Um aspecto importante do gerenciamento com Terraform é a compatibilidade de versões. É crucial gerenciar explicitamente as versões dos provedores e módulos, pois mudanças podem introduzir incompatibilidades que afetam a estabilidade do seu ambiente.
Agora, vamos analisar a afirmação da questão: "O Terraform lida automaticamente com todas as compatibilidades de provedores e módulos utilizados, eliminando a necessidade de gerenciar explicitamente versões." Esta afirmação é errada pelos seguintes motivos:
- O Terraform não gerencia automaticamente as versões de provedores e módulos. Cabe ao desenvolvedor especificar quais versões são compatíveis no arquivo de configuração Terraform (geralmente o
main.tf). - Não gerenciar explicitamente essas versões pode resultar em quebras inesperadas quando um provedor ou módulo é atualizado com mudanças incompatíveis.
Portanto, a prática recomendada é sempre especificar as versões que você testou e sabe que funcionam com seu código, utilizando a sintaxe de bloqueio de versão no Terraform.
O conceito de gerenciamento de versões é amplamente documentado e discutido em materiais oficiais da HashiCorp, a organização por trás do Terraform. Recomendo a leitura de sua documentação oficial para aprofundar seu entendimento.
Compreender essa nuance do Terraform é crucial para evitar problemas de compatibilidade e garantir a estabilidade da infraestrutura gerenciada.
Gostou do comentário? Deixe sua avaliação aqui embaixo!
Clique para visualizar este gabarito
Visualize o gabarito desta questão clicando no botão abaixo
Comentários
Veja os comentários dos nossos alunos
errado.
O Terraform não lida automaticamente com todas as compatibilidades de provedores e módulos. Embora ele tenha mecanismos para gerenciar versões, o controle não é automático.
Para provedores, é necessário especificar a versão desejada no arquivo de configuração (terraform block).
Caso uma versão não seja especificada, o Terraform pode baixar automaticamente a última versão disponível, mas isso pode causar problemas de compatibilidade.
Para módulos, também é recomendável definir a versão explicitamente.
Portanto, o gerenciamento de versões precisa ser feito de forma explícita para evitar incompatibilidades e garantir previsibilidade na infraestrutura.
Nesse sentido o Terraform é igual o pom do maven, gerencia as dependências e até acusa quando uma delas está depreciado, mas nunca atualiza automaticamente.
O item está errado.
Embora o Terraform tenha evoluído para facilitar o gerenciamento de dependências, ele não lida automaticamente com todas as compatibilidades de provedores e módulos. O gerenciamento explícito de versões continua sendo uma boa prática e muitas vezes uma necessidade. Veja por quê:
- No Terraform, os provedores (como AWS, Azure, Google Cloud) são plugins que têm suas próprias versões, e mudanças nelas podem causar quebras de compatibilidade.
- O Terraform utiliza o arquivo terraform.tf ou versions.tf para declarar versões mínimas e máximas de provedores e até da própria versão do Terraform.
- O comando terraform init resolve dependências com base nas versões declaradas e no que estiver disponível no Terraform Registry.
By Futuro DEV Estável.
O argumento `version` nas configurações de provider está deprecated. Em vez disso, declare as restrições de versão do provedor no bloco `required_providers` do bloco `terraform`.
...........................
Cada módulo do Terraform deve declarar quais provedores ele requer, para que o Terraform possa instalá-los e utilizá-los.
Os requisitos do provider são declarados em um bloco required_providers.
Um requisito de provider consiste em um nome local, um local de origem e uma restrição de versão.
Cada módulo deve declarar, no mínimo, a versão mínima do provider com a qual é conhecido por funcionar, usando a sintaxe de restrição de versão >= :
terraform {
required_providers {
mycloud = {
source = "hashicorp/aws"
version = ">= 1.0"
}
}
}
source - o endereço de origem global do provedor que você pretende usar, como hashicorp/aws.
version - uma restrição de versão que especifica com qual subconjunto de versões disponíveis de provider o módulo é compatível.
Clique para visualizar este comentário
Visualize os comentários desta questão clicando no botão abaixo