Pular para o conteúdo principal

Questão de Engenharia de Software — Gerência de Configuração — FGV 2026

Engenharia de SoftwareGerência de Configuração
Código
fg133771
Banca
FGV
Órgão
TJ-RJ
Ano
2026
Nível
Superior
Cargo
Analista Judiciário - Tecnologia da Informação - Analista de Infraestrutura de TIC
Um administrador de sistemas deseja abandonar a configuração manual de servidores via console web para garantir que os ambientes de teste e produção sejam idênticos e auditáveis. Para isso, ele adotou uma ferramenta que permite descrever o estado desejado da infraestrutura através de arquivos de texto. Considere o trecho de código ilustrativo abaixo, escrito na linguagem HCL (HashiCorp Configuration Language):Imagem associada para resolução da questãoA prática de gerenciamento de operações de TI ilustrada pelo código acima, que permite o provisionamento e a gestão de recursos de tecnologia através de arquivos de definição versionáveis (como no Git), em vez de configurações manuais de hardware ou interfaces gráficas, é denominada:
  1. AServerless Computing (computação sem servidor);
  2. BContinuous Integration (integração contínua - CI);
  3. CInfrastructure as Code (infraestrutura como código - IaC);
  4. DVirtual Machine Monitor (monitoramento de máquina virtual);
  5. EObject-Oriented Programming (programação orientada a objetos).
Revelar gabarito e comentário

GabaritoC — Infrastructure as Code (infraestrutura como código - IaC);

Comentário gerado por IA. É um apoio ao estudo, ancorado em fontes, mas pode conter imprecisões — confira sempre na fonte oficial (lei, súmula, edital e gabarito da banca). Encontrou um erro? Use “Reportar”.

Infraestrutura como Código (IaC)

Gabarito: letra C. A prática descrita — descrever o estado desejado da infraestrutura em arquivos de texto versionáveis (como no Git) e provisionar recursos por meio dessas definições, em vez de configuração manual — é exatamente o conceito de Infrastructure as Code (IaC). O trecho em HCL (HashiCorp Configuration Language) é a assinatura típica de ferramentas como Terraform, que seguem a abordagem declarativa de IaC.

A infraestrutura como código é uma prática de engenharia de software que aplica princípios de desenvolvimento de software — como controle de versão, revisão de código e automação — ao gerenciamento de infraestrutura de TI. Em vez de um administrador configurar servidores manualmente via console web ou interfaces gráficas, ele escreve arquivos de definição (código) que descrevem o estado desejado dos recursos: servidores, redes, bancos de dados, balanceadores, etc. Esses arquivos são armazenados em repositórios versionados (Git), permitindo que qualquer mudança seja rastreada, auditada e revertida, e que os ambientes de teste e produção sejam provisionados de forma idêntica e reproduzível.

Existem duas abordagens principais de IaC, e a distinção entre elas é um ponto clássico de prova:

Critério

Declarativa

Imperativa

O que define

O estado desejado (o "quê")

Os comandos para chegar lá (o "como")

Execução

A ferramenta descobre como aplicar

O usuário define a sequência exata

Exemplo

Terraform, Ansible, CloudFormation

AWS CLI, scripts Bash/Python

Idempotência

Garantida pela ferramenta

Depende do script

O trecho em HCL do enunciado é declarativo: ele declara o estado desejado ("quero um servidor com esta imagem, esta rede, etc.") e a ferramenta (Terraform) se encarrega de provisionar e gerenciar o ciclo de vida desse recurso. Isso contrasta com a abordagem imperativa, em que o administrador escreveria uma sequência de comandos para criar o servidor passo a passo.

A pegadinha que a banca explora aqui é a confusão entre IaC e outras práticas de DevOps, como CI/CD. Enquanto a Integração Contínua (CI) foca em integrar e testar código de aplicação frequentemente, a IaC foca em gerenciar a própria infraestrutura como código. São práticas complementares — a IaC frequentemente é usada dentro de pipelines de CI/CD — mas conceitos distintos. O enunciado é claro ao descrever "provisionamento e gestão de recursos de tecnologia através de arquivos de definição versionáveis", o que aponta diretamente para IaC.

