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

Event Driven Autoscaling using KEDA

Sponsored · Ship Features Fearlessly Turn features on and off without deploys. Used by thousands of Ruby developers.
Avatar for Nilesh Gule 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

Avatar for Nilesh Gule

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