SlideShare uma empresa Scribd logo
1 de 34
Baixar para ler offline
Nilesh Gule
@nileshgule | www.HandsOnArchitect.com
Scaling .Net Core
Containers with
Azure Kubernetes Service and
Serverless ACI
$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”
}
@nileshgule
Containerize .Net Core
App
Build & publish Docker images to private Azure
Container Registry (ACR)
Autoscale using k8s
K8s deployment, KEDA autoscaling, extending
to serverless Azure Container Instences (ACI)
Application Overview Docker Images
Container Registries Kubernetes deployment
Autoscaling with KEDA Serverless container with ACI
Agenda
@nileshgule
RabbitMQ Demo – Producer & Consumer
1000
(configurable)
messages
Batch of 50
(configurable)
messages
https://github.com/NileshGule/pd-tech-fest-2019
@nileshgule
Docker – main features
Security
Process isolation, resource
limits
Portability
Runs across multiple env
with Docker runtime
Performance
Smaller footprint than VM, lightning
fast
Multi-cloud
Deploy Docker images to multi-cloud
environments
Isolation
Isolates multiple versions of dependencies
Agility
Integrates into CI CD pipelines
Demo build & publish docker
images
@nileshgule
RabbitMQ Demo – Docker Images
https://github.com/NileshGule/pd-tech-fest-2019
 Docker multi-stage builds
 Docker-compose, build & publish multiple
images
 Azure Container Registry (ACR) private registry
@nileshgule
RabbitMQ Demo –Docker Container Registry
@nileshgule
Kubernetes – main features
Self healing
Restart / Replace / kill
containers based on heath
checks
Service
discovery & LB
Expose container using DNS
name or IP
Secrets & Config Mgt
Manage sensitive info (pwd / Oauth
tokens / SSH keys etc)
Auto bin packing
Fits containers to nodes based on
resource limits
Storage Orchestration
Mount storage from local, public cloud oro
ther sources
Auto rollout & rollback
Desired state configuration to manage rollouts
& upgrades
@nileshgule
Demo deploy application
containers
@nileshgule
RabbitMQ 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
AKS Managed Identity
(aksmqcluster-agentpool)
nileshgule/techtalksmqproducer
nileshgule/techtalksmqconsumer
ngACRRegistry aksmqCluster
ngacrregistry.azurecr.io/nileshgule
/techtalksmqproducer
ngacrregistry.azurecr.io/nileshgule/
techtalksmqconsumer
Acr pull
acrResourceGroup demo-kedaSeriesRG
docker push using
azure user token
Acr login using AAD
No need to use
Admin user
@nileshgule
Kubernetes Scaling Options
1
2
3
Horizontal Pod
Autoscaler
Cluster Autoscaler
Manual scaling
KEDA Architecture
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
@nileshgule
RabbitMQ Demo – KEDA Event driven autoscaling
 RabbitMQ event source
 KEDA autoscaler to scale consumer deployment1000
(configurable)
messages
Batch of 50
(configurable)
messages
https://github.com/NileshGule/pd-tech-fest-2019
Demo deploy KEDA on AKS
cluster
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
Pros Cons
Scale RabbitMQ Consumer with Virtual Node
kedaVNet
kedaAKSSubnet kedaVirtualNodeSubnet
Producer -
.Net Core
API
Consumers
- .Net Core
exe
Demo extend KEDA with Virtual
Node
Summary
• Self contained application with all its
dependencies
Docker
• Orchestrates containers
• Self healing
• Service discovery
• Scaling
Kubernetes
• Extends Kubernetes with event driven capabilities
KEDA
Play with Docker
Play with Kubernetes
Kubernetes Learning Path : MSLearn
Linux Academy learning paths
AKS cluster-autoscalar
Virtual Node
Horizontal pod autoscale
virtual kubelet
KEDA
https://azure.microsoft.com/mediahandler/files/resourcefiles/kubernetes-learning-
path/Kubernetes%20Learning%20Path%20version%201.0.pdf
Azure Kubernetes
Service Workshop
References
https://github.com/NileshGule/pd-tech-fest-2019
Thank you very much
Code with Passion and Strive for Excellence
https://www.slideshare.net/nileshgule/presentations
https://speakerdeck.com/nileshgule/
Nilesh Gule
ARCHITECT | MICROSOFT MVP
“Code with Passion and
Strive for Excellence”
nileshgule @nileshgule Nilesh Gule
NileshGule
www.handsonarchitect.com
Q&A

Mais conteúdo relacionado

Mais de Nilesh Gule

Cloud Native Ninja - PT8 - Containerize React app.pdf
Cloud Native Ninja - PT8 - Containerize React app.pdfCloud Native Ninja - PT8 - Containerize React app.pdf
Cloud Native Ninja - PT8 - Containerize React app.pdfNilesh Gule
 
