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

Microservices na maior cervejeira do mundo

Microservices na maior cervejeira do mundo

Palestra apresentada pelo Fabiano Teichmann na 57º Python Floripa on-line https://www.youtube.com/watch?v=_78stm2WpYM

23f134e5e0567efeff45ecfaa8702f37?s=128

Python Floripa

March 27, 2021
Tweet

Transcript

  1. <Microservice na maior cervejeira do mundo/> 57º Python Floripa <Fabiano

    Teichmann />
  2. Sobre mim Tenho 39 anos, sou apaixonado por aviação. Trabalho

    com python há 5 anos com django, flask com aplicações monolíticas. E atualmente trabalhando com microservice e fast api.
  3. MICROSERVICE VS monolito

  4. F-35 VS SUPER TUCANO • Como engenheiro eu gostaria de

    trabalhar no projeto do F-35 ou do Super tucano? • Como piloto qual é prefiro pilotar? • Como um país qual eu prefiro comprar? • Qual é o melhor?
  5. F-35 VS SUPER TUCANO Super tucano • Preço por unidade

    US$ 900 mil • Preço por hora de voo U$$ 1 mil F-35 • 20 anos de desenvolvimento U$$ 400 Bilhões • Preço por hora de voo U$$ 25 • Preço por unidade U$$ 98 milhões
  6. MICROSERVICE VS monolito Ao ouvir histórias sobre equipes que usam

    uma arquitetura de microsserviços , notei um padrão comum. 1. Quase todas as histórias de micros serviço de sucesso começaram com um monólito que ficou muito grande e foi quebrado 2. Quase todos os casos em que ouvi falar de um sistema que foi construído como um sistema de micros serviço desde o início, acabou apresentando sérios problemas. "Martin Fowler"
  7. Background • Desde 1996 a HBSIS desenvolveu o Promax um

    ERP monolito feito em Cobol. • Em 2019 a Ambev compra a HBSIS e em 2020 a HBSIS vira AmbevTech um hub tecnológico. • Com um sistema legado monolítico de milhões de linha de código a empresa investiu em estratégia de microservice.
  8. ICEBEV Desafios • Garantir atendimento rápido ao clientes, reduzindo processos

    burocráticos manuais. • Nosso objetivo é integrar diversos sistemas internos e de terceiros, garantindo a integração entre diversos sistemas. • Sendo que o comodato e manutenção um dos maiores detratores da Ambev com os PDV (bares, restaurante, supermercados etc).
  9. TeCNOLOGIAS

  10. Microservice por que? • Micro service é um padrão arquitetural

    da Ambev. • Facilidade para adicionar novas funcionalidades refazer MS • Escalabilidade com aplicações assíncronas • Facilidade para adicionar novas funcionalidades refazer MS • Facilidade de trabalhar em equipe.
  11. Microservice desafios • Dificuldade de testar o fluxo completo localmente.

    • Curva de aprendizado para novos membro no time • Monitoramento e visibilidade de problemas • Dificuldade em realizar testes que testem o fluxo completo.
  12. Estratégias para trabalhar com Microservice • Coreografia em vez de

    orquestração com comunicação assíncrona. • Implementação event driven. • CI/CD com todos os deploys sendo realizado se todos os testes unitários forem aprovados. • Teste de integração.
  13. Event drven

  14. Event driven • Comunicação entre os componentes é modelada usando

    Streams de Eventos. • Nome dos eventos usamos a nomenclatura domínio e o verbo no passado dizendo que algo aconteceu ex: OrderReceived • Publisher e Subscribers não precisam se conhecer. • Event store, contanto a história do evento.
  15. Testes INTEGRADOS Robot framework • Por que testes unitários são

    importante, mas somente com testes integrados conseguimos ter certeza que está tudo ok • Testes manuais são demorado e cansativos e muitas vezes se esquece de testar um cenário específico. • Teste integrados são dedo duro quando um Micro Service quebra um contrato sendo muito fácil achar o erro.
  16. Testes INTEGRADOS Robot framework • Usa linguagem ubíqua para escrever

    cenários que queremos validar • É uma ferramenta que ajuda no BDD na validação dos cenários mapeados. • Possui diversas libs. • Fácil criar novas libs em python caso precise algo que não tenha uma lib que você precise. • Ele pode ser usado para teste de integração e testes de aceitação
  17. Testes INTEGRADOS Robot framework

  18. Contatos • https://www.linkedin.com/in/fabiano-teichmann/ • fabiano.geek@gmail.com • https://github.com/fabiano-teichmann

  19. Temos vagas https://wwhttps://www.linkedin.com/in/fabiano-teichmann/w.linkedin.com/in/fabiano-teichmann/ https://ambevtech.gupy.io/

  20. <Referências/> https://eskelsen.medium.com/uma-arquitetura-simples-e-eficiente-para-sistemas-event-driven-em-p ython-parte-i-5eb59336d858 https://eskelsen.medium.com/sidecar-pattern-python-e-c-no-mesmo-quadrado-com-grpc-d7d524b9b 85c https://eskelsen.medium.com/uma-arquitetura-simples-e-eficiente-para-sistemas-event-driven-em-p ython-parte-ii-d5e4b7a893f3 https://eskelsen.medium.com/uma-arquitetura-simples-e-eficiente-para-sistemas-event-driven-em-p ython-parte-iii-899e4f6e018a https://robotframework.org/

    https://github.com/fabiano-teichmann/robot_guide
  21. <Referências/> https://martinfowler.com/bliki/MonolithFirst.html https://robotframework.org/ https://github.com/fabiano-teichmann/robot_guide