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

PRÓXIMA GERAÇÃO DE APIS E SERVICE MESH

PRÓXIMA GERAÇÃO DE APIS E SERVICE MESH

Com a grande adoção de arquiteturas orientada a APIs e em que uma grande aplicação é dividida em pequenos serviços independentes que se comunicam entre si com base nos protocolos TCP/UDP, as aplicações tendem a ser altamente dinâmicas e sua orquestração passa ser quase que um requisito obrigatório, neste cenário subimos contêineres individuais e a todo tempo sendo iniciados ou destruídos conforme a carga ou durante as atualizações. Essa mudança na arquitetura apresenta novos desafios e oportunidades, então alguns dos pontos mais importantes são a conectividade entre as APIs e sua proteção. Vamos falar um pouco deste cenário utilizando Envoy e o famigerado eBPF. Vamos apresentar tudo de forma objetiva e prática e é claro um pouco de mão na massa mostrando um pouco de como funciona.

02b3f64a1d67d061c3be08729322a90b?s=128

Jefferson Otoni Lima

August 24, 2021
Tweet

More Decks by Jefferson Otoni Lima

Other Decks in Technology

Transcript

  1. 2020 © Engineering www.eng.it Engineering Ingegneria Informatica SpA @EngineeringSpa gruppo.engineering

    LifeAtEngineering PRÓXIMA GERAÇÃO DE APIS E SERVICE MESH ENGINEERING engdb.com.br jeffotoni André Farina Kenisson Melo
  2. 2020 © Engineering www.eng.it Engineering Ingegneria Informatica SpA @EngineeringSpa gruppo.engineering

    LifeAtEngineering 2 PROXY’s & GERAÇÕES
  3. 2020 © Engineering www.eng.it Engineering Ingegneria Informatica SpA @EngineeringSpa gruppo.engineering

    LifeAtEngineering 3
  4. 2020 © Engineering www.eng.it Engineering Ingegneria Informatica SpA @EngineeringSpa gruppo.engineering

    LifeAtEngineering 4 Api Gateways & Gerações
  5. 2020 © Engineering www.eng.it Engineering Ingegneria Informatica SpA @EngineeringSpa gruppo.engineering

    LifeAtEngineering 5 Primeira Geração
  6. 2020 © Engineering www.eng.it Engineering Ingegneria Informatica SpA @EngineeringSpa gruppo.engineering

    LifeAtEngineering 6 Segunda Geração Centralizadas - Protocolo HTTP - L7
  7. 2020 © Engineering www.eng.it Engineering Ingegneria Informatica SpA @EngineeringSpa gruppo.engineering

    LifeAtEngineering 7 Self-service - descentralizada e em Camadas - TCP e UDP - L7 a L4 Terceira Geração
  8. 2020 © Engineering www.eng.it Engineering Ingegneria Informatica SpA @EngineeringSpa gruppo.engineering

    LifeAtEngineering 8 Malha de serviço - comunicação entre serviços Service Mesh
  9. 2020 © Engineering www.eng.it Engineering Ingegneria Informatica SpA @EngineeringSpa gruppo.engineering

    LifeAtEngineering 9 permite que os programadores executem bytecode personalizado dentro do kernel sem ter que mudar o kernel ou carregar módulos do kernel. self-service - descentralizada e em camadas - no KERNEL O eBPF
  10. 2020 © Engineering www.eng.it Engineering Ingegneria Informatica SpA @EngineeringSpa gruppo.engineering

    LifeAtEngineering 10 Alguns agentes responsáveis Apis Microservices Sistemas Distribuídos Conteinerização
  11. 2020 © Engineering www.eng.it Engineering Ingegneria Informatica SpA @EngineeringSpa gruppo.engineering

    LifeAtEngineering 11
  12. 2020 © Engineering www.eng.it Engineering Ingegneria Informatica SpA @EngineeringSpa gruppo.engineering

    LifeAtEngineering 12
  13. 2020 © Engineering www.eng.it Engineering Ingegneria Informatica SpA @EngineeringSpa gruppo.engineering

    LifeAtEngineering 13 • O Envoy pode ser configurado dinamicamente. • O Envoy tem vários algoritmos de balanceamento de carga. • Envoy oferece suporte a novas tentativas e quebra de circuito. O Envoy pode repetir as solicitações e, se o serviço upstream retornar erros suficientes, o Envoy pode "interromper o circuito". • O Envoy também oferece suporte de primeira classe para os protocolos mais recentes. Isso inclui protocolos como HTTP / 2, HTTP / 3 e gRPC.
  14. 2020 © Engineering www.eng.it Engineering Ingegneria Informatica SpA @EngineeringSpa gruppo.engineering

    LifeAtEngineering 14 Autônomo Configurado Dinamicamente Leve
  15. 2020 © Engineering www.eng.it Engineering Ingegneria Informatica SpA @EngineeringSpa gruppo.engineering

    LifeAtEngineering 15 - Muito dinâmico/leve, podendo ter uma instância do Envoy por Serviço (service Mesh) - Sem dependências (BD por ex.)
  16. 2020 © Engineering www.eng.it Engineering Ingegneria Informatica SpA @EngineeringSpa gruppo.engineering

    LifeAtEngineering 16 Base no TCP/UDP - Filtros
  17. 2020 © Engineering www.eng.it Engineering Ingegneria Informatica SpA @EngineeringSpa gruppo.engineering

    LifeAtEngineering SOLUÇÕES 17
  18. 2020 © Engineering www.eng.it Engineering Ingegneria Informatica SpA @EngineeringSpa gruppo.engineering

    LifeAtEngineering 18
  19. 2020 © Engineering www.eng.it Engineering Ingegneria Informatica SpA @EngineeringSpa gruppo.engineering

    LifeAtEngineering 19
  20. 2020 © Engineering www.eng.it Engineering Ingegneria Informatica SpA @EngineeringSpa gruppo.engineering

    LifeAtEngineering 20 Implementando no Envoy https://github.com/andref5/engovy
  21. 2020 © Engineering www.eng.it Engineering Ingegneria Informatica SpA @EngineeringSpa gruppo.engineering

    LifeAtEngineering 21
  22. 2020 © Engineering www.eng.it Engineering Ingegneria Informatica SpA @EngineeringSpa gruppo.engineering

    LifeAtEngineering 22 Kernel Modules - Programas comuns no Linux. Syscall (Nginx epoll) ou Modulo (drivers) - https://stackoverflow.com/questions/49649253/eventloop-has-high-ksoftirqd-load-nginx-does-not-but-does-same-system-calls-wh
  23. 2020 © Engineering www.eng.it Engineering Ingegneria Informatica SpA @EngineeringSpa gruppo.engineering

    LifeAtEngineering 23 - eBPF é um novo tipo de software e a primeira mudança fundamental na forma como o kernel é usado em 50 anos (Brendan Gregg) - https://blog.cloudflare.com/l4drop-xdp-ebpf-based-ddos-mitigations/
  24. 2020 © Engineering www.eng.it Engineering Ingegneria Informatica SpA @EngineeringSpa gruppo.engineering

    LifeAtEngineering 24 Hot Reload Virtual Machine para Linux High Performance
  25. 2020 © Engineering www.eng.it Engineering Ingegneria Informatica SpA @EngineeringSpa gruppo.engineering

    LifeAtEngineering 25
  26. 2020 © Engineering www.eng.it Engineering Ingegneria Informatica SpA @EngineeringSpa gruppo.engineering

    LifeAtEngineering 26 https://www.brendangregg.com/ebpf.html
  27. 2020 © Engineering www.eng.it Engineering Ingegneria Informatica SpA @EngineeringSpa gruppo.engineering

    LifeAtEngineering SOLUÇÕES 27
  28. 2020 © Engineering www.eng.it Engineering Ingegneria Informatica SpA @EngineeringSpa gruppo.engineering

    LifeAtEngineering 28 https://cilium.io/blog/2020/08/19/google-chooses-cilium-for-gke-networking
  29. 2020 © Engineering www.eng.it Engineering Ingegneria Informatica SpA @EngineeringSpa gruppo.engineering

    LifeAtEngineering 29 Katran is a C++ library and BPF program layer 4 load balancing
  30. 2020 © Engineering www.eng.it Engineering Ingegneria Informatica SpA @EngineeringSpa gruppo.engineering

    LifeAtEngineering 30 Implementando no eBPF https://github.com/andref5/bina
  31. 2020 © Engineering www.eng.it Engineering Ingegneria Informatica SpA @EngineeringSpa gruppo.engineering

    LifeAtEngineering REFERÊNCIAS 31 Envoy - https://github.com/envoyproxy/go-control-plane - https://dropbox.tech/infrastructure/how-we-migrated-dropbox-from-nginx-to-envoy - https://eng.uber.com/gatewayuberapi/ - https://eng.uber.com/architecture-api-gateway - https://www.envoyproxy.io/docs/envoy/latest/configuration/configuration - https://thenewstack.io/zerolb-a-new-decentralized-pattern-for-load-balancing - https://github.com/andref5/engovy eBPF - https://github.com/xdp-project/xdp-tutorial - https://developers.redhat.com/blog/2018/12/06/achieving-high-performance-low-latency-net working-with-xdp-part-1 - https://developers.redhat.com/blog/2018/12/17/using-xdp-maps-rhel8 - https://www.brendangregg.com/blog/2019-01-01/learn-ebpf-tracing.html - https://thenewstack.io/ebpf-finds-a-home-with-a-new-foundation/ - https://homepages.dcc.ufmg.br/~mmvieira/cc/papers/Processamento_Rapido_de_Pacotes_co m_eBPF_e_XDP-%20versao%20final.pdf - https://github.com/andref5/bina
  32. 2020 © Engineering www.eng.it Engineering Ingegneria Informatica SpA @EngineeringSpa gruppo.engineering

    LifeAtEngineering Thanks := Obrigado{...} engdb.com.br /jeffotoni in/jeffotoni in/andref5 Obrigado... in/kenissongmelo 32 /andref5 /kenissongmelo