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

Autoscale applications based on external events with KEDA

Nilesh Gule
September 14, 2023

Autoscale applications based on external events with KEDA

Slides used during the k8s UG on 14 September 2023

Nilesh Gule

September 14, 2023

More Decks by Nilesh Gule

Other Decks in Technology


  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”, “co-organizer” : “Azure Singapore UG” }
  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. 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: hello queueLength : ‘5’ authenticationRef: name: trigger-auth-rabbitmq-host
  5. 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.11/scalers/
  6. Summary • Modern applications are loosely coupled and highly portable

    • AKS provides native integrations to Dapr and KEDA • KEDA helps to auto scale on metrics external to Kubernetes • Dapr tries to simplify the Microservices development and deployment • Dapr Components help to extract underlying functionality and provides abstractions • Make app portable to run in serverless as well as managed cloud services
  7. References https://www.youtube.com/@nilesh-gule https://dapr.io/ Dapr Publish and Subscribe Kubernetes Event Driven

    Autoscaling Serverless - Dapr and Azure Container Apps Comparison between ACA and AKS
  8. Containerize Apps Resources Cloud Native Ninja : https://github.com/NileshGule/cloud-native-ninja Azure Container

    Apps : https://github.com/NileshGule/techtalks-azure-container-apps-demo Slides Slideshare: https://www.slideshare.net/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