Slide 1

Slide 1 text

Serverless Containers mit Azure Container Apps @ThorstenHans Cloud-Native Consultant

Slide 2

Slide 2 text

Special Day Cloud-Native Business Applications Thema Sprecher Datum, Uhrzeit Cloud-Native-all-the-things: Definition, Praktiken & Patterns Thorsten Hans, Christian Weyer DI, 21. Februar 2023, 10.45 bis 11.45 Containerbasierte Entwicklung für .NET-Entwickler Tobias Fenster DI, 21. Februar 2023, 12.15 bis 13.15 Was guckst du? Observability von Cloud-Native-Anwendungen – mit OpenTelemetry Thorsten Hans DI, 21. Februar 2023, 15.30 bis 16.30 Cloud-Native Microservices: On-Premises oder in der Cloud – mit Dapr Christian Weyer DI, 21. Februar 2023, 17.00 bis 18.00 Serverless Containers mit Azure Container Apps Thorsten Hans DI, 21. Februar 2023, 19.00 bis 20.00

Slide 3

Slide 3 text

Cloud-Native Consultant @ Thinktecture #Azure #Kubernetes #Cloud-Native #Docker #Go #Rust #Wasm Thorsten Hans [email protected] thinktecture.com thorsten-hans.com @ThorstenHans

Slide 4

Slide 4 text

• Introduction • Azure Container Apps Capabilities • Hands-On Azure Container Apps • Inner-Loop performance with Azure Container Apps • Conclusion Agenda

Slide 5

Slide 5 text

• Introduction • Azure Container Apps Capabilities • Hands-On Azure Container Apps • Inner-Loop performance with Azure Container Apps • Conclusion Agenda

Slide 6

Slide 6 text

What is Azure Container Apps? • Serverless platform to run containerized and cloud-native applications • Built on top of battle-proven open-source projects • Kubernetes • Envoy • Dapr • KEDA • Hides most of the complexicity from us as customers Introduction

Slide 7

Slide 7 text

Why do we need yet another service for containers? • There is no serverless pricing-model for Azure Kubernetes Service (AKS) • AKS (and vanilla Kubernetes) is complex • It’s hard to find, hire, and keep people that really know Kubernetes • Azure Container Instances and Web App for Containers have some “glitches” and “gotchas” Introduction

Slide 8

Slide 8 text

The new Azure landscape for containers* Introduction Azure WebApps for Containers Azure Container Instances Azure Container Apps Azure Kubernetes Service * Azure has more services that can run containers, however those are typically a bit more specialized

Slide 9

Slide 9 text

Azure Container Apps – Building Blocks Introduction https://learn.microsoft.com/en-us/azure/container-apps/environment

Slide 10

Slide 10 text

Azure Container Apps – Building Blocks Introduction https://learn.microsoft.com/en-us/azure/container-apps/revisions

Slide 11

Slide 11 text

Azure Container Apps – Building Blocks Introduction https://learn.microsoft.com/en-us/azure/container-apps/containers

Slide 12

Slide 12 text

• Introduction • Azure Container Apps Capabilities • Hands-On Azure Container Apps • Inner-Loop performance with Azure Container Apps • Conclusion Agenda

Slide 13

Slide 13 text

• Introduction • Azure Container Apps Capabilities • Hands-On Azure Container Apps • Inner-Loop performance with Azure Container Apps • Conclusion Agenda

Slide 14

Slide 14 text

Supported types of apps Azure Container Apps Capabilities https://learn.microsoft.com/en-us/azure/container-apps/overview

Slide 15

Slide 15 text

Ingress (Envoy) • Envoy https://www.envoyproxy.io/ acts as Ingress controller for your workloads • Apps could be exposed to the internet • We can use traffic split (see SMI Spec) https://github.com/servicemeshinterface/smi- spec/blob/main/apis/traffic-split/v1alpha4/traffic-split.md • Apps hosted in the same environment, can interact with each other • In this case, think of a regular Kubernetes service FQDN myservice.mynamespace.svc.cluster.local Azure Container Apps Capabilities

Slide 16

Slide 16 text

