Slide 1

Slide 1 text

57º Python Floripa

Slide 2

Slide 2 text

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.

Slide 3

Slide 3 text

MICROSERVICE VS monolito

Slide 4

Slide 4 text

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?

Slide 5

Slide 5 text

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

Slide 6

Slide 6 text

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"

Slide 7

Slide 7 text

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.

Slide 8

Slide 8 text

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).

Slide 9

Slide 9 text

TeCNOLOGIAS

Slide 10

Slide 10 text

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.

Slide 11

Slide 11 text

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.

Slide 12

Slide 12 text

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.

Slide 13

Slide 13 text

Event drven

Slide 14

Slide 14 text

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.

Slide 15

Slide 15 text

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.

Slide 16

Slide 16 text

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

Slide 17

Slide 17 text

Testes INTEGRADOS Robot framework

Slide 18

Slide 18 text

Contatos ● https://www.linkedin.com/in/fabiano-teichmann/ ● [email protected] ● https://github.com/fabiano-teichmann

Slide 19

Slide 19 text

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

Slide 20

Slide 20 text

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

Slide 21

Slide 21 text

https://martinfowler.com/bliki/MonolithFirst.html https://robotframework.org/ https://github.com/fabiano-teichmann/robot_guide