Questões de Concurso
Sobre sistemas distribuídos em arquitetura de software
Foram encontradas 172 questões
O Ministério Público de um estado brasileiro está modernizando seus sistemas de TI. A nova arquitetura de software será baseada em microsserviços hospedados na AWS e exigirá diferentes estratégias de comunicação assíncrona entre os componentes. A equipe identificou os seguintes requisitos:
I. Ingestão de dados em tempo real: As denúncias precisam ser ingeridas continuamente e em grande volume para análise posterior (streaming).
II. Notificações fan-out: Alertas críticos devem ser enviados via SMS, e-mail e push (múltiplos protocolos).
III. Compatibilidade legada: Sistemas Java que utilizam o padrão JMS devem ser integrados sem modificações significativas do código.
Considerando os serviços da AWS, atendem aos requisitos I, II e III, respectivamente:
I.No modelo Publish/Subscribe , os publicadores não precisam conhecer previamente os assinantes, e estes podem se inscrever ou cancelar a inscrição de forma dinâmica nos tópicos de interesse.
II.O modelo Publish/Subscribe promove desacoplamento espacial (os produtores e consumidores não precisam conhecer o endereço uns dos outros) e de sincronização (não precisam aguardar resposta imediata), podendo também promover desacoplamento temporal quando há mecanismos de retenção ou persistência de mensagens no sistema.
III.No modelo Publish/Subscribe assíncrono, o publicador não depende da confirmação de recebimento por parte dos assinantes para prosseguir com sua execução.
É correto o que se afirma em:
Para garantir que o tráfego seja enviado apenas para Pods que já completaram sua rotina de inicialização e carregamento de cache, a seguinte configuração do Kubernetes deve ser rigorosamente auditada e ajustada:
Esse modelo de computação em nuvem, no qual o usuário consome a aplicação final via web, é classificado como
Uma equipe de engenharia DevOps está implantando uma aplicação web em um cluster Kubernetes, utilizando objetos do tipo Deployment para garantir alta disponibilidade e atualização controlada da aplicação.
Durante a implantação, foi utilizado o seguinte manifesto Kubernetes:
Considerando os conceitos de Pods, Deployments e exposição de aplicações em Kubernetes, analise as afirmativas a seguir.
I. A partir do campo replicas: 3, o Kubernetes deverá manter três Pods derivados do template especificado em spec.template, cada um executando um contêiner com a imagem nginx:1.25.
II. O campo selector.matchLabels determina quais Pods pertencem ao Deployment, devendo corresponder aos rótulos definidos em spec.template.metadata.labels.
III. A definição containerPort: 80 faz com que o Kubernetes crie automaticamente um Service para permitir acesso externo à aplicação.
IV. O Deployment gerencia a execução dos Pods por meio de ReplicaSets, responsáveis por garantir que o número desejado de réplicas esteja em execução.
V. No Kubernetes, contêineres podem ser executados diretamente nos nós do cluster, sem necessidade de encapsulamento em Pods.
Assinale a alternativa CORRETA:
Uma equipe de engenharia DevOps está implementando o processo de implantação automatizada de uma aplicação web como parte de um pipeline de entrega contínua. A aplicação é executada em um ambiente “conteinerizado”, composto por uma stack de serviços formada por um servidor NGINX, responsável pelo atendimento das requisições HTTP, um serviço PHP-FPM, que executa a lógica da aplicação, bem como por um banco de dados MySQL, responsável pela persistência das informações.
A orquestração desses componentes está sendo realizada por meio de um arquivo dockercompose.yml, no qual cada serviço é executado em um contêiner distinto.
Durante testes de inicialização do ambiente, a equipe observou que, em algumas execuções do comando docker compose up, o contêiner da aplicação tenta estabelecer conexão com o banco de dados antes que o serviço MySQL esteja completamente pronto para aceitar conexões, ocasionando falhas temporárias durante o bootstrap da aplicação.
Considere o trecho do arquivo docker-compose.yml utilizado pela equipe:
Fonte: dados do elaborador
Considerando o funcionamento do Docker Compose, bem como as boas práticas relacionadas à inicialização de serviços, resiliência de contêineres e gerenciamento seguro de credenciais, analise as afirmativas a seguir.
I. A diretiva depends_on presente no serviço app garante a ordem de inicialização dos contêineres, mas não assegura que o banco de dados esteja completamente pronto para aceitar conexões.
II. A utilização da variável ${MYSQL_ROOT_PASSWORD} no arquivo docker-compose.yml elimina os riscos de exposição de credenciais, sendo considerada equivalente ao uso de Docker Secrets em termos de segurança.
III. A política restart: on-failure definida no serviço app permite que o contêiner seja reiniciado automaticamente caso o processo principal termine com erro, contribuindo para a resiliência da aplicação em cenários de falhas transitórias.
IV. O uso de Docker Secrets é geralmente considerado mais seguro que variáveis de ambiente para armazenamento de credenciais sensíveis, pois os segredos podem ser gerenciados separadamente da configuração da aplicação e não ficam expostos diretamente no ambiente do contêiner.
V. A definição de um healthcheck no serviço db permite verificar periodicamente se o banco MySQL está operacional e possibilita identificar quando o serviço está efetivamente pronto para receber conexões.
Assinale a alternativa CORRETA:
Em arquiteturas modernas baseadas em microsserviços, é comum a utilização de uma API Gateway, que atua como um ponto único de entrada para requisições externas. Esse componente integra a camada de middleware, sendo responsável por funções como roteamento de requisições, autenticação, transformação de mensagens, controle de acesso e aplicação de políticas de segurança, permitindo que clientes acessem múltiplos serviços de backend de forma transparente.
Considere o seguinte exemplo de configuração simplificada de um gateway para registrar um serviço e criar uma rota de acesso:

Clientes podem acessar o serviço por meio do endpoint:

O gateway encaminhará automaticamente a requisição para o serviço backend correspondente.
Com base no funcionamento de API Gateways em arquiteturas distribuídas, analise as afirmativas a seguir.
I. A configuração apresentada permite que o cliente acesse o recurso /usuarios pelo gateway, sem precisar conhecer diretamente o endereço ou a porta do serviço backend responsável pelo processamento da requisição.
II. A presença da API Gateway na arquitetura implica que os serviços internos deixam de se comunicar diretamente entre si, passando toda interação obrigatoriamente pelo gateway.
III. A centralização do acesso aos serviços em uma API Gateway possibilita a implementação de mecanismos comuns, como autenticação, registro de logs e limitação de requisições, em um único ponto da arquitetura.
Assinale a alternativa CORRETA:
Entre as soluções utilizadas para comunicação assíncrona estão os message brokers, que implementam o modelo de fila de mensagens, no qual produtores enviam mensagens para uma fila e consumidores as processam posteriormente.
Considere o seguinte código em Python, que utiliza a biblioteca pika para consumir mensagens de uma fila em um broker implementado com RabbitMQ.
Esse código ilustra um consumidor de mensagens que se conecta a um broker RabbitMQ e recebe mensagens publicadas em uma fila.
Com base no conceito de middleware e no funcionamento de sistemas de mensageria em arquiteturas distribuídas, analise as afirmações a seguir:
I. O programa estabelece uma conexão com um servidor de mensageria e passa a atuar como consumidor de mensagens da fila denominada “tarefas”.
II. Para toda mensagem entregue ao consumidor a partir da fila tarefas, a função callback será executada para processar o conteúdo recebido.
III. A utilização de um middleware de mensageria como o RabbitMQ implica que produtores e consumidores precisam estar em execução simultaneamente para que a comunicação ocorra de maneira síncrona.
Assinale a alternativa CORRETA.
I. Web Services são projetados para serem independentes de plataforma e linguagem de programação, permitindo que diferentes sistemas e aplicativos se comuniquem entre si.
II. HTML, XML e JSON são exemplos de formatos adotados por Web Services para enviar e receber dados.
III. REST é um estilo arquitetural para sistemas distribuídos, muitas vezes utilizado para construir Web Services leves e escaláveis.
IV. Um dos princípios de REST é a adoção de URL única para acesso a todos os recursos (dados, serviços).
A computação em nuvem permite que organizações consumam recursos tecnológicos sob demanda, sem a necessidade de manter toda a infraestrutura física localmente. Os modelos de serviço em nuvem IaaS, PaaS e SaaS estabelecem diferentes níveis de responsabilidade compartilhada entre o provedor e o cliente sobre os recursos da pilha tecnológica. Diante disso, analise as afirmativas a seguir:
I. O provedor disponibiliza servidores virtuais, armazenamento e rede; o cliente é responsável por instalar e gerenciar o sistema operacional, o middleware e as aplicações sobre a infraestrutura provisionada.
II. O provedor gerencia a infraestrutura física e o ambiente de execução; o cliente desenvolve e implanta suas próprias aplicações sobre a plataforma disponibilizada, sem se preocupar com servidores ou sistema operacional.
III. O provedor opera toda a pilha tecnológica, da infraestrutura à aplicação; o cliente acessa o software pronto pela internet, sem nenhuma responsabilidade sobre o ambiente subjacente.
Considerando isso, assinale a alternativa que associa CORRETAMENTE cada afirmativa acima ao modelo de serviço em nuvem correspondente.
Acerca de arquiteturas serverless e event-driven, de balanceamento de cargas e de autoescalonamento, julgue o item a seguir.
Em arquiteturas event-driven serverless, a execução de funções é interrompida por eventos publicados por serviços produtores e modificada por consumidores de forma desacoplada, sendo incomum a utilização de mecanismos de mensageria ou de streams para intermediar a entrega desses eventos.
Acerca de arquiteturas serverless e event-driven, de balanceamento de cargas e de autoescalonamento, julgue o item a seguir.
Em infraestruturas com balanceadores de carga, o autoescalonamento horizontal consiste em aumentar dinamicamente a capacidade computacional de uma instância já existente, enquanto o balanceador distribui requisições entre múltiplas instâncias dessa mesma máquina virtual.