Guarde a fronteira: IaC = infraestrutura definida e gerenciada por código versionável; CI/CD = automação do ciclo de vida do software (integração, teste, entrega). É exatamente nessa fronteira que as alternativas se dividem.

Infraestrutura como Código (IaC)
  • 1Abordagens
    • Declarativa (estado desejado)
      • Terraform, Ansible, CloudFormation
    • Imperativa (sequência de comandos)
      • AWS CLI, scripts Bash
  • 2Princípios
    • Arquivos versionáveis (Git)
    • Ambientes idênticos
    • Auditoria e rastreabilidade
  • 3Distinções
    • CI/CD: ciclo de vida do software
    • IaC: provisionamento da infraestrutura
LEVEL · soulevel.com.br

Alternativa A — ❌ Incorreta

Serverless Computing (computação sem servidor) é um modelo de execução em nuvem em que o provedor gerencia dinamicamente a alocação de recursos, permitindo que o desenvolvedor execute código sem se preocupar com servidores. Não tem relação com descrever infraestrutura em arquivos versionáveis; é um paradigma de execução de aplicações, não de gerenciamento de infraestrutura.

Alternativa B — ❌ Incorreta

Continuous Integration (CI) é a prática de integrar código de desenvolvedores em um repositório central com frequência, executando builds e testes automatizados. Embora a IaC possa ser usada dentro de pipelines de CI, a CI em si trata do ciclo de vida do código da aplicação, não do provisionamento de infraestrutura via arquivos de definição.

Alternativa C — ✅ Correta ⟵ GABARITO

Infrastructure as Code (IaC) é exatamente a prática descrita: gerenciar e provisionar infraestrutura através de arquivos de definição versionáveis, em vez de configuração manual. O trecho em HCL é a linguagem usada pelo Terraform, uma das principais ferramentas declarativas de IaC. A definição bate perfeitamente com o enunciado: "provisionamento e gestão de recursos de tecnologia através de arquivos de definição versionáveis (como no Git)".

Alternativa D — ❌ Incorreta

Virtual Machine Monitor (VMM), também conhecido como hipervisor, é o software que cria e executa máquinas virtuais (ex.: VMware ESXi, KVM). É uma tecnologia de virtualização, não uma prática de gerenciamento de infraestrutura via código. O VMM é uma camada de software, enquanto IaC é uma metodologia de provisionamento.

Alternativa E — ❌ Incorreta

Object-Oriented Programming (OOP) é um paradigma de programação baseado em objetos que encapsulam dados e comportamentos. Embora a HCL seja uma linguagem de configuração, a prática descrita não é sobre programação orientada a objetos, mas sobre gerenciamento de infraestrutura. OOP é um conceito de desenvolvimento de software, não de operações de TI.

NÃO CAIA NESSA!

A banca mistura conceitos de DevOps para confundir. A alternativa B (CI) é a mais tentadora, pois IaC e CI são frequentemente mencionadas juntas. Mas a CI trata de integrar código de aplicação, enquanto a IaC trata de gerenciar a infraestrutura como código. O enunciado fala de "provisionamento e gestão de recursos de tecnologia" — isso é IaC, não CI. Fique atento ao objeto da prática: se é infraestrutura, é IaC; se é código de aplicação, é CI/CD.

PEGA ESSA DICA!

Para identificar IaC em provas, procure por palavras-chave como "arquivos de definição", "versionáveis", "estado desejado", "provisionamento automatizado", "Terraform", "HCL", "CloudFormation", "Ansible". Se a questão menciona "configuração manual" sendo substituída por "código", a resposta quase sempre é IaC. Memorize a tabela declarativo vs. imperativo — é o desdobramento mais cobrado depois do conceito básico.

Gabarito: letra C

Link permanente: /questoes/fg133771