Score:12

Difference between Azure Container Instances and Azure Container Apps

us flag

Microsoft announced Azure Container Apps, a new service for running serverless containers in the cloud. This appears to be similar to the Container Instances service, which is also for deploying fully-managed containers.

What are the key differences between these two services?

Score:8
cn flag

That's a good question and I've asked the team about it because it wasn't clear to me either.

In summary: if you'll spin up multiple container (e.g. front end / backend / database), Azure Container Apps is a better choice as it comes with Dapr and it will auto retry the requests and add some telemetry data.

If you just need long running jobs or you don't need multiple containers to communicate with each other, you can go with Azure Container Instances.

Azure Container Instances

Azure Container Instances (ACI) provides a single pod of Hyper-V isolated containers on demand. It can be thought of as a lower-level "building block" option compared to Container Apps. Concepts like scale, load balancing, and certificates are not provided with ACI containers. For example, to scale to five container instances, you create five distinct container instances. Azure Container Apps provide many application-specific concepts on top of containers, including certificates, revisions, scale, and environments. Users often interact with Azure Container Instances through other services. For example, Azure Kubernetes Service can layer orchestration and scale on top of ACI through virtual nodes. If you need a less "opinionated" building block that doesn't align with the scenarios Azure Container Apps is optimizing for, Azure Container Instances is an ideal option.

Azure Container Apps

Azure Container Apps enables you to build serverless microservices based on containers. Distinctive features of Container Apps include:

Optimized for running general purpose containers, especially for applications that span many microservices deployed in containers. Powered by Kubernetes and open-source technologies like Dapr, KEDA, and envoy. Supports Kubernetes-style apps and microservices with features like service discovery and traffic splitting. Enables event-driven application architectures by supporting scale based on traffic and pulling from event sources like queues, including scale to zero. Support of long running processes and can run background tasks. Azure Container Apps doesn't provide direct access to the underlying Kubernetes APIs. If you require access to the Kubernetes APIs and control plane, you should use Azure Kubernetes Service. However, if you would like to build Kubernetes-style applications and don't require direct access to all the native Kubernetes APIs and cluster management, Container Apps provides a fully managed experience based on best-practices. For these reasons, many teams may prefer to start building container microservices with Azure Container Apps.

source: https://docs.microsoft.com/en-us/azure/container-apps/compare-options

CSharpRocks avatar
cn flag
Note that you can use ACA without using Dapr and that ACI can run single and multiple containers apps.
Score:4
cn flag

In a nutshell, workloads on ACI are usually started and stopped by some kind of process or trigger and are usually short-lived while workloads on ACA are usually long-running processes like a Web app.

Dave Slinn avatar
in flag
It is, but there are more things you can do in a container than they allow via AppService. This video discusses some scenarios: https://www.youtube.com/watch?v=Fe_AYBD5m0I
sc flag
What about AppService? isn't that also for constantly running processes?
mangohost

Post an answer

Most people don’t grasp that asking a lot of questions unlocks learning and improves interpersonal bonding. In Alison’s studies, for example, though people could accurately recall how many questions had been asked in their conversations, they didn’t intuit the link between questions and liking. Across four studies, in which participants were engaged in conversations themselves or read transcripts of others’ conversations, people tended not to realize that question asking would influence—or had influenced—the level of amity between the conversationalists.