Prévia do material em texto
Arquitetura de microserviços Perguntas de Multipla Escolha sobre Arquitetura de Microservicos Qual e a principal vantagem de adotar uma arquitetura de microservicos em comparacao com a arquitetura monolitica? a) Maior complexidade na implementacao b) Reducao do tempo de desenvolvimento c) Escalabilidade e independencia de servicos d) Maior custo de manutencao Resposta correta: c) Escalabilidade e independencia de servicos. A principal vantagem dos microservicos e a escalabilidade. Como os servicos sao independentes, e possivel escala-los individualmente, o que otimiza o uso de recursos e melhora a performance. Alem disso, a independencia facilita o desenvolvimento e a manutencao, ja que equipes podem trabalhar em servicos diferentes sem interferir diretamente umas nas outras. O que caracteriza a comunicacao entre microservicos? a) Comunicacao sincrona atraves de chamadas diretas de metodo b) Comunicacao assincrona utilizando filas de mensagens c) Comunicacao exclusivamente por banco de dados compartilhado d) Comunicacao apenas atraves de APIs REST Resposta correta: b) Comunicacao assincrona utilizando filas de mensagens. Em uma arquitetura de microservicos, a comunicacao e frequentemente assincrona, utilizando mecanismos como filas de mensagens (por exemplo, RabbitMQ, Kafka). Isso ajuda a desacoplar os servicos e permite uma maior resiliencia e escalabilidade. Qual das alternativas abaixo e um desafio comum na implementacao de microservicos? a) Baixa complexidade na implementacao de cada servico b) Dificuldade na coordenacao de transacoes distribuidas c) Menor necessidade de testes unitarios d) Falta de ferramentas para monitoramento de desempenho Resposta correta: b) Dificuldade na coordenacao de transacoes distribuidas. A coordenacao de transacoes em uma arquitetura de microservicos pode ser complexa, especialmente quando envolvem multiplos servicos. A gestao de transacoes distribuidas exige abordagens como o padrao SAGA para garantir consistencia entre servicos. O que e o padrao de design "API Gateway" em uma arquitetura de microservicos? a) Um servico que gerencia diretamente o banco de dados b) Um ponto unico de entrada para todos os servicos c) Uma estrategia de particionamento de dados em microservicos d) Um servico que sincroniza todos os microservicos Resposta correta: b) Um ponto unico de entrada para todos os servicos. O API Gateway e um componente central que gerencia as requisicoes externas e direciona essas requisicoes para os microservicos apropriados. Ele pode tambem agregar resultados de multiplos servicos e retornar uma resposta consolidada para o cliente. Em uma arquitetura de microservicos, o que significa "desacoplamento"? a) Manter todas as partes do sistema no mesmo servidor b) Dependencia direta entre microservicos c) Independencia entre os servicos, permitindo alteracoes sem impacto no sistema como um todo d) Compartilhamento de banco de dados entre todos os microservicos Resposta correta: c) Independencia entre os servicos, permitindo alteracoes sem impacto no sistema como um todo. O desacoplamento e um principio fundamental nos microservicos. Ele garante que cada servico seja desenvolvido, implantado e escalado de forma independente, sem afetar os outros servicos do sistema. Qual e o principal beneficio de usar containers (como Docker) em uma arquitetura de microservicos? a) Facilitar a execucao de servicos de forma isolada em maquinas virtuais b) Garantir que os microservicos compartilhem recursos de rede c) Prover uma forma de empacotar e distribuir os microservicos de maneira consistente em qualquer ambiente d) Reduzir a quantidade de codigo necessario para cada microservico Resposta correta: c) Prover uma forma de empacotar e distribuir os microservicos de maneira consistente em qualquer ambiente. Containers, como Docker, permitem que microservicos sejam empacotados com todas as dependencias necessarias, garantindo que possam ser executados de forma consistente em diferentes ambientes, desde o desenvolvimento ate a producao. Quais sao os principais componentes de uma arquitetura de microservicos? a) Microservicos, banco de dados monolitico e servidor unico b) Microservicos, API Gateway e mecanismos de comunicacao entre servicos c) Microservicos e servidores de aplicacao d) Microservicos e interfaces graficas do usuario Resposta correta: b) Microservicos, API Gateway e mecanismos de comunicacao entre servicos. A arquitetura de microservicos e composta por servicos independentes (microservicos), um API Gateway para gerenciar as requisicoes externas, e mecanismos de comunicacao como filas de mensagens ou chamadas de API REST para a interacao entre os servicos. Qual e o padrao de design utilizado para garantir que uma falha em um microservico nao impacte os outros? a) Padrao Circuit Breaker b) Padrao Singleton c) Padrao Observer d) Padrao Facade Resposta correta: a) Padrao Circuit Breaker. O padrao Circuit Breaker e utilizado para detectar falhas em um microservico e evitar que essas falhas se propaguem para outros servicos, garantindo maior resiliencia e evitando sobrecarga no sistema. Como a monitoracao de microservicos pode ser feita de forma eficiente? a) Usando logs individuais de cada servico e centralizando-os em uma ferramenta de monitoramento b) Monitorando apenas o servidor de aplicacao principal c) Confiando exclusivamente em metricas de desempenho do banco de dados d) Ignorando logs e confiando em alertas manuais Resposta correta: a) Usando logs individuais de cada servico e centralizando-os em uma ferramenta de monitoramento. A monitoracao de microservicos e mais eficaz quando os logs de cada servico sao coletados e centralizados em uma ferramenta de monitoramento (como ELK Stack ou Prometheus). Isso permite detectar falhas, analisar performance e identificar gargalos no sistema de forma mais agil. Qual e o papel do padrao de design "Saga" em uma arquitetura de microservicos? a) Gerenciar as dependencias de banco de dados entre microservicos b) Garantir que transacoes distribuidas sejam realizadas de forma consistente c) Impedir que microservicos se comuniquem diretamente d) Controlar a escalabilidade do sistema Resposta correta: b) Garantir que transacoes distribuidas sejam realizadas de forma consistente. O padrao Saga e utilizado para garantir a consistencia de transacoes distribuidas em sistemas que utilizam microservicos, ao dividir uma transacao em uma serie de subtransacoes que podem ser compensadas em caso de falha. Quais sao os principais tipos de comunicacao entre microservicos? a) Comunicacao somente por mensagens HTTP b) Comunicacao sincrona via RPC (Remote Procedure Call) e comunicacao assincrona via mensagens c) Comunicacao apenas por banco de dados compartilhado d) Comunicacao sem nenhuma forma de controle Resposta correta: b) Comunicacao sincrona via RPC (Remote Procedure Call) e comunicacao assincrona via mensagens. Microservicos podem se comunicar de maneira sincrona (via chamadas RPC) ou assincrona (via mensagens), dependendo dos requisitos de desempenho e resiliencia do sistema. Por que a seguranca e um desafio em uma arquitetura de microservicos? a) Cada microservico deve ser implementado com seguranca personalizada, aumentando a complexidade b) A arquitetura e simplificada, tornando a seguranca mais facil de implementar c) Microservicos compartilham a mesma base de dados, tornando a seguranca centralizada d) O API Gateway nao permite praticas de seguranca Resposta correta: a) Cada microservico deve ser implementado com seguranca personalizada, aumentando a complexidade. Em uma arquitetura de microservicos, cada servico pode ter requisitos de seguranca especificos, o que exige um controle de acesso granular e politicas de autenticacao/autorizacao independentes para cada servico. Qual e a principal caracteristica do desenvolvimento orientado a testes (TDD) em microservicos? a) Testar apenas a integracao entremicroservicos b) Escrever testes unitarios antes de desenvolver cada microservico c) Testar o sistema inteiro como um monolito d) Focar apenas em testes de interface grafica Resposta correta: b) Escrever testes unitarios antes de desenvolver cada microservico. O TDD (Test-Driven Development) e uma pratica recomendada em arquiteturas de microservicos, onde os testes sao escritos antes do desenvolvimento, ajudando a garantir que cada servico funcione de maneira independente e tenha uma boa cobertura de testes. Qual e a vantagem de adotar uma estrategia de deploy continuo em microservicos? a) Garantir que todos os servicos sejam atualizados simultaneamente b) Facilitar a implantacao de novos recursos sem interrupcao dos servicos c) Limitar a comunicacao entre os microservicos d) Impedir que novos microservicos sejam introduzidos na arquitetura **Resposta correta: