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

Arquitetura Orientada a Eventos com EventHub

Arquitetura Orientada a Eventos com EventHub

Ana Manzan

June 10, 2021
Tweet

More Decks by Ana Manzan

Other Decks in Programming

Transcript

  1. Globalcode – Open4education
    Arquitetura Orientada a Eventos
    com EventHub

    View Slide

  2. Globalcode – Open4education
    ANA MANZAN
    MG <3 SP
    Desenvolvedora na GFT
    @anamanzandev
    [email protected]
    anamanzan.dev

    View Slide

  3. Globalcode – Open4education
    RENÍCIUS PAGOTTO
    Engenheiro de Software de XP
    Apoiador do Developers-BR
    Fundador do Itu Developers
    Renícius Pagotto
    [email protected]
    medium.com/@ renicius.pagotto

    View Slide

  4. Globalcode – Open4education
    Aplicações Monolíticas

    View Slide

  5. Globalcode – Open4education
    Toda a aplicação fica contida em um único módulo
    São constituídas de módulos grandes e normalmente
    são altamente acopladas
    Aumento de complexidade e tamanho ao longo do
    tempo
    Escalabilidade limitada
    Falta de flexibilidade para novas tecnologias

    View Slide

  6. Globalcode – Open4education

    View Slide

  7. Globalcode – Open4education
    SOA

    View Slide

  8. Globalcode – Open4education
    Service Oriented Architectures (SOA) é, em tradução
    livre, Arquitetura Orientada a Serviços. Esse conceito
    de arquitetura busca disponibilizar as funcionalidades
    de um sistema como um serviço.
    Se comunicam através de um Enterprise Service Bus
    (ESB), utilizando algum protocolo de comunicação
    (SOAP, por exemplo)
    ESB é ponto único de falha

    View Slide

  9. Globalcode – Open4education
    Vantagens
    A diminuição do tempo de desenvolvimento;​
    O baixo acoplamento entre as partes do sistema
    facilita a manutenção;​
    Facilidade de agregar novas tecnologias a
    plataformas;​
    E a possibilidade de reutilização de componentes.

    View Slide

  10. Globalcode – Open4education
    Microsserviços

    View Slide

  11. Globalcode – Open4education
    A arquitetura de microsserviços decompõe a aplicação
    por funções básicas​
    Cada função é denominada um serviço e pode ser
    criada e implantada de maneira independente​
    Cada serviço individual pode funcionar ou falhar sem
    comprometer os demais

    View Slide

  12. Globalcode – Open4education

    View Slide

  13. Globalcode – Open4education
    Comunicação entre
    serviços

    View Slide

  14. Globalcode – Open4education
    Mensagem / Evento
    REST
    gRPC

    View Slide

  15. Globalcode – Open4education
    Mensageria

    View Slide

  16. Globalcode – Open4education
    Mensageria é uma forma de
    comunicação assíncrona entre aplicações
    Comunicação é realizada por meio de mensagens
    Message Broker
    Produtores de mensagens
    Consumidores de mensagem

    View Slide

  17. Globalcode – Open4education

    View Slide

  18. Globalcode – Open4education
    Event Hub

    View Slide

  19. Globalcode – Open4education
    Serviço de ingestão de eventos de baixa latência
    Pode processar milhões de requisições por segundo
    Processamento em tempo real
    PaaS

    View Slide

  20. Globalcode – Open4education

    View Slide

  21. Globalcode – Open4education
    Arquitetura Orientada a
    Eventos

    View Slide

  22. Globalcode – Open4education
    O Event Driven Architecture é uma padrão de arquitetura
    que promove a produção, detecção, consumo e reação
    aos eventos de negócio;
    É um meio de comunicação assíncrona entre serviços
    Um serviço pode consumir ou emitir uma ou mais
    mensagens em uma ou mais filas.

    View Slide

  23. Globalcode – Open4education
    Eventos

    View Slide

  24. Globalcode – Open4education
    Eventos são notificações ou ações que o software
    emite ou recebe quando algo de significativo
    aconteceu, por exemplo, quando uma atualização de
    alguma entidade acontece em nosso sistema.

    View Slide

  25. Globalcode – Open4education
    Full payload
    Only event

    View Slide

  26. Globalcode – Open4education

    View Slide

  27. Globalcode – Open4education

    View Slide

  28. Globalcode – Open4education
    Assíncrono​
    Baixo acoplamento entre serviços​
    Fácil escalabilidade​
    Reprocessamento​
    Fácil evolução do sistema
    Vantagens

    View Slide

  29. Globalcode – Open4education
    Alto custo​
    Complexidade na infraestrutura (DevOps, Dev)​
    Complexidade na arquitetura​
    Falha de serviços
    Consistência eventual
    Desvantagens

    View Slide

  30. Globalcode – Open4education
    SAGA Pattern

    View Slide

  31. Globalcode – Open4education
    É um padrão de gerenciamento de consistência de
    dados em transações distribuídas
    Uma transação distribuída consiste em uma série
    de operações (eventos) que acontecem em
    diferentes aplicações e servidores.

    View Slide

  32. Globalcode – Open4education

    View Slide

  33. Globalcode – Open4education
    Coreografia
    Os serviços trocam eventos sem um ponto de controle
    centralizado.
    Cada serviço dispara eventos para outros serviços

    View Slide

  34. Globalcode – Open4education

    View Slide

  35. Globalcode – Open4education
    Orquestração
    Possui um controlador centralizado que controla todo o
    fluxo de eventos e de compensação de eventos em caso
    de erro em alguma etapa do processo.

    View Slide

  36. Globalcode – Open4education

    View Slide

  37. Globalcode – Open4education
    Referências
    https://mmussett.medium.com/event-driven-architectures-business-transactions-in-a-microservice-
    architecture-part-1-27e710b9d99d
    https://wso2.com/whitepapers/event-driven-architecture-the-path-to-increased-agility-and-high-
    expandability/
    https://www.cloudamqp.com/blog/why-use-rabbitmq-in-a-microservice-architecture.html
    https://www.oreilly.com/library/view/software-architecture-patterns/9781491971437/ch02.html
    https://www.redhat.com/pt-br/topics/microservices/what-are-microservices
    https://www.infoq.com/br/presentations/microservices-uma-abordagem-para-arquitetura-de-aplicacoes/
    https://www.opus-software.com.br/o-que-e-soa-e-quais-os-beneficios/
    https://docs.microsoft.com/pt-br/azure/architecture/reference-architectures/saga/saga

    View Slide

  38. Globalcode – Open4education
    Obrigada!
    [email protected]
    [email protected]

    View Slide

  39. View Slide