Evil Genius, Cloud Wizard @ Microsoft, International Speaker. Mentor, Book Author... always improving!
Dec. 14, 2020•0 likes•294 views
1 of 32
Kubernetes vs App Service
Dec. 14, 2020•0 likes•294 views
Download to read offline
Report
Technology
Slides (in English, only the first one in Italian) from my session at .NET Conf 2020 (https://dotnetconf.it/) about Kubernetes (AKS) versus Azure App Service for .NET Developers
1. Kubernetes vs App Service:
dove è meglio mettere le
applicazioni .NET su
Azure?
Lorenzo Barbieri
Microsoft Cloud Solution Architect
://publicspeaking.dev
6. Resource Group
App Service Plan A
Website A Website C
App Service Plan B
Website B
Datacenter Region
Premium Tier
Free Tier
Azure Subscription
10. App Service
Migration Assistant
Move your ASP.NET App or Site to Azure
app service with the help of the Azure App
Service Migration Assistant.
https://appmigration.microsoft.com/
Assess
Migrate
Optimize
12. What’s behind Kubernetes’ growth?
Kubernetes: the leading orchestrator shaping the future app development and management
42% 45% 50%
Source: Cloud Native Computing Foundation
13. How Kubernetes works
1. Kubernetes users communicate
with API server and apply
desired state
2. Master nodes actively enforce
desired state on worker nodes
3. Worker nodes support
communication between
containers
4. Worker nodes support
communication from the
Internet
Kubernetes
control
API server
replication, namespace,
serviceaccounts, etc.
-controller-
manager -scheduler
etcd
Master node
Worker node
kubelet kube-proxy
Docker
Pod Pod
Containers Containers
Worker node
kubelet kube-proxy
Docker
Pod Pod
Containers Containers
Internet
Internet
14. Kubernetes on its own is not enough
Save time from infrastructure management and roll out updates faster without compromising security
Unlock the agility for containerized
applications using:
• Infrastructure automation that simplifies
provisioning, patching, and upgrading
• Tools for containerized app development
and CI/CD workflows
• Services that support security, governance,
and identity and access management
IDE container
support
Registry
supporting
Helm
CI/CD
Monitoring
Microservice
debugging
NetworkingVirtual machines
Security Governance Identity
Source code
repository<>
Kubernetes
Storage Data
Infrastructure automation
16. Manage Kubernetes with ease
• Automated provisioning,
upgrades, patches
• High reliability, availability
• Easy, secure cluster scaling
• Self-healing
• API server monitoring
• At no charge (you don’t pay the
managed control plane)
Infrastructure automation
API server
Controller
ManagerScheduler
etcd
Store
Cloud
Controller
Self-managed master node(s)
Customer VMs
App/
workload
definitionUser
Docker
Pods
Docker
Pods
Docker
Pods
Docker
Pods
Docker
Pods
Schedule pods over
private tunnel
Kubernetes
API endpoint
Azure managed control plane
17. From infrastructure to innovation
Managed Kubernetes
empowers you to achieve more
Focus on your containers and
code, not the plumbing of them
Responsibilities DIY with Kubernetes Managed Kubernetes on Azure
Containerization
Application iteration,
debugging
CI/CD
Cluster hosting
Cluster upgrade
Patching
Scaling
Monitoring and logging
Customer Microsoft
18. Scaling Kubernetes
Highly available, reliable service with serverless scaling
Azure Monitor
AKS production cluster
Microservices
Availability Reliability Auto scaling
Virtual node
Azure Container
Instances (ACI)
Pods
19. Accelerate containerized development
Kubernetes and DevOps
better together
Develop
• Native containers and Kubernetes support in IDE
• Remote debugging and iteration for multi-
containers
• Effective code merge
• Automatic containerization
Deliver
• CI/CD pipeline with automated tasks in a few
clicks
• Pre-configured canary deployment strategy
• In depth build and delivery process review and
integration testing
• Private registry with Helm support
Operate
• Out-of-box control plane telemetry, log
aggregation, and container health
• Declarative resource management
• Auto scaling
Inner loop
Test
Debug
Visual Studio/ VS
Code/ Any tool
AKS dev
cluster
Azure Pipelines
Source
code control
Azure
Container
Registry
Helm chart
Container
image
AKS
production
cluster
Azure
Monitor
Scale
Terraform
Develop Deliver Operate
20. Azure makes Kubernetes easy
Deploy and manage Kubernetes with ease
Task The Old Way With Azure
Create a cluster Provision network and VMs
Install dozens of system components including etcd
Create and install certificates
Register agent nodes with control plane
az aks create
Upgrade a cluster Upgrade your master nodes
Cordon/drain and upgrade worker nodes individually
az aks upgrade
Scale a cluster Provision new VMs
Install system components
Register nodes with API server
az aks scale
21. Azure makes Kubernetes easy
Roll out new features seamlessly (CI/CD)
Task The Old Way With Azure
Set up a CI/CD pipeline and
deploy to Kubernetes
Create Git repo
Create a build pipeline
Create a container registry
Create a Kubernetes cluster
Configure build pipeline to push to container registry
Configure build pipeline to deploy to Kubernetes
Define and set up deployment strategy
Create a project on Azure DevOps with Kubernetes/AKS as a
target
Make container images
available for deployment
worldwide
Create a container registry in every region
Configure build pipeline with multiple endpoints
Loop through all regions and push following build
Create an Azure Container Registry with geo-replication
Push your image to a single endpoint
Track health with
consolidated cluster and
application logs
Choose a logging solution
Deploy log stack in your cluster or provision a service
Configure and deploy a logging agent onto all nodes
Checkbox “container monitoring” in the Azure portal
22. Kubernetes on Azure | Enterprise-grade by design
Development tools Platform
Azure
Kubernetes
Service
Azure
Red Hat
OpenShift
Azure
Container
Instances
Azure Arc
Management across environments
Community
Active
Directory
Azure
Policy
Security
Center
Key
Vault
Azure
AdvisorGitHub
Visual Studio/ VS
Code/ Any IDE
Azure Container
Registry
Azure
Monitor
24. Top scenarios for Containers on Azure
Cost saving
without refactoring
your app
Lift and shift
to containers
Agility
Faster application
development
Microservices
Performance
Low latency
processing
Machine
learning
Portability
Build once,
run anywhere
IoT
Automation
Deliver code faster
and securely at scale
Secure DevOps
26. Azure Arc
Bring Azure services and management to any infrastructure
Run Azure
data services
anywhere
Extend Azure
management across
your environments
Adopt cloud
practices
on-premises
Implement
Azure security
anywhere
Azure Arc is a set of technologies that extends Azure management and
enables Azure services to run across on-premises, multi-cloud, and edge
27. Azure Arc-enabled
Kubernetes clusters
• Central inventory and monitoring of the
sprawling assets running anywhere from
on-premises to edge
• Consistently apply policies, role-based-
access-controls (RBAC) for at-scale
governance
• Deploy Kubernetes resources to all
clusters using a GitOps-based workflow
Identity
RBAC
Monitoring
Policy
Azure Arc
Kubernetes
Azure Stack On-premises Multi-cloud Edge
30. IaaS
Infrastructure Platform
CaaS
Container Platform
PaaS
Application Platform
FaaS
Serverless Platform
What you get
Curated VM Hosting Curated Orchestration Curated Execution Environment Scale to ‘zero’
Technology decisions
IT/Infra focused Value Prop
More Control of execution environment
Less Agile development & deployment
Dev/App Admin focused Value Prop
Less Control of execution environment
More Agile development & deployment