Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Scaling containers with event driven workloads


Published on

Slidedeck from the presentation done for the Microsoft Cloud South Florida user group on 28th August 2020. The demo showcases the following aspects:
1- how to containerize .Net Core application
2- How to publish images to private container registry (Azure Container registry)
3 - How to deploy applications to Kubernetes cluster using Manifest files
4 - Scale containers using KEDA
5 - Extend the scaling capabilities to serverless world by using Virtual Node and Azure Contaienr Instances (ACI)

YouTube video recording of the session

Published in: Technology
  • Be the first to comment

  • Be the first to like this

Scaling containers with event driven workloads

  1. 1. Nilesh Gule @nileshgule | Scaling .Net Core Containers with Event Driven Workloads
  2. 2. $whoami { “name” : “Nilesh Gule”, “website” : “", “github” : “" “twitter” : “@nileshgule”, “linkedin” : “”, “likes” : “Technical Evangelism, Cricket”, “co-organizer” : “Azure Singapore UG” }
  3. 3. @nileshgule RabbitMQ Demo setup 1000 (configurable) messages Batch of 50 (configurable) messages
  4. 4. @nileshgule RabbitMQ Demo setup 1000 (configurable) messages Batch of 50 (configurable) messages  RabbitMQ Messaging layer  Producer produces configurable number of messages  Consumer consumes configurable number of messages in a batch  Consumer simulates a long running process with artificial delay
  5. 5. Demo build & publish docker images
  6. 6. Demo deploy application containers
  7. 7. AKS Managed Identity (aksmqcluster-agentpool) nileshgule/techtalksmqproducer nileshgule/techtalksmqconsumer ngACRRegistry aksmqCluster /techtalksmqproducer techtalksmqconsumer Acr pull acrResourceGroup demo-kedaSeriesRG docker push using azure user token Acr login using AAD No need to use Admin user
  8. 8. KEDA Architecture
  9. 9. Azure Event Hub Azure Service Bus Queues and Topics Azure Storage Queues Kafka Prometheus RabbitMQ Redis Lists Liiklus NATS AWS CloudWatch AWS Simple Queue Service GCP PubSub Integrates with Azure functions
  10. 10. Demo deploy KEDA on AKS cluster
  11. 11. apiVersion: 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
  12. 12. Pros Cons
  13. 13. Scale RabbitMQ Consumer with Virtual Node kedaVNet kedaAKSSubnet kedaVirtualNodeSubnet Producer - .Net Core API Consumers - .Net Core exe
  14. 14. Demo extend KEDA with Virtual Node
  15. 15. Summary • Self contained application with all its dependencies Docker • Orchestrates containers • Self healing • Service discovery • Scaling Kubernetes • Extends Kubernetes with event driven capabilities KEDA
  16. 16. Play with Docker Play with Kubernetes Kubernetes Learning Path : MSLearn Linux Academy learning paths
  17. 17. AKS cluster-autoscalar Virtual Node Horizontal pod autoscale virtual kubelet KEDA path/Kubernetes%20Learning%20Path%20version%201.0.pdf
  18. 18. Azure Kubernetes Service Workshop References
  19. 19.
  20. 20. Thank you very much Code with Passion and Strive for Excellence
  21. 21. Nilesh Gule ARCHITECT | MICROSOFT MVP “Code with Passion and Strive for Excellence” nileshgule @nileshgule Nilesh Gule NileshGule
  22. 22. Q&A