AZURE CONTAINER
APPS
Ken Sykora
AGENDA
Use Cases & Capabilities
Which Tool and Why?
A Simple Example
Dapr
Inter-Service Communication
Scaling
2021 Azure Container Apps 2
ABOUT MYSELF
• Software Architect, focus on scalable cloud solutions
• Software Development background (App Dev)
• Dad
• Gamer and Hobbyist
• Wisconsin Sports Fan (don’t @ me)
2021 Azure Container Apps 3
CONTAINER OPTIONS IN AZURE
Azure Container Instance
- Simple solution for deploying containers
with a fixed scaling need
- Does not support auto scaling or
changing scale without recreating the
service (downtime)
- Assumes ingress (must expose a port), so
it is clunky to run headless jobs
Azure App Service
- Easily launch and deploy HTTP-oriented
services in containers
- Built for HTTP based solutions
- Allows Slot deployments for Green/Blue
- Replication control (1 app instance per
node, per-site scaling options)
- Supports auto-scale based on Azure
Monitor metrics across the whole
2021 Azure Container Apps 4
CONTAINER OPTIONS IN AZURE
Azure Kubernetes Service
- Cluster-as-a-service
- Microsoft manages the master nodes,
worker nodes size/scale defined by you
- Tight-integration with Azure services such
as application gateway, monitor, identity,
etc.
- Auto scale options across nodes, access
to K8s based scaling options for apps
Kubernetes on VMs
- Bring-your-own-solution, run on Azure
IaaS
2021 Azure Container Apps 5
PROBLEM STATEMENT
Why Container Apps? Why Now?
• More capabilities than Azure Container Instance
• Less involved than Azure Kubernetes Service (AKS)
• FAR less involved than rolling your own Kubernetes on VMs
2021 Azure Container Apps 6
WHY SHOULD WE CONSIDER
AZURE CONTAINER APPS?
Azure Container Apps provides turn-key microservice solutions, on-par
with a high performing Kubernetes solution, at scale, and without the
need to deal with any Kubernetes cluster management
2021 Azure Container Apps 7
2021 Azure Container Apps 8
Container Instance App Service Kubernetes Service Kubernetes on VMs
Simple
Less Flexible
Fewer Options
Complex
More Flexible
Most Options
2021 Azure Container Apps 9
Container Instance App Service Kubernetes Service Kubernetes on VMs
Container Apps
Simple
Less Flexible
Fewer Options
Complex
More Flexible
Most Options
AZURE CONTAINER APPS
Don’t worry about a
k8s cluster
Like Azure Container Instance, you just deploy the
containers you want. There’s no cluster to worry about.
Blue-Green by default
More options for scaling your instances out than on
Azure App Service with KEDA.
Access to
microservice
management
toolchain
Like AKS, Optional access to microservice management
toolchain Dapr.
gRPC or HTTP for internal service communication is
available.
2021 Azure Container Apps 10
No downtime required for any deployment or scaling
operation
Auto-scaling with
greater depth
2021 Azure Container Apps 11
https://docs.microsoft.com/en-us/azure/container-apps/overview
ENVIRONMENTS
2021 Azure Container Apps 12
https://docs.microsoft.com/en-us/azure/container-apps/environment
CONTAINERS
2021 Azure Container Apps 13
https://docs.microsoft.com/en-us/azure/container-apps/containers
CONTAINERS
2021 Azure Container Apps 14
https://docs.microsoft.com/en-us/azure/container-apps/revisions
LESS TALK
MORE CODE
(SIMPLE CONTAINER DEMO)
2021 Azure Container Apps 15
WHAT IS DAPR?
Service Discovery /
Service Invocation
Services register with Dapr and
become discoverable via
Dapr’s API which is available to
the container.
Services can be directly
invoked by calling the Dapr API
as a proxy to the service
State Storage
Dapr has a full arsenal of state
storage options, including Blob,
Sql Server, Redis, and many
more
Pub/Sub
Program against a pub/sub
model
2021 Azure Container Apps 16
https://docs.dapr.io/reference/components-
reference/supported-pubsub/
https://docs.dapr.io/reference/components-
reference/supported-state-stores/
And many other solutions…
Actors, Observability, Secret Management, Rate Limits, Authorization, others…
DAPR ON AZURE CONTAINER APPS
2021 Azure Container Apps 17
https://docs.microsoft.com/en-us/azure/container-apps/microservices-dapr
LESS TALK
MORE CODE
(DAPR DEMO)
2021 Azure Container Apps 18
WHAT IS KEDA?
https://keda.sh/
LESS TALK
MORE CODE
(SCALING DEMO)
2021 Azure Container Apps 20
PRICING
https://azure.microsoft.com/en-us/pricing/details/container-apps/ as of 2 DEC 2021
THIS IS IN PREVIEW!
KEN’S WISH LIST
I need these
• Azure Monitor / Metrics
• Provisioning Diagnostics
• KEDA / Dapr diagnostics
• A little more portal observability
• Clarity on Idle pricing vs Active pricing
I guess I could live without these, for a
while
• Custom Domains / Hostname Binding
TLS / Cert Management
• Virtual Network Integration
(Private Endpoint)
• Managed Identity
• Bash / Shell Container access
It’d be sweet if I could have these
• Key Vault Integration
• Bicep definitions
• Scaling interval/cooldown access
Here’s a list of features you’ll find in other container products in
Azure, but are not yet available in Azure Container Apps
IN SUMMARY
Looks REALLY promising. Cool stuff
Love the evolution from Container Instance (ACI)
Love the middle ground approach
Not production ready just yet
2021 Azure Container Apps 23
THANK YOU
Ken Sykora
@kensykora on Twitter
https://www.linkedin.com/in/kensykora/
2021 Azure Container Apps 24

