Nesta apresentação alguns conceitos sobre como trabalhar como Microserviços são mostrados, bem como abordagens de como e quando utilizar eles em seus projetos.
7. O que é um microserviço?
um serviço que cabe um uma página de código...
8. um serviço que representa um contexto delimitado do domínio de um sistema...
O que é um microserviço?
um serviço que cabe um uma página de código...
9. um serviço com fina granularidade...
um serviço que representa um contexto delimitado do domínio de um sistema...
O que é um microserviço?
um serviço que cabe um uma página de código...
10. um serviço bem pequeno...
um serviço com fina granularidade...
um serviço que representa um contexto delimitado do domínio de um sistema...
O que é um microserviço?
um serviço que cabe um uma página de código...
14. Microserviços como arquitetura?
"O estilo arquitetural de microserviços é uma abordagem para o
desenvolvimento de uma aplicação única como um conjunto de
pequenos serviços, cada um rodando em seu próprio processo e se
comunicando com mecanismos leves, frequentemente com uma API
HTTP"
20. Por que?
● Aplicações monolíticas: Uma grande aplicação para cuidar de tudo!
● Bons aspectos:
○ comunicação fácil entre os componentes
○ fácil de desenvolver
27. Por que?
● Aplicações monolíticas: Uma grande aplicação para cuidar de tudo!
● Bons aspectos:
○ comunicação fácil entre os componentes
○ fácil de desenvolver
● Maus aspectos:
○ acoplamento forte entre os componentes
○ comprometimento a longo termo com um stack tecnológico
○ você precisa escalar o bloco inteiro
○ um erro de componente afeta a aplicação inteira
28. Hmm… eu levava uma semana
para liberar uma feature, agora
levo 2 meses...
29. Como eu posso trabalhar estes
pontos para melhorar esse
cenário?
36. Microserviços
● Bons aspectos:
○ serviços / componentes desacoplados, geralmente agrupados por funcionalidades / contextos
○ tolerância a erros pode ser atacada em partes
○ os dados podem ser distribuídos em diferentes componentes
○ cada componente pode utilizar o seu stack tecnológico
42. Microserviços
● Bons aspectos:
○ serviços / componentes desacoplados, geralmente agrupados por funcionalidades / contextos
○ tolerância a erros pode ser atacada em partes
○ os dados podem ser distribuídos em diferentes componentes
○ cada componente pode utilizar o seu stack tecnológico
● Maus aspectos:
○ a complexidade da aplicação aumenta
○ é difícil mudar as responsabilidades entre os componentes
○ as comunicações entre os componentes têm mais latência e precisar de uma interface bem definida
45. Computação distribuída - fiquem atentos!
1. Teorema CAP (Consistência, Disponibilidade and Particionamento)
2. Falácias
○ 1. A rede é confiável.
○ 2. Não há latência.
○ 3. A largura de banda é infinita.
○ 4. A rede é segura.
○ 5. A topologia da rede não muda.
○ 6. Há apenas um administrador.
○ 7. O custo de transporte é zero.
○ 8. A rede é homogênea.
46. Considerações finais / sugestões
● Comece como uma aplicação monolítica, mantendo o código em módulos
● Refatore o código sempre que possível para manter a coesão entre os módulos
● Quando os problemas aparecerem, comece a separar em serviços
● Os microserviços não são uma bala de prata
○ Quando você decide usar esta abordagem, você também abraça os desafios e benefícios da computação
distribuída