Questão de Sistemas Operacionais — Cloud Computing — Avança SP 2025
- Código
- qg425055
- Banca
- Avança SP
- Órgão
- UNITAU
- Ano
- 2025
- Nível
- Superior
- Cargo
- Analista de Sistemas Sênior
- AJenkins
- BAnsible
- CDocker
- DKubernetes
- ETerraform
GabaritoE — Terraform
Gabarito: letra E. O Terraform é a ferramenta especializada em Infraestrutura como Código (IaC), pois permite declarar e provisionar recursos de infraestrutura de forma automatizada e versionável, enquanto Jenkins, Ansible, Docker e Kubernetes atuam em outras camadas (CI/CD, configuração, conteinerização e orquestração, respectivamente).
A Infraestrutura como Código (IaC) é uma prática que trata a configuração e o provisionamento de infraestrutura (servidores, redes, bancos de dados, etc.) como código-fonte, permitindo versionamento, revisão, automação e reprodutibilidade. Em vez de configurar manualmente cada recurso, o engenheiro escreve arquivos de definição (em linguagens como HCL, YAML ou JSON) que descrevem o estado desejado da infraestrutura, e uma ferramenta de IaC aplica esse estado de forma automatizada. Isso reduz erros humanos, aumenta a velocidade de entrega e facilita a gestão de ambientes complexos.
O Terraform, da HashiCorp, é um dos principais exemplos de ferramenta de IaC. Ele utiliza uma linguagem declarativa (HCL - HashiCorp Configuration Language) para definir recursos em diversos provedores de nuvem (AWS, Azure, GCP, etc.) e serviços on-premise. O Terraform cria um plano de execução, compara o estado atual com o desejado e aplica as mudanças necessárias, mantendo um arquivo de estado que registra os recursos provisionados. Essa abordagem permite que a infraestrutura seja tratada como código, com controle de versão, revisão por pares e automação completa.
É importante distinguir o Terraform de outras ferramentas que também automatizam infraestrutura, mas com abordagens diferentes:
Ansible é uma ferramenta de automação de configuração e gerenciamento de servidores. Embora também possa provisionar recursos, seu foco principal é configurar e manter o estado de máquinas já existentes (instalar pacotes, copiar arquivos, reiniciar serviços). Ele é frequentemente usado em conjunto com o Terraform: o Terraform provisiona a infraestrutura e o Ansible configura o software dentro dela.
Jenkins é um servidor de automação de integração contínua e entrega contínua (CI/CD). Ele orquestra pipelines de build, teste e deploy de aplicações, mas não é especializado em provisionar infraestrutura.
Docker é uma plataforma de conteinerização que empacota aplicações e suas dependências em contêineres. Ele automatiza a criação e execução de contêineres, mas não gerencia a infraestrutura subjacente (servidores, redes, etc.).
Kubernetes é um orquestrador de contêineres que automatiza a implantação, o dimensionamento e a gestão de aplicações em contêineres. Ele opera no nível de aplicação, gerenciando o ciclo de vida dos contêineres, mas não provisiona a infraestrutura física ou virtual onde eles rodam.
A pegadinha desta questão está em confundir ferramentas que automatizam partes do ciclo de vida de aplicações com ferramentas de IaC. O candidato pode pensar que Ansible ou Kubernetes são IaC, mas eles atuam em camadas diferentes. O Terraform é a única alternativa que se encaixa perfeitamente na definição de IaC: declarar e provisionar infraestrutura como código.
Guarde a fronteira entre provisionamento (IaC) e configuração/orquestração: é exatamente nela que as alternativas se dividem.
O Jenkins é uma ferramenta de integração contínua e entrega contínua (CI/CD). Ele automatiza o processo de build, teste e deploy de aplicações, mas não é especializado em provisionar infraestrutura. Embora possa ser usado em pipelines que incluem etapas de IaC, sua função principal é orquestrar o ciclo de vida do software, não da infraestrutura.
O Ansible é uma ferramenta de automação de configuração e gerenciamento de servidores. Ele é usado para configurar máquinas (instalar pacotes, copiar arquivos, gerenciar serviços), mas não é uma ferramenta de IaC no sentido estrito de provisionar recursos de infraestrutura. Ele pode ser usado em conjunto com o Terraform, mas sozinho não é a resposta para a pergunta.
O Docker é uma plataforma de conteinerização. Ele automatiza a criação, o empacotamento e a execução de aplicações em contêineres, mas não gerencia a infraestrutura subjacente (servidores, redes, armazenamento). Ele opera no nível de aplicação, não no nível de infraestrutura.
O Kubernetes é um orquestrador de contêineres. Ele automatiza a implantação, o dimensionamento e a gestão de aplicações em contêineres, mas não provisiona a infraestrutura física ou virtual. Ele gerencia o ciclo de vida dos contêineres, não a infraestrutura onde eles rodam.
O Terraform é a ferramenta especializada em Infraestrutura como Código (IaC). Ele permite declarar recursos de infraestrutura em arquivos de configuração (HCL) e provisioná-los de forma automatizada em diversos provedores de nuvem e serviços on-premise. É a única alternativa que se encaixa perfeitamente na definição de IaC.
Para diferenciar as ferramentas, lembre-se: Terraform = provisiona a infraestrutura (IaC); Ansible = configura o software dentro da infraestrutura; Jenkins = automatiza o ciclo de vida do software (CI/CD); Docker = empacota a aplicação em contêineres; Kubernetes = orquestra os contêineres. Na prova, se a pergunta for sobre "infraestrutura como código", a resposta quase sempre será Terraform (ou CloudFormation, se for específico da AWS).
Gabarito: letra E
Link permanente: /questoes/qg425055