Modular Architecturs for resilience and Adaptability.pdf
Modular Architecturs for resilience and Adaptability.pdfModular Architecturs for resilience and Adaptability.pdf
Modular Architecturs for resilience and Adaptability.pdfNilesh Gule
 
Modular Architecturs for resilience and Adaptability.pdf
Modular Architecturs for resilience and Adaptability.pdfModular Architecturs for resilience and Adaptability.pdf
Modular Architecturs for resilience and Adaptability.pdfNilesh Gule
 
Cloud Native Ninja - PT7 - Containerize Go apps.pdf
Cloud Native Ninja - PT7 - Containerize Go apps.pdfCloud Native Ninja - PT7 - Containerize Go apps.pdf
Cloud Native Ninja - PT7 - Containerize Go apps.pdfNilesh Gule
 
Cloud Native Ninja - PT6 - Containerize Spring Boot apps.pdf
Cloud Native Ninja - PT6 - Containerize Spring Boot apps.pdfCloud Native Ninja - PT6 - Containerize Spring Boot apps.pdf
Cloud Native Ninja - PT6 - Containerize Spring Boot apps.pdfNilesh Gule
 
Cloud Native Ninja - PT5 - Publish container images.pdf
Cloud Native Ninja - PT5 - Publish container images.pdfCloud Native Ninja - PT5 - Publish container images.pdf
Cloud Native Ninja - PT5 - Publish container images.pdfNilesh Gule
 
Portable Multi-cloud Microservices with Dapr .pdf
Portable Multi-cloud Microservices with Dapr .pdfPortable Multi-cloud Microservices with Dapr .pdf
Portable Multi-cloud Microservices with Dapr .pdfNilesh Gule
 
Portable Multi-cloud Microservices with Dapr .pdf
Portable Multi-cloud Microservices with Dapr .pdfPortable Multi-cloud Microservices with Dapr .pdf
Portable Multi-cloud Microservices with Dapr .pdfNilesh Gule
 
Manage Multi Container Apps with Docker Compose.pdf
Manage Multi Container Apps with Docker Compose.pdfManage Multi Container Apps with Docker Compose.pdf
Manage Multi Container Apps with Docker Compose.pdfNilesh Gule
 
Portable Multi-cloud Microservices with Dapr .pptx
Portable Multi-cloud Microservices with Dapr .pptxPortable Multi-cloud Microservices with Dapr .pptx
Portable Multi-cloud Microservices with Dapr .pptxNilesh Gule
 
Cloud Native Ninja - PT3 - Containerize DOTNET apps.pdf
Cloud Native Ninja - PT3 - Containerize DOTNET apps.pdfCloud Native Ninja - PT3 - Containerize DOTNET apps.pdf
Cloud Native Ninja - PT3 - Containerize DOTNET apps.pdfNilesh Gule
 
Cloud Native Ninja - Distributed Microservices with Dapr - part 2.pdf
Cloud Native Ninja - Distributed Microservices with Dapr - part 2.pdfCloud Native Ninja - Distributed Microservices with Dapr - part 2.pdf
Cloud Native Ninja - Distributed Microservices with Dapr - part 2.pdfNilesh Gule
 
Distributed Event Driven Systems with KEDA.pdf
Distributed Event Driven Systems with KEDA.pdfDistributed Event Driven Systems with KEDA.pdf
Distributed Event Driven Systems with KEDA.pdfNilesh Gule
 
Cloud Native Ninja - Getting Started with Containers - Part 1.pdf
Cloud Native Ninja - Getting Started with Containers - Part 1.pdfCloud Native Ninja - Getting Started with Containers - Part 1.pdf
Cloud Native Ninja - Getting Started with Containers - Part 1.pdfNilesh Gule
 
15-factor-apps.pdf
15-factor-apps.pdf15-factor-apps.pdf
15-factor-apps.pdfNilesh Gule
 
Cloud Native Ninja - kickoff.pdf
Cloud Native Ninja - kickoff.pdfCloud Native Ninja - kickoff.pdf
Cloud Native Ninja - kickoff.pdfNilesh Gule
 
FestiveTechCalendar2022 - Getting Started with Azure Container Apps.pdf
FestiveTechCalendar2022 - Getting Started with Azure Container Apps.pdfFestiveTechCalendar2022 - Getting Started with Azure Container Apps.pdf
FestiveTechCalendar2022 - Getting Started with Azure Container Apps.pdfNilesh Gule
 
Azure-Container-Apps.pdf
Azure-Container-Apps.pdfAzure-Container-Apps.pdf
Azure-Container-Apps.pdfNilesh Gule
 
Modern Data Warehouse using Azure.pdf
Modern Data Warehouse using Azure.pdfModern Data Warehouse using Azure.pdf
Modern Data Warehouse using Azure.pdfNilesh Gule
 
