Skip to content

Commit 18bb5da

Browse files
authored
Merge pull request #178529 from jeffhollan/aca-vs-other
container apps comparison doc
2 parents 6dbf7ff + 17de38a commit 18bb5da

File tree

2 files changed

+58
-0
lines changed

2 files changed

+58
-0
lines changed

articles/container-apps/TOC.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@
44
items:
55
- name: About Azure Container Apps
66
href: overview.md
7+
- name: Comparing container options in Azure
8+
href: compare-options.md
79
- name: Quickstarts
810
expanded: true
911
items:
Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
---
2+
title: 'Comparing Container Apps with other Azure container options'
3+
description: Understand when to use Azure Container Apps and how it compares to d container options including Azure Container Instances, Azure App Services, Azure Functions, and Azure Kubernetes Service.
4+
services: app-service
5+
author: jeffhollan
6+
ms.service: app-service
7+
ms.topic: quickstart
8+
ms.date: 11/03/2021
9+
ms.author: jehollan
10+
ms.custom: ignite-fall-2021
11+
---
12+
13+
# Comparing Container Apps with other Azure container options
14+
15+
There are many options for teams to build and deploy cloud native and containerized applications on Azure. This article will help you understand which scenarios and use cases are best suited for Azure Container Apps and how it compares to other container options on Azure including:
16+
- Azure Container Instances
17+
- Azure App Services
18+
- Azure Functions
19+
- Azure Kubernetes Service
20+
21+
There's no perfect solution for every use case and every team. The following explanation provides general guidance and recommendations as a starting point to help find the best fit for your team and your requirements.
22+
23+
> [!IMPORTANT]
24+
> Azure Container Apps is currently in public preview while these other options are generally available (GA).
25+
26+
27+
## Container option comparisons
28+
29+
### Azure Container Apps
30+
Azure Container Apps enables you to build serverless microservices based on containers. Distinctive features of Container Apps include:
31+
32+
* Optimized for running general purpose containers, especially for applications that spans many microservices deployed in containers.
33+
* Powered by Kubernetes and open-source technologies like [Dapr](https://dapr.io/), [KEDA](https://keda.sh/), and [envoy](https://www.envoyproxy.io/).
34+
* Supports Kubernetes-style apps and microservices with features like [service discovery](connect-apps.md) and [traffic splitting](revisions.md).
35+
* Enables event-driven application architectures by supporting scale based on traffic and pulling from [event sources like queues](scale-app.md), including [scale to zero](scale-app.md).
36+
* Support of long running processes and can run [background tasks](background-processing.md).
37+
* All Container Apps are Kubernetes compatible.
38+
39+
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](../aks/intro-kubernetes.md). 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.
40+
41+
### Azure App Services
42+
Azure App Services provides fully managed hosting for web applications including websites and web APIs. These web applications may be deployed using code or containers. Azure App Services is optimized for web applications. Azure App Services is integrated with other Azure services including Azure Container Apps or Azure Functions. If building a web application, especially if moving from another web hosting solution, Azure App Services will provide the best experience.
43+
44+
### Azure Container Instances
45+
Azure Container Instances provide a Hyper-V isolated serverless hosted containers on demand. It can be thought of as a lower-level "building block" option compared to Container Apps. Azure Container Apps provide many *application-specific concepts on top of containers, including certificates, revisions, scale, and environments. However, if you're looking for a less "opinionated" building block, Azure Container Instances is an ideal option. Scenarios like controlled batch jobs, long-running jobs, or hosting managed compute environments are ideal for Azure Container Instances. Users often interact with Azure Container Instances through other services. For example, Azure Kubernetes Service can layer orchestration on top of container instance through [virtual nodes](../aks/virtual-nodes.md).
46+
47+
### Azure Kubernetes Service
48+
Azure Kubernetes Service provides a fully managed Kubernetes option in Azure. It supports direct access to the Kubernetes API and runs any Kubernetes workload. Teams that need a fully managed and secure version of Kubernetes in Azure, Azure Kubernetes Service is the ideal option.
49+
50+
### Azure Functions
51+
Azure Functions is a serverless Functions-as-a-Service (FaaS) solution. It's optimized for running event-driven functions using the functions programming model. It shares many characteristics with Azure Container Apps around scale and integration with events, but optimized for ephemeral functions deployed as either code or containers. The Azure Functions programming model provides productivity benefits for teams looking to trigger on events and bind to other data sources. When building FaaS-style functions, Azure Functions is the ideal option. The Azure Functions programming model is available as a base container image, making it portable to other container based compute platforms allowing teams to reuse code as environment requirements change.
52+
53+
## Next steps
54+
55+
> [!div class="nextstepaction"]
56+
> [Deploy your first container app](get-started.md)

0 commit comments

Comments
 (0)