Microsserviços
5
min de leitura
15 de junho de 2021

Microserviços: Primeiros passos

Danilo Moreira
Consultor / Desenvolvedor
Desenvolvedor .NET com mais de 3 anos de experiência em projetar e desenvolver APIs baseadas em REST, realizar testes de unidade e integração e auxiliar na solução de problemas e resolução de defeitos durante o ciclo de vida de desenvolvimento de software. Experiência com bases de dados relacionais e não relacionais, filas e tópicos, SOLID, TDD, DDD e capacidade, desejo e motivação para aprender rapidamente e adquirir novas competências.
Mais sobre o autor

Este artigo cobre os principais tópicos que o ajudarão a tomar melhores decisões sobre como criar Microsserviços e se sua empresa realmente precisa desta arquitetura no momento.

Quando pensamos em Microsserviços, a primeira coisa que precisamos considerar é: Posso dividir minha aplicação/solução/empresa em pequenas partes? Isso significa pensar em muitas coisas, como se nossa solução será capaz de funcionar sem dependência, em outras palavras, se cada serviço for independente, funcionará separadamente e executará apenas uma tarefa?

Um dos princípios mais importantes do Microsserviços é que um serviço deve realizar apenas uma tarefa. Se esta regra for quebrada, podem surgir problemas quando é necessário refatorar o código. Nosso objetivo é criar serviços que possam funcionar separadamente, sem qualquer agregação ou acoplamento. Isto significa que o serviço pode funcionar de forma independente.

As principais perguntas que devemos fazer ao construir um microserviço são:

1- Ainda é independente?

2 - Ele ainda executa uma tarefa apenas?

Se você puder responder sim a estas duas perguntas, você está no caminho certo para as melhores práticas em Microsserviços. Mas você pode descobrir que em algumas situações, é necessário ter comunicação entre dois ou mais Microsserviços ou outros tipos de aplicação. Às vezes, você precisa retornar informações que estão em um contexto diferente e seu microserviço não tem acesso direto.

Este tipo de situação não é ideal quando estamos trabalhando com Microsserviços. Se um dos serviços não estiver disponível ou não der a resposta que você esperava, você pode ter problemas, tais como informações incompletas ou exceções em seu código e, geralmente, os dados são tão importantes que sem eles, todo o seu serviço pode ser incapaz de completar sua tarefa. Nessas situações, você tem que criar artefatos que possam lidar com eles.

Para resolver este problema, precisamos construir uma solução que leve em conta nossas exigências comerciais. Os requisitos funcionais são essenciais; eles definem o comportamento do serviço, ou o que ele pode ou não fazer. Ao considerar a usabilidade, escalabilidade, desempenho e outros requisitos não funcionais, você também deve considerar como o serviço está funcionando, ou seja, de forma síncrona ou assíncrona.

Se você tem um serviço síncrono que também depende de outro, e precisa deste outro serviço para entregar os dados em tempo de execução, você provavelmente precisará de alto desempenho entre estas duas solicitações, pois caso contrário, isto poderia resultar em uma má experiência para seu usuário, ou em um timeout ou outro tipo de exceção.

Quando os serviços são desenvolvidos com mensagens, filas e tópicos, a comunicação entre eles será assíncrona. Quando um microserviço tiver concluído sua parte do trabalho, ele publica seu resultado em uma fila ou tópico. Então, outro microserviço, que estava esperando, pegará este resultado e fará sua parte do trabalho. Desta forma, podemos tornar nossa solução mais independente, para que ela não seja acoplada a todas as partes de nosso sistema, como em uma solução comum ou aplicação monolítica.

As três principais maneiras de implementar a comunicação entre os serviços são:

Pedido de 1-HTTP entre serviços;

2-Mensagens (filas e tópicos);

Comunicação com base em 3 eventos;

O que você precisa considerar ao construir seu serviço é: a origem exige a resposta imediatamente após o envio do pedido? (síncrona) ou pode esperar que o destino processe a mensagem, e então responder publicando em outro mecanismo, tal como uma fila? (assíncrono).

Você pode estar se perguntando agora, por que eu deveria considerar Microsserviços como uma solução para meu negócio?

A resposta é: Os microserviços são úteis quando você precisa construir um sistema que pode funcionar facilmente com escalas flexíveis, implantação independente, entrega contínua ou múltiplas equipes, ou quando você deseja expandir seu negócio de forma simples e confiável.

Este conteúdo o ajudou? Então compartilhe com seus amigos que também precisam dessa ajuda inicial com Microsserviços.


Obrigado pela leitura!