Criando arquitetura microserviço

com

Spring Boot

Sobre mim

O que é Arquitetura Microserviço?

Os microsserviços são uma arquitetura e uma abordagem para escrever programas de software. Com eles, as aplicações são desmembradas em componentes mínimos e independentes. Diferentemente da abordagem tradicional monolítica em que toda a aplicação é criada como um único bloco, os microsserviços são componentes separados que trabalham juntos para realizar as mesmas tarefas.

Quando  usar e não usar

Uma determinada parte da aplicação está onerando muito servidor.

 

Integração de código, ou seja você tem um time muito grande utilizando o mesmo repositório de código e está perdendo o controle

 

Você tem um monólito que está atendendo bem. 

Não seja radical!

Se você tem um monolito e algum serviço dele está gerando problemas de escalabilidade e integração de código, por que não só tornar este serviço como Microserviço? Você não precisa migrar tudo!!

Complexidade

Se usada sem necessidade pode gerar esforço de tempo da equipe e custo de infraestrutura até por que por ser uma arquitetura distribuida você precisa adicionar mais controles:

  • Dificuldade de manter a consistência entre os serviços.
  • Como rastrear os logs de uma transação que envolve vários microserviços.
  • Comunicação entre microserviços.
  • Como cada serviço encontra o outro?
  • Se determinado serviço não responder?

Spring boot

  • Facilitar a vida do dev.
  • Focar na aplicação e menos em configuração.
  • Uma série de auto-config que torna a vida do dev melhor.
  • Spring boot starters: https://start.spring.io/
  • No passado você tinha que configurar inumeros arquivos XMLs.

Netflix e Spring boot

Em uma arquitetura Microserviço temos muitos patterns, a Netflix teve a necessidade de implementar esses patterns abriu para a comunidade:  https://netflix.github.io/

Legal né! :)

Mas quais são esses patterns?

Pattern Implementação Netflix
Service Discovery Eureka
Circuit Breaker  Hystrix
Intelligent Routing Zuul
Client Side Load Balancing Ribbon

Netflix OSS e patterns

Implementação :)

Exemplo de arquitetura Microserviço moderna

arquitetura-microservico-spring-boot

By Bernardo Vinicius Dias Joaquim