Questões de Concurso
Sobre arquitetura de software em arquitetura de software
Foram encontradas 493 questões
O sistema precisa ler boletins climáticos de múltiplos canais (redes de rádio HF, brokers AMQP locais e APIs de satélite externas), e persistir os dados validados, tanto em um banco NoSQL local quanto em um Data Lake central da aeronáutica. Buscando isolar o núcleo das regras de negócio (cálculo de teto de nuvens e visibilidade de pista) de variações tecnológicas em bancos de dados e protocolos de rede de terceiros, o engenheiro decidiu aplicar os padrões da Arquitetura Hexagonal.
No contexto da Arquitetura Hexagonal, para permitir que o núcleo da aplicação invoque operações de persistência no banco NoSQL sem criar um acoplamento direto com o driver específico do banco, o engenheiro de software deve posicionar o contrato da interface de persistência e a sua respectiva implementação em código nas seguintes estruturas:
Considerando o cenário descrito, é correto afirmar que a solução adequada é
( ) Em APIs REST, a semântica do método HTTP integra o contrato da operação, de modo que a leitura de um recurso não deve ser modelada com método cujo significado indique alteração de estado.
( ) A criação de novos recursos em uma coleção pode ser realizada por meio de requisição PUT dirigida ao endpoint correspondente à coleção, com retorno de um novo identificador gerado pelo servidor.
( ) Em APIs REST, a utilização de um código HTTP uniforme para respostas de êxito e de falha não compromete a semântica da interação, desde que o corpo da mensagem descreva adequadamente o resultado da requisição.
As afirmativas são, respectivamente,
http_requests_total{job="api", instance="10.0.0.5:8080", method="GET", code="500"}
A equipe deseja calcular, no Prometheus, a taxa média por segundo de crescimento dessa métrica ao longo dos últimos 5 minutos, suavizada ao longo da janela de tempo completa, para alimentar um painel de erro no Grafana.
Assinale a opção que apresenta a expressão em PromQL conceitualmente mais adequada para esse objetivo.
Devido a requisitos de segurança e experiência do usuário, a equipe de desenvolvimento precisa garantir que falhas críticas no processamento do servidor (erros da classe 5xx) não exponham informações técnicas do ambiente ou páginas padrão do servidor web.
Com base nesse contexto, avalie as afirmativas a seguir.
I. Uma possível solução é configurar o servidor web como proxy reverso para interceptar respostas de erro 5xx provenientes do backend e retornar, em seu lugar, uma resposta padronizada ao cliente.
II. O frontend pode ser o responsável por capturar o código de status da resposta HTTP e decidir a forma de apresentação da falha, garantindo que a aplicação cliente mantenha o controle do fluxo de navegação.
III. O tratamento de erros deve ser delegado integralmente ao servidor web, para que o desacoplamento entre as camadas seja preservado e o frontend permaneça agnóstico às falhas ocorridas no backend.
Está correto o que se afirma em
• a Proposta A usa uma abordagem em que todo o processamento de regras de negócio e acesso a dados ocorre no lado do servidor, e o lado do cliente recebe apenas páginas renderizadas;
• a Proposta B adota um modelo em que parte significativa da lógica de negócio é executada diretamente no navegador do usuário, com o servidor funcionando basicamente como uma camada de persistência e serviços.
Sobre a classificação dessas propostas quanto à arquitetura de três camadas, assinale a afirmativa correta.
Considere que uma equipe de desenvolvimento está projetando uma API RESTful para um sistema de gerenciamento de tarefas. A API deverá permitir as operações de criação, leitura, atualização completa, atualização parcial e exclusão de tarefas. A equipe definiu o recurso tarefa e precisa mapear corretamente os métodos HTTP, as URIs e os códigos de status de resposta.
Considerando as restrições arquiteturais REST e as boas práticas de projeto de APIs RESTful, assinale a afirmativa correta.
Nesse contexto, ferramentas surgiram para administrar clusters de nós computacionais e garantir alta disponibilidade e eficiência operacional.
Diante do exposto, analise as afirmativas a seguir.
I. O Kubernetes é uma plataforma de orquestração de contêineres que permite automatizar a implantação, o escalonamento e a gestão de aplicações em clusters de nós computacionais.
II. O Rancher é uma ferramenta nativa do Kubernetes utilizada para o gerenciamento de clusters.
III. Em um cluster Kubernetes, os nós de trabalho executam os pods, enquanto o plano de controle é responsável pelo gerenciamento do estado do cluster.
Está correto o que se afirma em
( ) Em APIs REST, a semântica do método HTTP integra o contrato da operação, de modo que a leitura de um recurso não deve ser modelada com método cujo significado indique alteração de estado.
( ) A criação de novos recursos em uma coleção pode ser realizada por meio de requisição PUT dirigida ao endpoint correspondente à coleção, com retorno de um novo identificador gerado pelo servidor.
( ) Em APIs REST, a utilização de um código HTTP uniforme para respostas de êxito e de falha não compromete a semântica da interação, desde que o corpo da mensagem descreva adequadamente o resultado da requisição.
As afirmativas são, respectivamente,
Durante a transição, parte da integração entre sistemas legados permaneceu baseada em contratos formais descritos em XML, enquanto os novos serviços passaram a expor APIs HTTP com troca de mensagens em JSON.
Com base nesse cenário, avalie as afirmativas a seguir.
I. A coexistência, no mesmo ambiente, de serviços que utilizam contratos formais em XML e de APIs HTTP com JSON é compatível com um processo de transição arquitetural, não sendo suficiente, por si só, para descaracterizar uma adoção de microsserviços.
II. Em uma arquitetura de microsserviços, a divisão do sistema em vários serviços garante baixo acoplamento e independência de evolução, mesmo que todos compartilhem o mesmo banco de dados e dependam de mudanças coordenadas no esquema relacional.
III. Os microsserviços podem ser compreendidos como uma abordagem específica de arquitetura orientada a serviços, de modo que nem toda solução orientada a serviços caracteriza, necessariamente, uma arquitetura de microsserviços.
Está correto o que se afirma em
APIs expostas publicamente estão sujeitas a diferentes tipos de uso indevido, como excesso de requisições, tentativas de negação de serviço e exploração de recursos de forma abusiva. Para mitigar esses riscos sem comprometer a disponibilidade para usuários legítimos, mecanismos de controle de tráfego, como rate limiting, são adotados em arquiteturas back-end modernas, equilibrando segurança, desempenho e experiência do consumidor.
Considere uma API REST utilizada por múltiplos clientes externos, com picos de acesso imprevisíveis. A equipe precisa proteger a API contra abusos e sobrecarga, sem impedir o uso legítimo e mantendo previsibilidade no consumo dos recursos.
Nesse contexto, assinale a alternativa que descreve corretamente a função e o benefício técnico do uso de rate limiting em APIs back-end.
A avaliação de desempenho em sistemas back-end distribuídos exige a identificação precisa de gargalos que limitam escalabilidade e tempo de resposta. Em ambientes de alta concorrência, problemas de desempenho podem estar relacionados a CPU, memória, acesso a banco de dados, comunicação em rede ou sincronização entre componentes, sendo fundamental analisar o comportamento do sistema de forma sistêmica e baseada em evidências.
Considere uma aplicação back-end que passou por escalabilidade horizontal, com aumento do número de instâncias, mas continua apresentando alto tempo de resposta sob carga intensa. Monitoramentos indicam que o consumo de CPU e memória das instâncias estão baixos, enquanto o tempo médio de resposta das requisições permanece elevado.
Nesse contexto, assinale a alternativa que descreve corretamente a hipótese técnica mais plausível para explicar o problema observado e orientar a investigação do gargalo.
Em sistemas back-end expostos por meio de APIs, a evolução contínua das funcionalidades é inevitável. No entanto, mudanças não planejadas podem quebrar contratos existentes e afetar aplicações consumidoras. Por esse motivo, estratégias de versionamento de APIs são adotadas para permitir evolução controlada, preservando compatibilidade e reduzindo impactos em ambientes distribuídos com múltiplos clientes.
Considere uma API REST amplamente utilizada por aplicações internas e externas. Novos requisitos exigem alterações estruturais nas respostas e inclusão de novos comportamentos que não são compatíveis com versões anteriores da API, sem possibilidade de migração imediata de todos os consumidores.
Nesse contexto, assinale a alternativa que descreve corretamente a estratégia mais adequada para evoluir a API sem causar indisponibilidade ou quebra de compatibilidade para os clientes existentes
Considere uma API back-end que utiliza um banco de dados relacional como fonte primária de dados e um cache em memória (Redis) para acelerar consultas frequentes. Os dados podem ser atualizados por múltiplas operações concorrentes, e a aplicação deve equilibrar desempenho e consistência.
Nesse contexto, assinale a alternativa que descreve corretamente uma estratégia adequada de uso de cache para reduzir inconsistências sem comprometer significativamente o desempenho da aplicação.
Considere uma API corporativa que apresenta picos imprevisíveis de acesso e precisa manter alta disponibilidade mesmo em caso de falha de servidores individuais, além de permitir crescimento gradual da capacidade conforme a demanda.
Nesse contexto, assinale a alternativa que descreve corretamente a estratégia de escalabilidade mais adequada para atender a esses requisitos e a justificativa técnica associada.