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

KEDA: Escalando suas aplicações baseado em eventos

KEDA: Escalando suas aplicações baseado em eventos

Como funciona o autoscaling baseado em recebimento de eventos, principais vantagens e comparações com o que estamos acostumados.

Avatar for Daniel Silva

Daniel Silva

July 11, 2024
Tweet

More Decks by Daniel Silva

Other Decks in Technology

Transcript

  1. 1 0 1 1 0 1 1 0 1 1

    0 1 1 0 0 1 1 0 1 1 0 1 1 0 1 1 0 1 1 1 0 1 1 0 1 1 0 1 1 1 1 1 0 1 </ /> KEDA Escalando suas aplicações baseado em eventos
  2. 1 0 1 1 0 1 1 0 1 1

    0 1 1 0 0 1 1 0 1 1 0 1 1 0 1 1 0 1 1 1 0 1 1 0 1 1 0 1 1 1 1 1 0 1 </SOBRE MIM • Tech Lead na Flash • Educador na Rocketseat • Elastic Community Organizer
  3. 1 0 1 1 0 1 1 0 1 1

    0 1 1 0 0 1 1 0 1 1 0 1 1 0 1 1 0 1 1 1 0 1 1 0 1 1 0 1 1 1 1 1 0 1 </AGENDA • O que é escala? • Formas de escalar • EDA • Existe um limite? • HPA • KEDA e Estrutura • Desafios e caso prático
  4. 1 0 1 1 0 1 1 0 1 1

    0 1 1 0 0 1 1 0 1 1 0 1 1 0 1 1 0 1 1 1 0 1 1 0 1 1 0 1 1 1 1 1 0 1 </ESCALA E FORMAS DE ESCALAR • Visa resolver problema de sobrecarga de acesso • Vertical Scaling • Horizontal Scaling • Cluster Scaling • Dimensionamento automático
  5. 1 0 1 1 0 1 1 0 1 1

    0 1 1 0 0 1 1 0 1 1 0 1 1 0 1 1 0 1 1 1 0 1 1 0 1 1 0 1 1 1 1 1 0 1 </EDA • Aplicações orientada a eventos • Fluxo async • Muito comum em contextos de microsserviço • O consumo pode ser feito de diversos providers
  6. 1 0 1 1 0 1 1 0 1 1

    0 1 1 0 0 1 1 0 1 1 0 1 1 0 1 1 0 1 1 1 0 1 1 0 1 1 0 1 1 1 1 1 0 1 </EXISTE UM LIMITE? • Resources e Limits do nosso Deployment • Limite do HPA • Limite do Nó
  7. 1 0 1 1 0 1 1 0 1 1

    0 1 1 0 0 1 1 0 1 1 0 1 1 0 1 1 0 1 1 1 0 1 1 0 1 1 0 1 1 1 1 1 0 1
  8. 1 0 1 1 0 1 1 0 1 1

    0 1 1 0 0 1 1 0 1 1 0 1 1 0 1 1 0 1 1 1 0 1 1 0 1 1 0 1 1 1 1 1 0 1 </HPA • Horizontal Pod Autoscaling • Dimensionamento automático da aplicação • Trabalha em conjunto com o metrics-server - default • É possível escalar via métrica do Container • Comporta períodos de estabilização
  9. 1 0 1 1 0 1 1 0 1 1

    0 1 1 0 0 1 1 0 1 1 0 1 1 0 1 1 0 1 1 1 0 1 1 0 1 1 0 1 1 1 1 1 0 1
  10. 1 0 1 1 0 1 1 0 1 1

    0 1 1 0 0 1 1 0 1 1 0 1 1 0 1 1 0 1 1 1 0 1 1 0 1 1 0 1 1 1 1 1 0 1 </POSSÍVEIS LIMITAÇÕES • Nativamente a escala é feita por CPU e Memória • É possível usar métricas customizadas • O alto consumo de eventos pode não refletir no uso de recursos
  11. 1 0 1 1 0 1 1 0 1 1

    0 1 1 0 0 1 1 0 1 1 0 1 1 0 1 1 0 1 1 1 0 1 1 0 1 1 0 1 1 1 1 1 0 1 </KEDA • Mantido pela CNCF • Escalonador baseado em evento - EDA • É um recurso personalizado - CRD • Integração com uma alta gama de providers • Funciona junto com o HPA • Abstrai complexidade das custom metrics
  12. 1 0 1 1 0 1 1 0 1 1

    0 1 1 0 0 1 1 0 1 1 0 1 1 0 1 1 0 1 1 1 0 1 1 0 1 1 0 1 1 1 1 1 0 1 </ESTRUTURA DO KEDA • Agent e Metrics • Scalers - Objects e Jobs • Trigger Authentication • Instalação super simples - via Helm
  13. 1 0 1 1 0 1 1 0 1 1

    0 1 1 0 0 1 1 0 1 1 0 1 1 0 1 1 0 1 1 1 0 1 1 0 1 1 0 1 1 1 1 1 0 1
  14. 1 0 1 1 0 1 1 0 1 1

    0 1 1 0 0 1 1 0 1 1 0 1 1 0 1 1 0 1 1 1 0 1 1 0 1 1 0 1 1 1 1 1 0 1
  15. 1 0 1 1 0 1 1 0 1 1

    0 1 1 0 0 1 1 0 1 1 0 1 1 0 1 1 0 1 1 1 0 1 1 0 1 1 0 1 1 1 1 1 0 1
  16. 1 0 1 1 0 1 1 0 1 1

    0 1 1 0 0 1 1 0 1 1 0 1 1 0 1 1 0 1 1 1 0 1 1 0 1 1 0 1 1 1 1 1 0 1 </DESAFIOS • O número máximo de réplicas precisa ser de acordo com a sua quantidade de consumers • Ainda é necessário a definição dos resources do deployment • Mínimo de réplicas precisa ser a mesma quantidade lá no deployment • Escala híbrida
  17. 1 0 1 1 0 1 1 0 1 1

    0 1 1 0 0 1 1 0 1 1 0 1 1 0 1 1 0 1 1 1 0 1 1 0 1 1 0 1 1 1 1 1 0 1 </BORA PRA PRÁTICA?
  18. 1 0 1 1 0 1 1 0 1 1

    0 1 1 0 0 1 1 0 1 1 0 1 1 0 1 1 0 1 1 1 0 1 1 0 1 1 0 1 1 1 1 1 0 1 </MUITO OBRIGADO - https://linkedin.com/in/eusouodaniel - https://github.com/eusouodaniel - https://speakerdeck.com/eusouodaniel - https://eusouodaniel.com DÚVIDAS?
  19. 1 0 1 1 0 1 1 0 1 1

    0 1 1 0 0 1 1 0 1 1 0 1 1 0 1 1 0 1 1 1 0 1 1 0 1 1 0 1 1 1 1 1 0 1 </REFERÊNCIAS • https://keda.sh • https://medium.com/cuddle-ai/auto-scaling-microservices-with-kubernetes-event-driven -autoscaler-keda-8db6c301b18 • https://learn.microsoft.com/en-us/azure/aks/keda-about • https://www.opcito.com/blogs/a-guide-to-mastering-autoscaling-in-kubernetes-with-ked a