Upgrade to Pro — share decks privately, control downloads, hide ads and more …

All the things Azure Container Apps

All the things Azure Container Apps

Meet the latest addition to Microsoft's serverless offering – Azure Container Apps (ACA). Leverage scaling, resilience, and self-healing capabilities offered by Kubernetes without having the burden to manage and master Kubernetes itself. That's the mission statement from Microsoft when it comes to ACA. But how does the new serverless runtime for containerized architectures work? What does it offer and what does not? And will developers be able to focus just on solving business requirements instead of taming the cloud infrastructure?

Thorsten Hans

January 27, 2022
Tweet

More Decks by Thorsten Hans

Other Decks in Technology

Transcript

  1. What we will cover today o Introduction o Introducing Azure

    Container Apps o Running containerized workloads in Azure Container Apps o Provisioning, deployment, and monitoring o Conclusion Talking Points
  2. Why do we need another service for containers? • There

    is no real serverless pricing for AKS (although we have cluster autoscaling and other features) • Kubernetes itself could become complex • It’s hard to find, and hire people that really know Kubernetes • Sometimes, Kubernetes is an overkill Introduction
  3. The new Azure landscape for containers Introduction Azure Kubernetes Service

    Azure WebApps for Containers Azure Container Instances Azure Container Apps P
  4. What we will cover today ü Introduction o Introducing Azure

    Container Apps o Running containerized workloads in Azure Container Apps o Provisioning, deployment, and monitoring o Conclusion Talking Points
  5. What is Azure Container Apps? • Serverless platform to run

    containerized applications • Customers will be charged on actual compute allocation (consumption) • Built on top of powerful open-source projects • Kubernetes • Envoy • Dapr • KEDA • Hides most of the complexicity from the customer Introducing Azure Container Apps
  6. What is Azure Container Apps? • In Azure Container Apps

    we can run different shapes of applications • Microservices • Background processing • Event-driven applications Introducing Azure Container Apps
  7. Ingress (Envoy) capabilities • Envoy (https://www.envoyproxy.io/) acts as Ingress controller

    for your workloads • Apps could be exposed to the internet • We can implement traffic split (see SMI Spec) • (https://github.com/servicemeshinterface/smi-spec/blob/main/apis/traffic-split/v1alpha4/traffic-split.md) • Apps exposed internally and hosted in the same environment, can interact with each other • In this case, think of regular fully qualified Kubernetes service ( myservice.mynamespace.svc.cluster.local) Introducing Azure Container Apps
  8. Microservice capabilities • Dapr (https://dapr.io) is baked into Azure Container

    Apps • Dapr makes building Microservices easier • Dapr sidecars will be spinned up automatically • Kubernetes sidecar-pattern • Dapr is 100% optional! You don’t have to use Dapr if you don’t want to Introducing Azure Container Apps
  9. Scaling (KEDA) capabilities • Azure Container Apps is built with

    scalability in mind • KEDA (https://keda.sh) allows you to scale certain workloads based on a different scalers • A scaler describes scaling behavior based on external (or internal) signals e.g.: • Azure Service Bus Queue • Redis • Apache Kafka • Utilization e.g., CPU or memory • Scaling configuration is part of the overall deployment manifest Introducing Azure Container Apps
  10. What we will cover today ü Introduction ü Introducing Azure

    Container Apps o Running containerized workloads in Azure Container Apps o Provisioning, deployment, and monitoring o Conclusion Talking Points
  11. What we will cover today ü Introduction ü Introducing Azure

    Container Apps ü Running containerized workloads in Azure Container Apps o Provisioning, deployment, and monitoring o Conclusion Talking Points
  12. How to provision Azure Container Apps • Azure Container Apps

    comes as a set of regular Azure Resource Manager entities • Project Bicep is the best approach to provision Azure Container Apps • Terraform does not support Azure Container Apps yet • tracked at: https://github.com/hashicorp/terraform-provider-azurerm/issues/14122 • Azure CLI integration is available via preview extension Provisioning, deployment, and monitoring
  13. How to deploy workloads to Azure Container Apps • Workloads

    must be persisted in some sort of container registry (e.g., ACR) • If authentication is required, credentials must be part of the deployment • No MSI support (yet) • Again, Bicep is currently the preferred way to go Provisioning, deployment, and monitoring
  14. How to monitor workloads in Azure Container Apps • Azure

    Container Apps comes with Azure Monitor integration • Container logs will be streamed to Log Analytics Workspace (Azure Monitor) • Logging agents materialize messages written to STDOUT and STDERR with contextual information e.g.: • Container App Name • Revision Name • Environment Name • Container Image • … Provisioning, deployment, and monitoring
  15. Provisioning and Deployment - Deploying single-container app in Azure Container

    Apps - Running a multi-container app in Azure Container Apps - Investigating with Azure Monitor Demo
  16. What we will cover today ü Introduction ü Introducing Azure

    Container Apps ü Running containerized workloads in Azure Container Apps ü Provisioning, deployment, and monitoring o Conclusion Talking Points P
  17. o Frictionless runtime for multi-container apps (essential parts of Kubernetes)

    o Probably powerful enough for many organizations o Overall integration with Azure Service will grow during preview o Azure Container Apps is a nice addition to the service landscape o But it is not replacement for Azure Kubernetes Service or Web Apps for Containers Conclusion
  18. o We are early in public preview o There is

    no SLA on the service and its availability o There are still important things missing (e.g. access to the underlying private network infrastructure) o Although Azure Container Apps can deal with sensitive values (by leveraging underlying Kubernetes Secrets) native integration with Azure Key Vault (Secret Store CSI Driver) is not there yet o Track ACA issues and roadmap at https://github.com/microsoft/azure-container-apps Conclusion
  19. Any further questions?!?! Thorsten Hans @ThorstenHans Consultant Don’t be afraid.

    Shoot your question now in person, or later at [email protected] or @ThorstenHans thns.io/slides