Azure Container Apps

  • 1.
  • 2.
    AGENDA Use Cases &Capabilities Which Tool and Why? A Simple Example Dapr Inter-Service Communication Scaling 2021 Azure Container Apps 2
  • 3.
    ABOUT MYSELF • SoftwareArchitect, focus on scalable cloud solutions • Software Development background (App Dev) • Dad • Gamer and Hobbyist • Wisconsin Sports Fan (don’t @ me) 2021 Azure Container Apps 3
  • 4.
    CONTAINER OPTIONS INAZURE Azure Container Instance - Simple solution for deploying containers with a fixed scaling need - Does not support auto scaling or changing scale without recreating the service (downtime) - Assumes ingress (must expose a port), so it is clunky to run headless jobs Azure App Service - Easily launch and deploy HTTP-oriented services in containers - Built for HTTP based solutions - Allows Slot deployments for Green/Blue - Replication control (1 app instance per node, per-site scaling options) - Supports auto-scale based on Azure Monitor metrics across the whole 2021 Azure Container Apps 4
  • 5.
    CONTAINER OPTIONS INAZURE Azure Kubernetes Service - Cluster-as-a-service - Microsoft manages the master nodes, worker nodes size/scale defined by you - Tight-integration with Azure services such as application gateway, monitor, identity, etc. - Auto scale options across nodes, access to K8s based scaling options for apps Kubernetes on VMs - Bring-your-own-solution, run on Azure IaaS 2021 Azure Container Apps 5
  • 6.
    PROBLEM STATEMENT Why ContainerApps? Why Now? • More capabilities than Azure Container Instance • Less involved than Azure Kubernetes Service (AKS) • FAR less involved than rolling your own Kubernetes on VMs 2021 Azure Container Apps 6
  • 7.
    WHY SHOULD WECONSIDER AZURE CONTAINER APPS? Azure Container Apps provides turn-key microservice solutions, on-par with a high performing Kubernetes solution, at scale, and without the need to deal with any Kubernetes cluster management 2021 Azure Container Apps 7
  • 8.
    2021 Azure ContainerApps 8 Container Instance App Service Kubernetes Service Kubernetes on VMs Simple Less Flexible Fewer Options Complex More Flexible Most Options
  • 9.
    2021 Azure ContainerApps 9 Container Instance App Service Kubernetes Service Kubernetes on VMs Container Apps Simple Less Flexible Fewer Options Complex More Flexible Most Options
  • 10.
    AZURE CONTAINER APPS Don’tworry about a k8s cluster Like Azure Container Instance, you just deploy the containers you want. There’s no cluster to worry about. Blue-Green by default More options for scaling your instances out than on Azure App Service with KEDA. Access to microservice management toolchain Like AKS, Optional access to microservice management toolchain Dapr. gRPC or HTTP for internal service communication is available. 2021 Azure Container Apps 10 No downtime required for any deployment or scaling operation Auto-scaling with greater depth
  • 11.
    2021 Azure ContainerApps 11 https://docs.microsoft.com/en-us/azure/container-apps/overview
  • 12.
    ENVIRONMENTS 2021 Azure ContainerApps 12 https://docs.microsoft.com/en-us/azure/container-apps/environment
  • 13.
    CONTAINERS 2021 Azure ContainerApps 13 https://docs.microsoft.com/en-us/azure/container-apps/containers
  • 14.
    CONTAINERS 2021 Azure ContainerApps 14 https://docs.microsoft.com/en-us/azure/container-apps/revisions
  • 15.
    LESS TALK MORE CODE (SIMPLECONTAINER DEMO) 2021 Azure Container Apps 15
  • 16.
    WHAT IS DAPR? ServiceDiscovery / Service Invocation Services register with Dapr and become discoverable via Dapr’s API which is available to the container. Services can be directly invoked by calling the Dapr API as a proxy to the service State Storage Dapr has a full arsenal of state storage options, including Blob, Sql Server, Redis, and many more Pub/Sub Program against a pub/sub model 2021 Azure Container Apps 16 https://docs.dapr.io/reference/components- reference/supported-pubsub/ https://docs.dapr.io/reference/components- reference/supported-state-stores/ And many other solutions… Actors, Observability, Secret Management, Rate Limits, Authorization, others…
  • 17.
    DAPR ON AZURECONTAINER APPS 2021 Azure Container Apps 17 https://docs.microsoft.com/en-us/azure/container-apps/microservices-dapr
  • 18.
    LESS TALK MORE CODE (DAPRDEMO) 2021 Azure Container Apps 18
  • 19.
  • 20.
    LESS TALK MORE CODE (SCALINGDEMO) 2021 Azure Container Apps 20
  • 21.
  • 22.
    THIS IS INPREVIEW! KEN’S WISH LIST I need these • Azure Monitor / Metrics • Provisioning Diagnostics • KEDA / Dapr diagnostics • A little more portal observability • Clarity on Idle pricing vs Active pricing I guess I could live without these, for a while • Custom Domains / Hostname Binding TLS / Cert Management • Virtual Network Integration (Private Endpoint) • Managed Identity • Bash / Shell Container access It’d be sweet if I could have these • Key Vault Integration • Bicep definitions • Scaling interval/cooldown access Here’s a list of features you’ll find in other container products in Azure, but are not yet available in Azure Container Apps
  • 23.
    IN SUMMARY Looks REALLYpromising. Cool stuff Love the evolution from Container Instance (ACI) Love the middle ground approach Not production ready just yet 2021 Azure Container Apps 23
  • 24.
    THANK YOU Ken Sykora @kensykoraon Twitter https://www.linkedin.com/in/kensykora/ 2021 Azure Container Apps 24

Editor's Notes

  • #13 Don’t try to draw too many parallels to App Service Environment
  • #14 Don’t try to draw too many parallels to App Service Environment
  • #15 Don’t try to draw too many parallels to App Service Environment
  • #16 Simple Hello World Example: Deploy w Github Microservice / Dapr example Autoscale Example
  • #18 Don’t try to draw too many parallels to App Service Environment
  • #19 Simple Hello World Example: Deploy w Github Microservice / Dapr example Autoscale Example
  • #21 Simple Hello World Example: Deploy w Github Microservice / Dapr example Autoscale Example