0

Um pouquinho sobre microsserviços

Leonardo Demetrio
Leonardo Demetrio

Oi Galera, tudo bem?


Sem dúvidas nos últimos meses eu, você e muitas outras pessoas ouviram temos como:


  • Aplicação distribuída
  • Conteinerização
  • Microsserviços
  • DevOps
  • DevSecOps e vai a salada de palavras


Bom, hoje eu vim falar um pouco dos microsserviços e porque eles mudaram o mercado como um todo.


Monolito


Antigamente, as aplicações eram escritas em conjunto, ou seja, em uma única aplicação temos banco de dados, frontend e backend juntos. Mas se olharmos para um cenário hipotético, não é isso que acontece ?


A resposta é não, mas para exemplificar melhor imagine um documento HTML, onde neste documento temos o HTML, o CSS e o JavaScript todos juntos em um único arquivo. Tudo isso se comunicando com o backend que estaria provendo um servidor para subir o documento HTML e consumir os dados e jogar no banco de dados.


Um exemplo é a aplicação abaixo, mesmo que eu tenha uma arquitetura de RAID 5 para os data centers, a aplicação é totalmente dependente uma da outra, ou seja, se o front cair tem há como substituir, se o backend cair a aplicação para e se o banco de dados inteiro cair ( os 3 bancos ) tanto o front , quanto o back vão apresentar erros.


Podemos concluir que a característica mais marcante do monolito é o fato das aplicações serem totalmente dependentes entre si.


O monolito, pelo fato das aplicações estarem todas juntas talvez até mesmo na mesma máquina, fazem com que o quesito rede (internet) para a comunicação entre as aplicações sejam mais rápidas, isso se dá porque ele utiliza o barramento do computador ou do servidor para trafegar os dados de um ponto a outro tendo apenas como parte ligada a internet algumas requisições que devem ser feitas, porém todo processo de processamento de dado e armazenamento não depende de rede.



Microsserviços


O microsserviço é considerado como uma arquitetura de sistema a qual as aplicações independem uma das outras, ou seja, diferente do monolito o frontend depende do backend para obter os dados, mas não depende para ficar de pé. Isso já demonstra uma maturidade enorme da aplicação, ela não cai,não sai do ar.


Podemos pensar sendo um microsserviço como um documento HTML separado do CSS e do JavaScript. Além disso esses três arquivos estão rodando dentro de um container Docker, esse container não impede que a aplicação sofra qualquer intervenção do sistema externo. Além disso esse container é gerenciado por uma aplicação Kubernete que escala ele toda vez que ele cai ou que o número de pessoas acessando o site seja igual ao limite requisitado.

Pensando nisso, basta trocar o arquivo HTML pelo Backend feito em Java, C# ou Python e pelo banco de dados.


Eu sei que ficou meio confuso, mas calma, aqui está um desenho para ilustrar :