← Questões de Engenharia de Software

Engenharia de Software · FGV · 2024

Questão comentada de Engenharia de Software

Relaciones as desvantagens dos microsserviços com seus respectivos conceitos. 1. Complexidade do projeto 2. Complexidade da rede 3. Persistência de dados 4. Testes de integração ( ) Desenvolver aplicativos com arquitetura de microsserviços pode atrasar o processo de obtenção de feedback, pois nem todos os serviços podem ser testados completamente antes de serem implantados em um servidor de teste ou de produção ( ) Microsserviços precisam acompanhar onde os serviços são implantados e o número total de instâncias implantadas, para que, quando uma nova instância de um serviço específico for criada, o tráfego possa ser redirecionado de forma adequada. Isolar o estado de um serviço específico para que ele não seja compartilhado ou duplicado é extremamente difícil. ( ) Com um monólito, tudo acontece em um único processo, então não se precisa fazer muitas chamadas para outros serviços. Ao dividir partes do seu aplicativo em microsserviços, se precisará fazer uma chamada de rede, o que pode causar problemas, especialmente se vários serviços precisarem se comunicar entre si, resultando em efeitos semelhantes aos do pingue-pongue em termos de solicitações de rede. ( ) Refatorar um módulo separado dentro do monólito geral é uma opção mais fácil do que dividir uma parte do seu aplicativo em um microsserviço, pois não há como voltar atrás depois de dividir um serviço. Assinale a opção que indica a relação correta, na ordem apresentada.

Gabarito: D

Microsserviços trazem ganhos de escalabilidade e autonomia, mas cobram pedágio em complexidade. Em vez de um sistema único e simples de entender, voce passa a lidar com vários serviços, chamadas entre eles, dados distribuídos e testes mais chatinhos de organizar. Ou seja: a brincadeira fica mais flexível, mas também mais trabalhosa. A primeira desvantagem é a dificuldade nos testes de integração. Como cada serviço pode depender de outros, nem sempre dá para testar tudo isoladamente antes de colocar em um ambiente de teste ou produção. Isso atrasa feedback e aumenta o risco de surpresas na integração. A segunda é a persistência de dados. Em microsserviços, cada serviço tende a ter seu próprio estado e sua própria base, o que torna difícil rastrear onde tudo está, sincronizar instâncias e evitar duplicação ou compartilhamento indevido de informação. Guardar estado distribuído é o tipo de coisa que parece simples no desenho e vira dor de cabeça na prática. A terceira é a complexidade da rede. Quando um monólito é quebrado em vários serviços, surgem chamadas remotas que antes não existiam, com latência, falhas e efeito dominó entre serviços. A quarta é a complexidade do projeto: dividir um monólito em partes pequenas não é só recortar código, é repensar arquitetura, limites, comunicação e governança. Por isso, o gabarito é D: 4, 3, 2, 1.

Continue treinando

Questões relacionadas