Azure Container Apps: Underneath The Hood (Quickstart)
Tags: azure, containers, kubernetes
Published: 2022-03-30 15:31:58

This post is a big different than my usual blog posts.

Instead of a formal blog post, I’m creating a Quickstart. A Quickstart will answer several questions, and have several statements, regarding a specific product.

Think about it like a quick research report.

In this Quickstart, you’ll learn about Azure Container Apps and what’s underneath the hood.

## What is Azure Container Apps

**Breakdown:** Serverless Kubernetes

**Explanation:** Azure Container Apps is a serverless hosting service for containerized applications and microservices. Azure Container Apps enables executing application code packaged in any container and is unopinionated about runtime or programming model. Applications can scale in response to HTTP requests, events, or simply run as always-on background jobs.

## How It works

### How Do The Clusters Work?

A few questions that have come up are:

- How do the clusters work for the control plane and worker nodes?
- Is it just one big cluster?

Fortunately, it’s not just one big cluster. That would add some major security concerns for Microsoft. You can think of Azure Container Apps as “one Kubernetes cluster per environment”.

Microsoft is also looking into a way to provide users with an isolated environment.

In terms of how many worker nodes will be available, it’s safe to say that Microsoft will be following the Kubernetes best practices and have at least 3 worker nodes available.

### Auto Scaling

In a production-level environment, you need auto-scaling. Whether you set it up yourself or decide to go with a pre-built solution, it should be on the top of your mind.

With Azure Container Apps, you’ll use KEDA out of the box. KEDA drives auto-scaling in an event-based fashion. Some of those events include:

- HTTP trafic
- Event triggers

[https://keda.sh/](https://keda.sh/)

### Questions

Below are some common questions with answers (some of the questions don’t have answers as of yet).

1. What does the Kubernetes cluster look like on the backend?
    1. It’s powered by Kubernetes. 
    2. You don’t have access to the underlying Kubernetes API
2. How many control planes and how many worker nodes
    1. No answer yet
3. How many worker nodes does the cluster start with? (Kubernetes recommends 3 at minimum)
    1. it’s safe to say that Microsoft will be following the Kubernetes best practices and have at least 3 worker nodes available.
4. Does it contain auto-healing?
    1. No answer yet
5. It’s using Ingress; what kind of Ingress?
    1. Envoy-based ingress controller ([https://kubernetes.io/docs/concepts/services-networking/ingress-controllers/](https://kubernetes.io/docs/concepts/services-networking/ingress-controllers/))
    2. Azure Container Apps use envoy directly for ingress and traffic routing. No other Ingress project.

## Behind The Scenes

**GitHub**: [https://github.com/microsoft/azure-container-apps](https://github.com/microsoft/azure-container-apps)

## References

If you’d like to take a deeper look for yourself, I recommend checking out the following links.

- [https://azure.microsoft.com/en-us/services/container-apps/#features](https://azure.microsoft.com/en-us/services/container-apps/#features)
- [https://docs.microsoft.com/en-us/azure/container-apps/overview](https://docs.microsoft.com/en-us/azure/container-apps/overview)
- [https://docs.microsoft.com/en-us/azure/container-apps/compare-options](https://docs.microsoft.com/en-us/azure/container-apps/compare-options)
- [https://github.com/microsoft/azure-container-apps/wiki/FAQs](https://github.com/microsoft/azure-container-apps/wiki/FAQs)