Getting Started With Azure Container Apps.pdf
Getting Started With Azure Container Apps.pdfGetting Started With Azure Container Apps.pdf
Getting Started With Azure Container Apps.pdfNilesh Gule
 

Mais de Nilesh Gule (20)

Cloud Native Ninja - PT8 - Containerize React app.pdf
Cloud Native Ninja - PT8 - Containerize React app.pdfCloud Native Ninja - PT8 - Containerize React app.pdf
Cloud Native Ninja - PT8 - Containerize React app.pdf
 
Modular Architecturs for resilience and Adaptability.pdf
Modular Architecturs for resilience and Adaptability.pdfModular Architecturs for resilience and Adaptability.pdf
Modular Architecturs for resilience and Adaptability.pdf
 
Modular Architecturs for resilience and Adaptability.pdf
Modular Architecturs for resilience and Adaptability.pdfModular Architecturs for resilience and Adaptability.pdf
Modular Architecturs for resilience and Adaptability.pdf
 
Cloud Native Ninja - PT7 - Containerize Go apps.pdf
Cloud Native Ninja - PT7 - Containerize Go apps.pdfCloud Native Ninja - PT7 - Containerize Go apps.pdf
Cloud Native Ninja - PT7 - Containerize Go apps.pdf
 
Cloud Native Ninja - PT6 - Containerize Spring Boot apps.pdf
Cloud Native Ninja - PT6 - Containerize Spring Boot apps.pdfCloud Native Ninja - PT6 - Containerize Spring Boot apps.pdf
Cloud Native Ninja - PT6 - Containerize Spring Boot apps.pdf
 
Cloud Native Ninja - PT5 - Publish container images.pdf
Cloud Native Ninja - PT5 - Publish container images.pdfCloud Native Ninja - PT5 - Publish container images.pdf
Cloud Native Ninja - PT5 - Publish container images.pdf
 
Portable Multi-cloud Microservices with Dapr .pdf
Portable Multi-cloud Microservices with Dapr .pdfPortable Multi-cloud Microservices with Dapr .pdf
Portable Multi-cloud Microservices with Dapr .pdf
 
Portable Multi-cloud Microservices with Dapr .pdf
Portable Multi-cloud Microservices with Dapr .pdfPortable Multi-cloud Microservices with Dapr .pdf
Portable Multi-cloud Microservices with Dapr .pdf
 
Manage Multi Container Apps with Docker Compose.pdf
Manage Multi Container Apps with Docker Compose.pdfManage Multi Container Apps with Docker Compose.pdf
Manage Multi Container Apps with Docker Compose.pdf
 
Portable Multi-cloud Microservices with Dapr .pptx
Portable Multi-cloud Microservices with Dapr .pptxPortable Multi-cloud Microservices with Dapr .pptx
Portable Multi-cloud Microservices with Dapr .pptx
 
Cloud Native Ninja - PT3 - Containerize DOTNET apps.pdf
Cloud Native Ninja - PT3 - Containerize DOTNET apps.pdfCloud Native Ninja - PT3 - Containerize DOTNET apps.pdf
Cloud Native Ninja - PT3 - Containerize DOTNET apps.pdf
 
Cloud Native Ninja - Distributed Microservices with Dapr - part 2.pdf
Cloud Native Ninja - Distributed Microservices with Dapr - part 2.pdfCloud Native Ninja - Distributed Microservices with Dapr - part 2.pdf
Cloud Native Ninja - Distributed Microservices with Dapr - part 2.pdf
 
Distributed Event Driven Systems with KEDA.pdf
Distributed Event Driven Systems with KEDA.pdfDistributed Event Driven Systems with KEDA.pdf
Distributed Event Driven Systems with KEDA.pdf
 
Cloud Native Ninja - Getting Started with Containers - Part 1.pdf
Cloud Native Ninja - Getting Started with Containers - Part 1.pdfCloud Native Ninja - Getting Started with Containers - Part 1.pdf
Cloud Native Ninja - Getting Started with Containers - Part 1.pdf
 
15-factor-apps.pdf
15-factor-apps.pdf15-factor-apps.pdf
15-factor-apps.pdf
 
Cloud Native Ninja - kickoff.pdf
Cloud Native Ninja - kickoff.pdfCloud Native Ninja - kickoff.pdf
Cloud Native Ninja - kickoff.pdf
 
FestiveTechCalendar2022 - Getting Started with Azure Container Apps.pdf
FestiveTechCalendar2022 - Getting Started with Azure Container Apps.pdfFestiveTechCalendar2022 - Getting Started with Azure Container Apps.pdf
FestiveTechCalendar2022 - Getting Started with Azure Container Apps.pdf
 
Azure-Container-Apps.pdf
Azure-Container-Apps.pdfAzure-Container-Apps.pdf
Azure-Container-Apps.pdf
 
