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

Serverless Event Driven Containers with KEDA

Serverless Event Driven Containers with KEDA

Slides from the OSSDays conference (https://ossdays.konfhub.com/). The session demonstrated the power of Kubernetes based Event Driven Autoscaling (KEDA) to scale RabbitMQ consumer into serverless Azure Container Instances (ACI) .


Nilesh Gule

October 30, 2020

More Decks by Nilesh Gule

Other Decks in Technology


  1. Nilesh Gule @nileshgule | www.HandsOnArchitect.com Serverless Event Driven Containers with

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

    : “https://GitHub.com/NileshGule" “twitter” : “@nileshgule”, “linkedin” : “https://www.linkedin.com/in/nileshgule”, “likes” : “Technical Evangelism, Cricket”, “co-organizer” : “Azure Singapore UG” }
  3. @nileshgule KEDA Kubernets based Event Driven Autoscaling Serverless KEDA autoscaling,

    extending to serverless Azure Container Instences (ACI) Scaling in Kubernetes KEDA Overview KEDA Architecture TechTalks demo app with RabbitMQ Autoscaling with KEDA Serverless container with ACI Agenda
  4. @nileshgule Kubernetes Scaling Options 1 2 3 Horizontal Pod Autoscaler

    Cluster Autoscaler Manual scaling
  5. None
  6. None
  7. None
  8. None
  9. @nileshgule TechTalks Demo – Kubernetes deployment https://github.com/NileshGule/pd-tech-fest-2019  Manifest files

    describe Deployment and Service  Helm charts to deploy third-party apps / services  Octant – visualize k8s cluster  Kubectl to deploy Manifest
  10. None
  11. Scale RabbitMQ Consumer with Virtual Node kedaVNet kedaAKSSubnet kedaVirtualNodeSubnet Producer

    - .Net Core API Consumers - .Net Core exe
  12. @nileshgule RabbitMQ Demo – KEDA Event driven autoscaling  RabbitMQ

    event source  KEDA autoscaler to scale consumer deployment using serverless Azure Container Instances (ACI) 1000 (configurable) messages Batch of 50 (configurable) messages https://github.com/NileshGule/pd-tech-fest-2019
  13. 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
  14. None
  15. Azure Blob Storage Azure Event Hub Azure Log Analytics Azure

    Service Bus Queues and Topics Azure Storage Queues ActiveMQ Artemis Kafka Prometheus RabbitMQ Redis Streams Redis Lists Liiklus NATS Huawei Cloudeye AWS CloudWatch AWS Kinesis Stream AWS Simple Queue Service GCP PubSub Azure functions MySQL PostgreSQL https://keda.sh/docs/2.0/scalers/
  16. Summary • Single purpose lightweight component • Any Kubernetes cluster

    (1.16+) • Extends Kubernetes with event driven capabilities • No overwriting or duplication of existing functionalities • Flexible and safe to run alongside any other Kubernetes framework or application • Support 25+ auto scalers out of the box KEDA
  17. KEDA AKS cluster-autoscalar Virtual Node Horizontal pod autoscale virtual kubelet

    https://azure.microsoft.com/mediahandler/files/resourcefiles/kubernetes-learning- path/Kubernetes%20Learning%20Path%20version%201.0.pdf
  18. https://github.com/NileshGule/pd-tech-fest-2019

  19. Thank you very much Code with Passion and Strive for

    Excellence https://www.slideshare.net/nileshgule/presentations https://speakerdeck.com/nileshgule/
  20. Nilesh Gule ARCHITECT | MICROSOFT MVP “Code with Passion and

    Strive for Excellence” nileshgule @nileshgule Nilesh Gule NileshGule www.handsonarchitect.com
  21. Q&A