Azure Container Services
There are several container technologies that Microsoft Azure provides. Some of these I have tried to summarise below.
Azure Container Apps (ACA)
Purpose: New containerised service that offers a blend of both Azure Container Instances and Azure Web App for Containers.
- The underlying infrastructure is managed by Microsoft.
- Powered by Kubernetes and other OS technologies like KEDA, envoy and Dapr.
- Enables users to quickly build out container applications without thinking about managing workloads, infrastructure scaling etc.
- Does not provide access to the underlying Kubernetes API. So if you need this, then Container Instances or Azure Kubernetes would be an alternative.
- Does not have Cluster management.
- Host Websites, Host Web Apps, Host API.
- Host microservices or event-driven services.
- Hosting background processing applications. Read more here.
- For developments that require a strict ALM strategy. Azure Container Apps ALM uses three phases; Deployment, Update and Deactivation. Read more about managing revisions here.
- Use of VNET which provides access to resources in a VNET.
- Split traffic for A/B testing scenarios.
- Logging & Monitoring capabilities.
- Use external Identity Providers outside of Azure AD.
- Create auto-scaling rules based on HTTP traffic, Event-driven triggers based on messages in Azure Service Bus, and CPU/Memory triggers.
- Scale based on KEDA-supported scaler
- Define and use secrets inside container apps.
- Use managed identities.
- Supports long-running processes.
- Supports service discovery and traffic splitting.
- Scales down to Zero. This means that ACA does not cost anything if the service is not being used.
- Currently, Linux based only.
Azure Container Instances (ACI)
Purpose: Microsoft’s implementation of containerised services. ACI can host websites, web apps, API endpoints and applications that can be containerised (SQL Server, Kafka, MySQL etc). Container images can be pulled from any Docker-based registry (Azure Container Registry or Docker Hub).
- Simple container service – you load up a container and manage it independently.
- Horizontal & Vertical scaling needs to be managed independently.
- New versions of images must be updated either manually or through CI/CD release.
Web App for Containers (WAC)
Purpose: A managed service for hosting web apps, mobile app back ends, RESTful APIs, or automated business processes. This service is sometimes called App Service or Web App for Containers. Microsoft recommends that Web App for Containers should be used when creating a new web application. ACI should be used in lift & shift scenarios.
Azure App Service enables you to build and host web apps, mobile back ends, and RESTful APIs in the programming language of your choice without managing infrastructure. It offers auto-scaling and high availability, supports both Windows and Linux, and enables automated deployments from GitHub, Azure DevOps, or any Git repo. Learn how to use Azure App Service with our quickstarts, tutorials, and samples.
- Generalised container service for hosting web applications.
- Fully managed service by Microsoft.