Modern Data Warehouse using Azure.pdf
Modern Data Warehouse using Azure.pdfModern Data Warehouse using Azure.pdf
Modern Data Warehouse using Azure.pdf
 
Getting Started With Azure Container Apps.pdf
Getting Started With Azure Container Apps.pdfGetting Started With Azure Container Apps.pdf
Getting Started With Azure Container Apps.pdf
 

Último

The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessPixlogix Infotech
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?Antenna Manufacturer Coco
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)wesley chun
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?Igalia
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsJoaquim Jorge
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CVKhem
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 

Último (20)

The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 

Scaling containers with AKS and ACI

  • 1. Nilesh Gule @nileshgule | www.HandsOnArchitect.com Scaling .Net Core Containers with Azure Kubernetes Service and Serverless ACI
  • 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.
  • 4. @nileshgule Containerize .Net Core App Build & publish Docker images to private Azure Container Registry (ACR) Autoscale using k8s K8s deployment, KEDA autoscaling, extending to serverless Azure Container Instences (ACI) Application Overview Docker Images Container Registries Kubernetes deployment Autoscaling with KEDA Serverless container with ACI Agenda
  • 5.
  • 6. @nileshgule RabbitMQ Demo – Producer & Consumer 1000 (configurable) messages Batch of 50 (configurable) messages https://github.com/NileshGule/pd-tech-fest-2019
  • 7. @nileshgule Docker – main features Security Process isolation, resource limits Portability Runs across multiple env with Docker runtime Performance Smaller footprint than VM, lightning fast Multi-cloud Deploy Docker images to multi-cloud environments Isolation Isolates multiple versions of dependencies Agility Integrates into CI CD pipelines
  • 8. Demo build & publish docker images
  • 9. @nileshgule RabbitMQ Demo – Docker Images https://github.com/NileshGule/pd-tech-fest-2019  Docker multi-stage builds  Docker-compose, build & publish multiple images  Azure Container Registry (ACR) private registry
  • 11. @nileshgule Kubernetes – main features Self healing Restart / Replace / kill containers based on heath checks Service discovery & LB Expose container using DNS name or IP Secrets & Config Mgt Manage sensitive info (pwd / Oauth tokens / SSH keys etc) Auto bin packing Fits containers to nodes based on resource limits Storage Orchestration Mount storage from local, public cloud oro ther sources Auto rollout & rollback Desired state configuration to manage rollouts & upgrades
  • 14. @nileshgule RabbitMQ 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
  • 15. AKS Managed Identity (aksmqcluster-agentpool) nileshgule/techtalksmqproducer nileshgule/techtalksmqconsumer ngACRRegistry aksmqCluster ngacrregistry.azurecr.io/nileshgule /techtalksmqproducer ngacrregistry.azurecr.io/nileshgule/ techtalksmqconsumer Acr pull acrResourceGroup demo-kedaSeriesRG docker push using azure user token Acr login using AAD No need to use Admin user
  • 16. @nileshgule Kubernetes Scaling Options 1 2 3 Horizontal Pod Autoscaler Cluster Autoscaler Manual scaling
  • 18. 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
  • 19. @nileshgule RabbitMQ Demo – KEDA Event driven autoscaling  RabbitMQ event source  KEDA autoscaler to scale consumer deployment1000 (configurable) messages Batch of 50 (configurable) messages https://github.com/NileshGule/pd-tech-fest-2019
  • 20. Demo deploy KEDA on AKS cluster
  • 21. 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
  • 22.
  • 24. Scale RabbitMQ Consumer with Virtual Node kedaVNet kedaAKSSubnet kedaVirtualNodeSubnet Producer - .Net Core API Consumers - .Net Core exe
  • 25. Demo extend KEDA with Virtual Node
  • 26. Summary • Self contained application with all its dependencies Docker • Orchestrates containers • Self healing • Service discovery • Scaling Kubernetes • Extends Kubernetes with event driven capabilities KEDA
  • 27. Play with Docker Play with Kubernetes Kubernetes Learning Path : MSLearn Linux Academy learning paths
  • 28. AKS cluster-autoscalar Virtual Node Horizontal pod autoscale virtual kubelet KEDA https://azure.microsoft.com/mediahandler/files/resourcefiles/kubernetes-learning- path/Kubernetes%20Learning%20Path%20version%201.0.pdf
  • 29.
  • 32. Thank you very much Code with Passion and Strive for Excellence https://www.slideshare.net/nileshgule/presentations https://speakerdeck.com/nileshgule/
  • 33. Nilesh Gule ARCHITECT | MICROSOFT MVP “Code with Passion and Strive for Excellence” nileshgule @nileshgule Nilesh Gule NileshGule www.handsonarchitect.com
  • 34. Q&A