DEV Community

Cover image for O que são microservices (microsserviços)?
Natália Oliveira
Natália Oliveira

Posted on

O que são microservices (microsserviços)?

Esse texto são anotações breves tiradas do vídeo sobre microsevices do canal TechWorld with Nana. As anotações são sobre os seguintes tópicos:

Arquitetura em monolito

Quando falamos em um monilito em tech estamos nos referindo a uma arquitetura onde o código inteiro de uma aplicação é uma unidade. Aqui, tudo é desenvolvido, deployado e escalado como uma unidade, e uma stack só.

Alguns desafios da arquitetura de monolito:

  • A aplicação se torna complexa demais para entender
  • As partes da aplicação se tornam muito entrelaçadas
  • Só dá para escalar a aplicação inteira, mesmo que só faça sentido escalar uma parte específica
  • Demora no release

Como possível solução desses desafios surgiu a arquitetura de microsserviços (em inglês, microservices).

O que são microsserviços?

Microsserviços são aplicações que seguem uma arquitetura onde uma aplicação é dividida entre serviços menores, independentes, que podem ter stacks diferentes, sendo desenvolvidos, deployados e escalados separadamente.

Para se comunicar entre si, é comum que microsserviços utilizem chamadas de APIs. Outra forma de comunicação é através de message brokers, como o RabbitMQ, onde temos filas no modelo publish/subscribe. Além disso, a comunicação pode ser feita também através de service mesh, que é um serviço que lida com toda a lógica de comunicação entre os microsserviços.

Alguns desafios de microsserviços:

  • Configurar a comunicação entre esses diversos serviços
  • Conseguir monitorar todos os múltiplos serviços entre servidores

Microsserviços, CI/CD, polyrepo e monorepo

Polyrepo é uma estratégia de gerência de código onde criamos vários repositórios, cada um com seu tracking de Git, por exemplo, e com isso acabamos por ter vários pipelines de CI/CD (continuous integration/continous deployment). É muito comum em empresas que seguem a arquitetura em microsserviços.

Por outro lado, a estratégia de monorepo nos faz lidar somente com um CI/CD pipeline, já que teremos várias pastas, com cada serviço, mas sendo trackeadas por um único controle de versão, por exemplo.


Fontes:
Microservices explained - the What, Why and How?, por TechWorld with Nana


Esse texto não tem intenção de esgotar o tema. Acrescente nos comentários, e também aponte erros quando os identificar.

Top comments (0)