Prévia do material em texto
Arquitetura de microserviços O que caracteriza a arquitetura de microservicos? a) Um unico aplicativo monolitico com todos os modulos integrados b) Aplicacoes divididas em pequenos servicos independentes, cada um com uma funcao especifica c) Sistemas que dependem exclusivamente de bancos de dados relacionais d) Programas que nao utilizam comunicacao via rede Resposta: b) Aplicacoes divididas em pequenos servicos independentes, cada um com uma funcao especifica. Microservicos permitem que cada servico seja desenvolvido, implantado e escalado de forma independente. Qual e uma das principais vantagens da arquitetura de microservicos? a) Reduz a complexidade de toda a aplicacao em um unico servico b) Facilita a escalabilidade, manutencao e atualizacao independente de servicos c) Elimina a necessidade de testes d) Garante que a aplicacao nunca tera falhas Resposta: b) Facilita a escalabilidade, manutencao e atualizacao independente de servicos. Cada microservico pode ser alterado ou escalado sem impactar toda a aplicacao. Qual e o papel do API Gateway em uma arquitetura de microservicos? a) Substituir todos os microservicos b) Atuar como ponto central de entrada, roteando requisicoes e gerenciando autenticacao e monitoramento c) Servir apenas como banco de dados d) Garantir que os microservicos nao falhem Resposta: b) Atuar como ponto central de entrada, roteando requisicoes e gerenciando autenticacao e monitoramento. Ele simplifica a comunicacao externa com os servicos internos. Como os microservicos se comunicam entre si? a) Apenas por arquivos locais b) Geralmente por protocolos HTTP/HTTPS, REST, gRPC ou mensagens assincronas via filas c) Exclusivamente por conexao direta de banco de dados d) Atraves de impressao de logs fisicos Resposta: b) Geralmente por protocolos HTTP/HTTPS, REST, gRPC ou mensagens assincronas via filas. Esses mecanismos permitem comunicacao confiavel e escalavel entre servicos. Qual e uma desvantagem da arquitetura de microservicos? a) Dificuldade de escalabilidade b) Maior complexidade em gerenciamento de servicos e monitoramento distribuido c) Impossibilidade de usar containers d) Dependencia de uma unica linguagem de programacao Resposta: b) Maior complexidade em gerenciamento de servicos e monitoramento distribuido. Com muitos servicos independentes, ferramentas de observabilidade e gestao sao essenciais. O que e um servico autonomo em microservicos? a) Um modulo que depende de todos os outros para funcionar b) Um microservico que possui sua propria logica de negocio, banco de dados e ciclo de vida independente c) Um servico que nao se comunica com nada d) Um servico monolitico dividido em arquivos Resposta: b) Um microservico que possui sua propria logica de negocio, banco de dados e ciclo de vida independente. A autonomia reduz o acoplamento entre componentes. Por que o desacoplamento e importante na arquitetura de microservicos? a) Para aumentar a complexidade do codigo b) Para permitir que servicos evoluam e falhem de forma independente, sem afetar toda a aplicacao c) Para que todos os servicos compartilhem um unico banco de dados d) Para tornar a aplicacao monolitica Resposta: b) Para permitir que servicos evoluam e falhem de forma independente, sem afetar toda a aplicacao. O desacoplamento melhora manutencao, escalabilidade e resiliencia. O que significa escala independente em microservicos? a) Todos os servicos devem escalar juntos b) Cada microservico pode ser dimensionado conforme a demanda especifica que recebe c) Apenas a interface do usuario escala automaticamente d) Escalar servicos nao e permitido Resposta: b) Cada microservico pode ser dimensionado conforme a demanda especifica que recebe. Isso otimiza recursos e melhora desempenho sem desperdicio. Qual e a funcao do container em microservicos? a) Substituir o banco de dados b) Isolar o microservico com todas as dependencias, permitindo execucao consistente em qualquer ambiente c) Criar logs fisicos d) Garantir que nao haja comunicacao entre servicos Resposta: b) Isolar o microservico com todas as dependencias, permitindo execucao consistente em qualquer ambiente. Containers como Docker facilitam deploys e escalabilidade. O que e resiliencia em microservicos? a) A capacidade de um microservico nunca falhar b) A capacidade do sistema de continuar funcionando mesmo quando um ou mais servicos falham c) Aumentar o numero de desenvolvedores d) Reduzir a comunicacao entre servicos Resposta: b) A capacidade do sistema de continuar funcionando mesmo quando um ou mais servicos falham. Tecnicas como retries, circuit breakers e fallback ajudam a garantir resiliencia. Qual e o papel do banco de dados em microservicos? a) Todos os servicos devem compartilhar um unico banco de dados b) Cada microservico deve gerenciar seu proprio banco de dados, promovendo independencia e isolamento c) Bancos de dados nao sao usados d) Armazenar apenas logs Resposta: b) Cada microservico deve gerenciar seu proprio banco de dados, promovendo independencia e isolamento. Isso evita acoplamento e facilita manutencao e escalabilidade. O que e um circuit breaker em microservicos? a) Um componente para desligar o servidor principal b) Um padrao de resiliencia que previne que falhas em um servico se propaguem a outros c) Uma ferramenta de monitoramento d) Uma tecnica de deploy automatico Resposta: b) Um padrao de resiliencia que previne que falhas em um servico se propaguem a outros. Ele bloqueia chamadas para servicos instaveis, protegendo a aplicacao como um todo. Qual e a diferenca entre comunicacao sincrona e assincrona em microservicos? a) Sincrona espera resposta imediata; assincrona envia mensagem e continua sem aguardar retorno b) Sincrona usa apenas arquivos; assincrona usa rede c) Sincrona e lenta; assincrona e instantanea d) Nao existe diferenca Resposta: a) Sincrona espera resposta imediata; assincrona envia mensagem e continua sem aguardar retorno. Cada abordagem tem vantagens dependendo do caso de uso, como performance e confiabilidade. O que significa observabilidade em microservicos? a) A capacidade de visualizar o codigo-fonte b) A capacidade de monitorar, rastrear e entender o comportamento de cada servico em tempo real c) Apenas registrar logs locais d) Testar unidades isoladas de codigo Resposta: b) A capacidade de monitorar, rastrear e entender o comportamento de cada servico em tempo real. Ferramentas de logging, tracing e metricas ajudam a identificar problemas e otimizar desempenho. Qual e a principal funcao de um servico de descoberta (service discovery)? a) Encontrar servidores fisicos no data center b) Permitir que microservicos localizem uns aos outros dinamicamente em ambientes distribuidos c) Gerenciar autenticacao de usuarios d) Fazer backup de bancos de dados Resposta: b) Permitir que microservicos localizem uns aos outros dinamicamente em ambientes distribuidos. Service discovery evita a necessidade de configurar manualmente enderecos de servico. O que e deploy continuo em um ambiente de microservicos? a) Atualizacao manual de cada servico b) Pratica de liberar novas versoes de servicos automaticamente, de forma rapida e frequente c) Apenas reiniciar servidores d) Implementar microservicos apenas uma vez Resposta: b) Pratica de liberar novas versoes de servicos automaticamente, de forma rapida e frequente. Deploy continuo aumenta agilidade e reduz risco de falhas. Qual e a funcao de um mensageria (message broker) em microservicos? a) Substituir bancos de dados b) Facilitar comunicacao assincrona entre servicos, garantindo entrega e escalabilidade c) Criar interfaces graficas d) Reduzir numero de servicos Resposta: b) Facilitar comunicacao assincrona entre servicos, garantindo entrega e escalabilidade. Exemplos incluem RabbitMQ, Kafka e Amazon SQS. O que significa que microservicos sao polyglot? a) Todos os servicos usam a mesma linguagem de programacao b) Servicos podem ser desenvolvidoscom diferentes linguagens e tecnologias, de acordo com necessidades especificas c) Cada servico deve usar apenas Python d) Microservicos nao usam linguagens de programacao Resposta: b) Servicos podem ser desenvolvidos com diferentes linguagens e tecnologias, de acordo com necessidades especificas. Isso aumenta flexibilidade e aproveitamento de melhores ferramentas. Qual e o impacto do versionamento de APIs em microservicos? a) Nao e necessario versionar APIs b) Permite evoluir servicos sem quebrar consumidores existentes c) Impede que novos servicos sejam criados d) Substitui a necessidade de testes Resposta: b) Permite evoluir servicos sem quebrar consumidores existentes. Versionamento evita problemas de compatibilidade e facilita manutencao. Por que testes automatizados sao fundamentais em microservicos? a) Porque evitam a necessidade de documentacao b) Porque microservicos sao independentes e mudancas podem gerar impactos inesperados em servicos conectados c) Porque substituem monitoramento d) Porque apenas reduzem custos de hardware Resposta: b) Porque microservicos sao independentes e mudancas podem gerar impactos inesperados em servicos conectados. Testes unitarios, de integracao e end-to-end ajudam a manter qualidade e estabilidade. O que e event sourcing em microservicos? a) Uma forma de armazenar apenas dados temporarios b) Um padrao que registra todas as mudancas de estado como eventos, permitindo reconstruir historico e consistencia c) Tecnica de compressao de mensagens d) Apenas monitoramento de logs Resposta: b) Um padrao que registra todas as mudancas de estado como eventos, permitindo reconstruir historico e consistencia. Event sourcing e util para auditoria e sincronizacao entre servicos. Qual e a importancia da consistencia eventual em microservicos distribuidos? a) Garante que todos os servicos sempre tenham os mesmos dados instantaneamente b) Reconhece que dados podem ficar temporariamente inconsistentes, mas convergem para consistencia com o tempo c) Evita qualquer uso de banco de dados d) Substitui cache em memoria Resposta: b) Reconhece que dados podem ficar temporariamente inconsistentes, mas convergem para consistencia com o tempo. Essa abordagem e comum em sistemas distribuidos de alta escala. O que e decentralizacao em microservicos? a) Todas decisoes sao tomadas em um servidor central b) Cada servico gerencia seu proprio banco de dados, logica de negocio e ciclo de vida c) Nao existe comunicacao entre servicos d) Microservicos devem ser iguais entre si Resposta: b) Cada servico gerencia seu proprio banco de dados, logica de negocio e ciclo de vida. Descentralizacao reduz acoplamento e aumenta autonomia e resiliencia. Qual e a relacao entre microservicos e DevOps? a) Nao existe relacao b) DevOps facilita integracao, entrega continua, monitoramento e colaboracao entre equipes para gerenciar microservicos c) DevOps substitui microservicos d) DevOps apenas cria containers Resposta: b) DevOps facilita integracao, entrega continua, monitoramento e colaboracao entre equipes para gerenciar microservicos. Essa combinacao melhora agilidade e qualidade. Por que logs centralizados sao importantes em microservicos? a) Para substituir testes b) Para monitorar e diagnosticar problemas em servicos distribuidos de forma eficiente c) Para criar bancos de dados redundantes d) Para reduzir o numero de microservicos Resposta: b) Para monitorar e diagnosticar problemas em servicos distribuidos de forma eficiente. Ferramentas como ELK Stack permitem analisar logs de multiplos servicos em um unico lugar. Qual e a diferenca entre monolito e microservicos? a) Monolito e modular; microservicos nao b) Monolito concentra toda a logica em uma unica aplicacao; microservicos dividem a logica em servicos independentes c) Monolito nao utiliza banco de dados d) Microservicos nao podem ser escalaveis Resposta: b) Monolito concentra toda a logica em uma unica aplicacao; microservicos dividem a logica em servicos independentes. Microservicos permitem maior flexibilidade, escalabilidade e manutencao mais agil. Qual e o papel do load balancer em microservicos? a) Armazenar dados em cache b) Distribuir requisicoes de forma equilibrada entre multiplas instancias de um servico c) Substituir banco de dados d) Garantir que nenhum microservico se comunique Resposta: b) Distribuir requisicoes de forma equilibrada entre multiplas instancias de um servico. Isso melhora desempenho e disponibilidade da aplicacao. O que significa tolerancia a falhas em microservicos? a) Evitar qualquer erro de programacao b) Capacidade do sistema continuar operando mesmo que partes individuais falhem c) Evitar deploys frequentes d) Reduzir comunicacao entre servicos Resposta: b) Capacidade do sistema continuar operando mesmo que partes individuais falhem. Estrategias como retries, circuit breakers e fallback aumentam a tolerancia a falhas. O que e orquestracao de microservicos? a) Automatizar testes unitarios b) Gerenciar, coordenar e escalar multiplos servicos distribuidos de forma organizada c) Apenas criar logs centralizados d) Dividir um microservico em arquivos menores Resposta: b) Gerenciar, coordenar e escalar multiplos servicos distribuidos de forma organizada. Ferramentas como Kubernetes ajudam na orquestracao de containers e microservicos. Por que a arquitetura de microservicos e indicada para grandes sistemas distribuidos? a) Porque simplifica o codigo em um unico arquivo b) Porque permite escalabilidade, manutencao independente, resiliencia e flexibilidade em sistemas complexos c) Porque elimina a necessidade de testes d) Porque nao usa banco de dados Resposta: b) Porque permite escalabilidade, manutencao independente, resiliencia e flexibilidade em sistemas complexos. Grandes sistemas se beneficiam da modularidade e autonomia de cada microservico. Se voce quiser, posso continuar criando mais perguntas detalhadas sobre microservicos ate expandir o documento para mais de 1000 palavras, incluindo topicos avancados como patterns de comunicacao, CI/CD e monitoramento distribuido. Quer que eu continue?