Sistema Monoliticos vs Microsserviços Flashcards

(7 cards)

1
Q

Sistemas Monolíticos

A

Um sistema monolítico é uma aplicação de software onde todas as funcionalidades estão integradas e fazem parte de uma única unidade. Isso significa que todos os componentes, desde a lógica de negócios até a interface com o usuário, estão unidos em uma única estrutura de código.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Características e Funcionamento de um Sistema Monolítico

A
  • Unidade única: Todos os componentes e funcionalidades do sistema estão interligados e agrupados em uma única aplicação.
  • Uso de uma única linguagem: Normalmente, sistemas monolíticos utilizam uma única tecnologia ou linguagem de programação para todo o código. Por exemplo, um sistema pode ser desenvolvido totalmente em Ruby ou Python, sem a necessidade de integrar várias linguagens.
  • Facilidade de inicialização: Em muitos casos, o desenvolvimento inicial de sistemas monolíticos pode ser mais rápido, pois não há a complexidade de dividir a aplicação em vários serviços distintos.
  • Acoplamento forte: Todas as funcionalidades, desde a exibição de produtos até o processamento de pagamentos, estão unidas dentro do mesmo sistema. Isso cria uma dependência intrínseca entre os componentes, o que pode complicar modificações ou alterações no futuro.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Vantagens dos Sistemas Monolíticos

A
  • Desenvolvimento rápido: Quando se está começando um projeto, sistemas monolíticos podem ser mais rápidos para serem desenvolvidos, uma vez que toda a
    aplicação é construída de forma integrada e com menor complexidade.
  • Menor complexidade de comunicação: Em sistemas monolíticos, todas as partes da aplicação comunicam-se diretamente entre si, sem a necessidade de criar redes de comunicação entre microserviços ou outras partes externas. Isso torna a interação entre os componentes mais simples.
  • Menos sobrecarga operacional: Quando o sistema é pequeno e bem estruturado, a sobrecarga de gerenciamento de múltiplas partes pode ser reduzida. Não há a necessidade de gerenciar diversos contêineres ou microserviços, o que pode
    facilitar o processo de deployment e monitoramento.
  • Adoção de uma única tecnologia: Utilizar uma única linguagem de programação e
    framework facilita o desenvolvimento, já que a equipe precisa se concentrar apenas
    em uma stack tecnológica.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Desvantagens dos Sistemas Monolíticos

A
  • Escalabilidade limitada: Quando o sistema cresce, torna-se difícil escalá-lo apenas
    em uma parte específica. Se o catálogo de produtos de um sistema de e-commerce
    começar a receber mais tráfego, todo o sistema precisa ser escalado, mesmo que
    outras áreas não demandem tantos recursos computacionais.
  • Maior risco de falhas: Como todos os componentes estão intimamente interligados, uma falha em uma parte do sistema pode afetar todo o funcionamento
    da aplicação.
  • Manutenção difícil: À medida que o sistema cresce e acumula funcionalidades, o código pode se tornar complexo e difícil de manter. Mudanças em uma parte do
    sistema podem exigir modificações em várias outras, o que aumenta o risco de
    erros.
  • Limitações de flexibilidade: Se você deseja incorporar novas tecnologias ou frameworks, isso pode ser um desafio, pois a aplicação está fortemente acoplada a
    uma única base de código.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

O que são Microsserviços?

A

A primeira etapa para entender a arquitetura de microsserviços é perceber que, em essência, microsserviços são aplicações comuns, assim como qualquer outro sistema que desenvolvemos. Ao contrário do que alguns podem pensar, não se trata de algo particularmente complexo ou exótico. A programação de um microsserviço segue as mesmas regras de qualquer aplicação, e podemos escolher a linguagem de programação que preferirmos, de acordo com as necessidades do projeto.

Nos microsserviços, cada aplicação tem um objetivo bem definido e limitado. Em um sistema monolítico, é comum termos várias responsabilidades centralizadas em um único sistema, o que pode resultar em um código mais complexo e difícil de manter. Já no caso dos microsserviços, cada serviço é responsável por uma parte específica do sistema, o que facilita o desenvolvimento, manutenção e escalabilidade.

Outro ponto essencial dos microsserviços é que eles sempre fazem parte de um ecossistema maior. Não é possível ter um microsserviço isolado e sem interação com
outros serviços. A arquitetura de microsserviços envolve múltiplos sistemas
interconectados, cada um contribuindo para um domínio específico dentro da aplicação como um todo

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

A Independência dos Microsserviços

A

Uma das características mais importantes dos microsserviços é a sua independência.
Cada microsserviço deve ser autônomo o suficiente para funcionar de maneira isolada, mesmo que outros serviços ao seu redor falhem. Isso significa que, se um microsserviço falhar, ele não deve afetar o funcionamento dos outros. No entanto, isso não significa que os microsserviços operem sem interagir entre si. A comunicação entre eles é constante e geralmente realizada por meio de sistemas de mensageria, como brokers de mensagens.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q
A
How well did you know this?
1
Not at all
2
3
4
5
Perfectly