Microservice (with Dapr) • Dapr https://dapr.io is part of Azure Container Apps • Dapr simplifies building distributed application architectures • Dapr components are injected automatically • leveraging Kubernetes sidecar-pattern • Dapr is 100% optional! Azure Container Apps Capabilitites

Slide 17

Slide 17 text

Autoscaling with KEDA (Kubernetes Event Driven Autoscaling) • KEDA https://keda.sh allows you to scale workloads using scalers • Scalers define scaling-behavior due to external or internal signals • KEDA has 50+ built-in scalers like for example • Azure Service Bus Queue, Redis, Apache Kafka, … • Scaling configuration is part of the overall deployment manifest Azure Container Apps Capabilitites

Slide 18

Slide 18 text

Hello Azure Container Apps Demo

Slide 19

Slide 19 text

• Introduction • Azure Container Apps Capabilities • Hands-On Azure Container Apps • Inner-Loop performance with Azure Container Apps • Conclusion Agenda

Slide 20

Slide 20 text

• Introduction • Azure Container Apps Capabilities • Hands-On Azure Container Apps • Inner-Loop performance with Azure Container Apps • Conclusion Agenda

Slide 21

Slide 21 text

Consuming Docker Images • Containers can be consumed from any kind of Container registry • Public and Private Container registries are supported • Authentication is supported via • Username and Password (or Tokens) • System-Assigned or User-Assigned Managed Service Identity (MSI) Hands-On Azure Container Apps

Slide 22

Slide 22 text

How to deploy Azure Container Apps • Azure Container Apps are regular Azure Resource Manager (ARM) entities • Azure Container Apps can be provisioned using • Project Bicep • Pulumi • Terraform using the AzAPI provider • finally, also available in the AzureRM provider (since January 2023) • Azure CLI integration is available via extension Hands-On Azure Container Apps

Slide 23

Slide 23 text

Provision and Deploy Azure Container Apps Demo

Slide 24

Slide 24 text

Observability • Seamless Observability integration • Container logs will be streamed to Azure Log Analytics Workspace (or Azure Monitor) • Log Analytics workspace should be linked to the Azure Container App Environment • Logging agents enrich logs written to STDOUT and STDERR with data like • Container App Name • Revision & Environment Name • Container Image Repository & Tag Hands-On Azure Container Apps

Slide 25

Slide 25 text

How to investigate and troubleshoot • Query Log Analytics Workspace for individual logs • Directly access log stream in your terminal or Azure Portal • Shell access to containers using your terminal or Azure Portal Troubleshooting

Slide 26

Slide 26 text

Microservices in Azure Container Apps Demo

Slide 27

Slide 27 text

• Introduction • Azure Container Apps Capabilities • Hands-On Azure Container Apps • Inner-Loop performance with Azure Container Apps • Conclusion Agenda

Slide 28

Slide 28 text

• Introduction • Azure Container Apps Capabilities • Hands-On Azure Container Apps • Inner-Loop performance with Azure Container Apps • Conclusion Agenda

Slide 29

Slide 29 text

Get up and running in minutes Starting form zero you can showcase an app running in Azure Container Apps in ~ 5 mins Inner-Loop performance with Azure Container Apps

Slide 30

Slide 30 text

Inner-Loop perf with az containerapp up Demo

Slide 31

Slide 31 text

• Introduction • Azure Container Apps Capabilities • Hands-On Azure Container Apps • Inner-Loop performance with Azure Container Apps • Conclusion Agenda

Slide 32

Slide 32 text

• Introduction • Azure Container Apps Capabilities • Hands-On Azure Container Apps • Inner-Loop performance with Azure Container Apps • Conclusion Agenda

Slide 33

Slide 33 text

o Frictionless runtime for multi-container apps o Probably powerful enough for many use-cases o Azure Container Apps is long awaited addition to the Azure service landscape o It’s not a replacement for AKS or Web Apps for Containers o Track Azure Container Apps roadmap on GitHub https://github.com/microsoft/azure-container-apps/issues?q=label%3Aroadmap Conclusion

Slide 34

Slide 34 text

Thank you [email protected] @ThorstenHans