Criando arquitetura microserviço
com
Spring Boot
Sobre mim
- Um mês trabalhando na CI&T.
- Oito anos trabalhando com Java desde o Struts 1 :)
- Quatro anos trabalhando com Drupal versão 7 e 8.
- Gosto de escrever artigos: https://medium.com/@bdias.ti
- Github: https://github.com/bdiasti/
- Linkedin: https://www.linkedin.com/in/bernardo-dias-0807a873/
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
arquitetura-microservico-spring-boot
- 143