Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Microsserviços: Quem são? O que fazem? Como vivem? O que comem?

Microsserviços: Quem são? O que fazem? Como vivem? O que comem?

Ao longo dos anos a arquitetura de microsserviços vem sendo amplamente adotada, por prover inúmeras vantagens tais como: heterogeneidade tecnológica, escalabilidade e desacoplamento. Nesse sentido a arquitetura de microservices atendem as definições de uma arquitetura evolutiva, ou seja, uma arquitetura projetada para mudanças incrementais.

Portanto, nesta palestra, irei discorrer suas características e desvantagens ao adotá-la.

Ef3b48913ea26665c25b2ad78e449d16?s=128

Luram Archanjo

October 08, 2019
Tweet

Transcript

  1. Microsserviços: Quem são? O que fazem? Como vivem? O que

    comem? Luram Archanjo @Sensedia
  2. Quem sou eu? • Sênior Software Engineer na Sensedia •

    MBA em Aplicações Java - IGTI • Análise e Desenvolvimento de Sistemas - FATEC • Palestrante ◦ The Developer’s Conference (TDC) ◦ Google Developers Group (GDG) ◦ SouJava ◦ DevPira
  3. Palestrante no TDC http://www.thedevelopersconference.com.br/palestrante/luram-archanjo

  4. None
  5. Agenda • Arquitetura de Software • Arquitetura Monolítica ◦ Vantagens

    ◦ Desvantagens • Arquitetura de Microservices ◦ Vantagens ◦ Desvantagens • Dúvidas
  6. Arquitetura de Software

  7. Arquitetura de Software O conceito arquitetura de software surgiu devido

    ao aumento da complexidade em grandes sistemas. Portanto, David Garlan e Dewayne Perry (95) definiram arquitetura de software como: “a estrutura dos componentes de um programa/sistema, seus inter-relacionamentos e princípios e diretrizes guiando o projeto e evolução ao longo do tempo”. GARLAN, David; PERRY, Dewayne. Introduction to the Special Issue on Software Architecture, IEEE Transactions on Software Engineering, April 1995, pp. 269-274.
  8. Quais tipos de Arquiteturas?

  9. Arquitetura Monolítica Arquitetura Orientada a Serviços (SOA) Arquitetura Cliente Servidor

    ....
  10. Arquitetura Monolítica

  11. Arquitetura Monolítica O conceito arquitetura monolítica surgiu devido ao desenvolvimento

    de softwares com uma única unidade. Tais softwares geralmente são construídos em três camadas principais: camada de interface gráfica que consiste geralmente em páginas HTML, um banco de dados para armazenamento de informações e uma aplicação do lado servidor responsável por atender as requisições, executar lógica de negócio e recuperar, atualizar e inserir dados. Está aplicação é monolítica, pois qualquer alteração no software deve-se implementar uma nova versão, independente da camada modificada.
  12. Interface Gŕafica Funcionalidades Banco de dados Arquitetura Monolítica

  13. Arquitetura Monolítica Vantagens

  14. Arquitetura Monolítica • Debug • Test • Deploy • Monitoramento

  15. Arquitetura Monolítica Desvantagens

  16. Escalabilidade Interface Gŕafica Funcionalidades Banco de dados CPU MEMÓRIA DISCO

  17. Manutenibilidade Interface Gŕafica Funcionalidades Interface Gŕafica Funcionalidades Interface Gŕafica Funcionalidades

  18. Flexibilidade Interface Gŕafica Funcionalidades Banco de dados

  19. Arquitetura Microsserviços

  20. Arquitetura Microsserviços Segundo Fowler (2014), o estilo arquitetural de micro

    serviços pode ser definido como uma abordagem ao desenvolvimento de uma aplicação como um conjunto de pequenos serviços autônomos, cada um rodando em seu processo e comunicando-se através de mecanismos leves como uma API oferecida via HTTP. Estes serviços são desenvolvidos com o objetivo de atender uma determinada função. FOWLER, Martin; LEWIS, James. Microservices, 2014. Disponível em: <https://martinfowler.com/articles/microservices.html>: Acesso em: 16 jan. 2018.
  21. Arquitetura Microsserviços Interface Gŕafica Funcionalidades Banco de dados Microservice Microservice

    Microservice
  22. Arquitetura Microsserviços Vantagens

  23. Escalabilidade Microservice Microservice Microservice Microservice Microservice Microservice Microservice Microservice Microservice

    Microservice Microservice Microservice Microservice Microservice Microservice Microservice Microservice Microservice Microservice
  24. Manutenibilidade Microservice Microservice Microservice Microservice Microservice Microservice Microservice Microservice Microservice

    Microservice Microservice v1 v2
  25. Alta disponibilidade Microservice LOAD BALANCE Microservice Microservice Microservice

  26. Alta disponibilidade LOAD BALANCE Microservice Microservice Microservice

  27. Heterogeneidade Tecnologica Microservice Microservice Microservice DB DB DB

  28. Heterogeneidade Tecnologica Microservice Microservice Microservice Microservice

  29. Paralelismo de times Microservice Microservice Microservice Microservice Microservice Microservice Microservice

    Microservice Microservice Microservice Microservice Microservice
  30. Arquitetura Microsserviços Desvantagens

  31. Rede Interface Gŕafica Funcionalidades Banco de dados Microservice Microservice Microservice

  32. Rede Microservice Microservice Microservice

  33. Rede - Retry Pattern Microservice Microservice Microservice Microservice Microservice Microservice

    1º 2º 3º
  34. Rede - Retry Pattern Microservice Microservice Microservice Microservice Microservice Microservice

    1º 2º 3º
  35. Rede - Fallback Pattern Microservice Microservice 3º Resposta padrão

  36. Rede - Fallback Pattern

  37. Rede - Circuit Breaker Pattern

  38. Observabilidade Microservice Microservice Microservice Microservice

  39. Observabilidade - Opentracing

  40. Observabilidade - Métricas

  41. Observabilidade - Logs Log Collector Microservice Microservice Microservice

  42. Dados distribuídos Interface Gŕafica Funcionalidades Banco de dados Microservice Microservice

    Microservice
  43. Dados distribuídos - Saga Pattern Microservice Microservice Microservice Microservice

  44. Dados distribuídos - Saga Pattern Microservice Microservice Microservice Microservice

  45. Segurança Microservice Microservice Microservice Microservice Microservice Microservice Microservice

  46. Segurança - API Gateway API Gateway Microservice Microservice Microservice

  47. Sumário 2º Lugar 1º Lugar 3º Lugar Escalabilidade • Custo

    • Alta disponibilidade Manutenabilidade • Correção • Produtividade • Evolução Heterogeneidade • Caso de uso • Time to market
  48. Arquitetura de Microservices não é fácil!

  49. Existem mais de 52 patterns!

  50. Referências

  51. Dúvidas?

  52. Muito obrigado! /larchanjo /luram-archanjo