Pular para o conteúdo principal

Questão de Engenharia de Software — Desenvolvimento de Software — FGV 2024

Engenharia de SoftwareDesenvolvimento de Software
Código
fg079610
Banca
FGV
Órgão
DATAPREV
Ano
2024
Nível
Superior
Cargo
ATI - Análise de Negócio de TI
Ao desenvolver um sistema de software, a escolha da arquitetura é crucial para garantir que ele seja capaz de lidar com grandes volumes de dados e manter uma alta disponibilidade. O arquiteto de soluções de um projeto está encarregado de criar um sistema que não só precisa ser escalável, mas também seguro e estável ao longo do tempo.Dado esse cenário, a abordagem ideal é a de
  1. Acolocar tudo em um único servidor central, para manter todos os dados controlados em um só lugar.
  2. Boptar por uma arquitetura de microsserviços, onde cada parte do sistema pode crescer de forma independente e usar replicação para garantir que, mesmo se algo falhar, o sistema continue funcionando.
  3. Cconfigurar um banco de dados local em cada estação de trabalho, sem a necessidade de conectar as máquinas entre si.
  4. Dcentralizar tudo em um único data center, sem planejar nenhum tipo de backup ou replicação dos dados.
  5. Efocar apenas no desempenho imediato, sem considerar se o sistema vai precisar escalar no futuro.
Revelar gabarito e comentário

GabaritoB — optar por uma arquitetura de microsserviços, onde cada parte do sistema pode crescer de forma independente e usar replicação para garantir que, mesmo se algo falhar, o sistema continue funcionando.

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”.

Arquitetura de software para escalabilidade e alta disponibilidade

Gabarito: letra B. A arquitetura de microsserviços, combinada com replicação, é a abordagem que atende aos requisitos de escalabilidade (cada parte cresce independentemente) e alta disponibilidade (replicação garante continuidade mesmo com falhas). É o conceito fundamental para sistemas modernos que precisam lidar com grandes volumes de dados e manter operação contínua.

A questão testa o conhecimento sobre os princípios de arquitetura de software, especialmente a diferença entre soluções centralizadas (monolíticas) e distribuídas. A chave é reconhecer que sistemas com requisitos de escalabilidade e alta disponibilidade exigem distribuição de carga e redundância.

block-beta
  columns 3
  block:Clientes["Clientes/Usuários"]:1
  end
  block:Gateway["API Gateway"]:1
  end
  block:Servicos["Microsserviços"]:3
    columns 3
    ServicoA["Serviço A"] ServicoB["Serviço B"] ServicoC["Serviço C"]
  end
  block:Replicacao["Replicação"]:3
    columns 3
    ReplicaA["Réplica A"] ReplicaB["Réplica B"] ReplicaC["Réplica C"]
  end
  block:Bancos["Bancos de Dados"]:3
    columns 3
    BD_A["BD A"] BD_B["BD B"] BD_C["BD C"]
  end
  Clientes --> Gateway
  Gateway --> Servicos
  Servicos --> Replicacao
  Replicacao --> Bancos

Alternativa A — ❌ Incorreta

Colocar tudo em um único servidor central cria um ponto único de falha e limita a escalabilidade (gargalo de desempenho). Essa abordagem (monolítica) não atende aos requisitos do enunciado.

Alternativa B — ✅ Correta ⟵ GABARITO

Microsserviços permitem que cada parte do sistema seja dimensionada independentemente, e a replicação (cópias dos serviços) garante que, se uma instância falhar, outra assume, mantendo a disponibilidade. É a solução padrão para os desafios descritos.

Alternativa C — ❌ Incorreta

Bancos de dados locais em cada estação sem conexão entre elas impedem o compartilhamento de dados e a coordenação do sistema. Não é viável para um sistema integrado que precisa de escalabilidade e disponibilidade.

Alternativa D — ❌ Incorreta

Centralizar tudo em um único data center sem backup ou replicação cria ponto único de falha e risco de perda total de dados. Não há escalabilidade nem alta disponibilidade.

Alternativa E — ❌ Incorreta

Focar apenas no desempenho imediato, ignorando escalabilidade futura, é uma visão de curto prazo que compromete a sustentabilidade do sistema. O enunciado exige que o sistema seja capaz de crescer e manter estabilidade ao longo do tempo.

PEGA ESSA DICA!

Em questões de arquitetura, sempre identifique os requisitos não funcionais (escalabilidade, disponibilidade, segurança) e relacione com o padrão arquitetural que os atende. Microsserviços + replicação é a combinação clássica para sistemas distribuídos.

Gabarito: letra B.

Link permanente: /questoes/fg079610