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

Event Driven Autoscaling using KEDA

Nilesh Gule
September 02, 2024

Event Driven Autoscaling using KEDA

Slidedeck used during the Coding Night NZ session on 2 Septemeber 2024. The recording of the session is available on YouTube
https://www.youtube.com/live/a8gwqaJR1Ck?si=V9iskiZQCUHOvgzj

Nilesh Gule

September 02, 2024
Tweet

More Decks by Nilesh Gule

Other Decks in Technology

Transcript

  1. $whoami { “name” : “Nilesh Gule”, “website” : “https://www.HandsOnArchitect.com", “github”

    : “https://GitHub.com/NileshGule" “twitter” : “@nileshgule”, “linkedin” : “https://www.linkedin.com/in/nileshgule”, “YouTube” : “https://www.YouTube.com/@nilesh-gule” “likes” : “Technical Evangelism, Cricket”, }
  2. @nileshgule KEDA Kubernets based Event Driven Autoscaling Scaling in Kubernetes

    KEDA Overview TechTalks demo with RabbitMQ Autoscaling with KEDA KEDA Architecture Agenda
  3. Pre-requisites • Self contained application with all its dependencies Docker

    • Orchestrates containers • Self healing • Service discovery • Scaling Kubernetes • Dockerhub / private container registry • Repository for storing container images Container Registry • Managed Kubernetes service on Azure • Native integration with other Azure services like Azure Active Directory (AAD), Azure Container registry (ACR), Azure Container Instances (ACI), Azure Monitor etc. Azure Kubernetes Service (AKS)
  4. Problem statement • Unpredictable workload • Special events (Christmas /

    New Year / Diwali / Deepavali / Thanksgiving etc.) • Scale based on factors outside of Kubernetes cluster • Scale based on combination of factors • Unexpected event (large number of logs compared to normal)
  5. ScaledObject apiVersion: keda.k8s.io/v1alpha1 kind: ScaledObject metadata: name: rabbitmq-consumer namespace: default

    labels: deploymentName: rabbitmq-consumer-deployment spec: scaleTargetRef: deploymentName: rabbitmq-consumer pollingInterval: 5 # Optional. Default: 30 seconds cooldownPeriod: 30 # Optional. Default: 300 seconds minReplicaCount: 1 # Optional. Default: 0 maxReplicaCount: 30 # Optional. Default: 100 triggers: - type: rabbitmq metadata: queueName: techtalks-consumer-techtalks queueLength : ‘5’ authenticationRef: name: trigger-auth-rabbitmq-host
  6. Run Containers at scale ❖KEDA supported scale triggers including Azure

    Event Hub, Apache Kafka, RabbitMQ, MongoDB, MySQL, PostgreSQL etc. ❖Robust autoscaling without managing complex infrastructure ❖Scale to zero and pay only for use by the second https://keda.sh/docs/2.15/scalers/
  7. Summary • KEDA helps to auto scale on metrics external

    to Kubernetes • KEDA does not modify the behavior of the application • Application designed using cloud native approach are more suited for KEDA integrations • KEDA helps to auto scale on composite metric • KEDA supports authentication providers
  8. Containerize Apps Resources https://github.com/NileshGule/pd-tech-fest-2019 https://github.com/NileshGule/cloud-native-ninja https://github.com/NileshGule/techtalks-azure-container-apps-demo Pd tech fest 2019

    : https://github.com/NileshGule/pd-tech-fest-2019 Cloud Native Ninja : https://github.com/NileshGule/cloud-native-ninja Azure Container Apps : https://github.com/NileshGule/techtalks-azure-container-apps-demo Slides https://www.slideshare.net/nileshgule/ Slideshare: https://www.slideshare.net/nileshgule/ https://speakerdeck.com/nileshgule/ Speaker Deck: https://speakerdeck.com/nileshgule/
  9. Nilesh Gule ARCHITECT | MICROSOFT MVP “Code with Passion and

    Strive for Excellence” nileshgule @nileshgule Nilesh Gule NileshGule www.handsonarchitect.com https://www.youtube.com/@nilesh-gule