Prévia do material em texto
Arquitetura Monolítica 1. Qual é a principal característica de uma arquitetura monolítica? a) O sistema é dividido em múltiplos serviços independentes. b) Todo o código é executado como uma única unidade. c) Cada componente é desenvolvido em uma linguagem diferente. d) A comunicação entre componentes é feita por meio de eventos assíncronos. Resposta correta: b) Todo o código é executado como uma única unidade. A principal característica da arquitetura monolítica é que todo o código da aplicação é executado como uma única unidade. Isso significa que todos os componentes, como interface do usuário, lógica de negócios e acesso a dados, estão integrados em um único projeto ou pacote. Essa abordagem simplifica o desenvolvimento e o deployment, uma vez que toda a aplicação é construída, testada e implantada em conjunto. No entanto, essa integração estreita pode levar a desafios significativos, como a dificuldade em escalar partes específicas do sistema, já que qualquer mudança requer a recompilação e redistribuição de toda a aplicação. Além disso, se um componente falhar, pode impactar a operação de toda a aplicação, reduzindo a resiliência do sistema. A arquitetura monolítica é adequada para aplicações pequenas ou médias, onde a simplicidade é priorizada, mas à medida que a complexidade e o tamanho do sistema aumentam, as limitações dessa abordagem tornam-se mais evidentes. 2. Quais são os principais benefícios da arquitetura monolítica? a) Maior complexidade na implementação e manutenção. b) Facilidade de desenvolvimento e implementação. c) Melhor escalabilidade e flexibilidade. d) Menor necessidade de testes. Resposta correta: b) Facilidade de desenvolvimento e implementação. Um dos principais benefícios da arquitetura monolítica é a facilidade de desenvolvimento e implementação. Como todos os componentes da aplicação estão integrados em um único projeto, as equipes podem trabalhar de forma colaborativa em um único código-fonte, o que facilita a comunicação e a coordenação entre desenvolvedores. Essa abordagem simplifica o ciclo de vida de desenvolvimento, pois não é necessário lidar com a complexidade de gerenciar múltiplos serviços ou interfaces. Além disso, o processo de deployment é geralmente mais direto, já que a aplicação pode ser empacotada e implantada como uma única unidade, reduzindo o af://n1010 tempo e o esforço necessários para configurar o ambiente de produção. Em termos de testes, também pode ser mais fácil realizar testes integrados, já que todos os componentes estão presentes no mesmo contexto. Contudo, esses benefícios podem ser compensados por desafios de escalabilidade e manutenção à medida que a aplicação cresce, exigindo uma reflexão cuidadosa sobre a arquitetura a ser escolhida. 3. Qual é um dos principais desafios da arquitetura monolítica? a) Baixa performance devido à natureza distribuída. b) Dificuldade em escalar partes específicas da aplicação. c) Simplicidade na comunicação entre serviços. d) Necessidade de múltiplas equipes para gerenciar componentes. Resposta correta: b) Dificuldade em escalar partes específicas da aplicação. Um dos principais desafios da arquitetura monolítica é a dificuldade em escalar partes específicas da aplicação. Como todos os componentes estão integrados em uma única unidade, se houver um aumento na demanda por uma funcionalidade específica, toda a aplicação deve ser escalada para atender a essa demanda. Isso pode resultar em desperdício de recursos, já que outras partes do sistema que não estão sob carga também são aumentadas, tornando a escalabilidade ineficiente. Além disso, a implementação de mudanças em um componente pode exigir a recompilação e redistribuição de toda a aplicação, aumentando o tempo de inatividade e os riscos de introdução de novos bugs. Essa falta de granularidade na escalabilidade pode ser um obstáculo significativo para o crescimento da aplicação, especialmente em ambientes onde a demanda pode variar rapidamente. À medida que as aplicações evoluem e se tornam mais complexas, a necessidade de uma arquitetura que permita uma escalabilidade mais flexível e eficiente se torna cada vez mais evidente. 4. Como a arquitetura monolítica afeta a manutenção do software? a) Facilita a manutenção por ser um sistema simples. b) Complica a manutenção devido à interdependência dos componentes. c) Reduz a necessidade de documentação. d) Permite que as mudanças sejam implementadas sem testes. Resposta correta: b) Complica a manutenção devido à interdependência dos componentes. A arquitetura monolítica pode complicar a manutenção do software devido à interdependência dos componentes. Em um sistema monolítico, todos os componentes estão fortemente acoplados, o que significa que uma mudança em uma parte da aplicação pode ter impactos não previstos em outras partes. Isso pode tornar a identificação e correção de bugs mais desafiadoras, já que é necessário entender a inter-relação entre diferentes componentes antes de implementar uma modificação. Além disso, à medida que o código cresce e se torna mais complexo, a compreensão do sistema como um todo pode se tornar mais difícil, aumentando o risco de introduzir novos erros durante as atualizações. A necessidade de realizar testes extensivos para garantir que as mudanças não quebrem funcionalidades existentes pode tornar o processo de manutenção mais demorado e oneroso. Portanto, enquanto a arquitetura monolítica pode oferecer simplicidade inicial, ela pode levar a desafios significativos à medida que o sistema evolui e cresce em complexidade. 5. Quando a arquitetura monolítica é mais adequada? a) Para aplicações de larga escala que requerem múltiplas equipes. b) Para projetos pequenos e simples que não exigem escalabilidade. c) Para sistemas que precisam de alta flexibilidade e resiliência. d) Para aplicações que dependem fortemente de microserviços. Resposta correta: b) Para projetos pequenos e simples que não exigem escalabilidade. A arquitetura monolítica é mais adequada para projetos pequenos e simples que não exigem escalabilidade. Em um contexto onde a aplicação tem um escopo bem definido e não está sujeita a mudanças significativas ou crescimento exponencial, uma arquitetura monolítica pode ser uma escolha prática e eficiente. Essa abordagem permite que a equipe se concentre em desenvolver rapidamente o sistema sem se preocupar com a complexidade de gerenciar múltiplos serviços ou interfaces. Além disso, em projetos com prazos curtos ou recursos limitados, uma arquitetura monolítica pode acelerar o ciclo de desenvolvimento, facilitando o lançamento de uma versão inicial do produto. No entanto, é importante considerar que, à medida que a aplicação cresce e suas necessidades evoluem, a arquitetura monolítica pode apresentar limitações significativas, como a dificuldade em escalar e manter o sistema, levando a um eventual replanejamento para uma arquitetura mais flexível, como a de microserviços.