Containers and Kubernetes are the hottest topics in application modernization technologies. Let me explain the Azure cloud Containers services. This blog post is the last in a series that will be in three parts:
- Part 1: Introduction to Docker, Containers, and Kubernetes
- Part 2: Deep Dive into Kubernetes
- Part 3: Containers Services in Azure.
Azure Cloud offers various container services. The list of services are:
- WebApp for Containers.
- Azure Container Instances.
- Azure Container Registry.
- Azure Kubernetes Service (AKS).
- Azure Red Hat OpenShift.
- Azure Container Apps.
I will focus on the three services listed above, widely consumed and primarily used container services.
- Azure Container Instance (ACI): Azure Container Instances offer the fastest and simplest way to run a container in Azure without managing any virtual machines or adopting a higher-level service. Azure Container Instances (ACI) provides a single pod of Hyper-V isolated containers on demand. It can be considered a lower-level “building block” option than Container Apps. ACI containers do not provide concepts like scale, load balancing, and certificates. For example, you create five distinct container instances to scale to five 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. The key features are:
Invisible infrastructure
Event-based programming modes
Micro billing
Uptime SLA 99.9%
- Azure Container Apps (ACA): Azure Container Apps is a fully managed environment that enables you to run microservices and containerized applications on a serverless platform. Azure container apps provide a fully managed serverless container service for deploying modern apps at scale. ACA can be seen as a PaaS layer on top of Kubernetes. Run containers and scale in response to HTTP traffic or a growing list of KEDA-supported scale triggers, including Azure Event Hub, Apache Kafka, RabbitMQ Queue, MongoDB, MySQL, and PostgreSQL. Scale to zero and pay for only what you use by the second. ACA is billed by usage. Idle containers are billed at a lower rate. This makes ACA a cost-effective option for applications with varying levels of load. ACA is more app-centric and provides a more direct and serverless experience than AKS. It also supports event-driven architecture and scaling to zero. It is powered by Kubernetes and other open-source technologies like Dapr(Distributed Application Runtime ), KEDA(Kubernetes-based Event Driven Autoscaling), and Envoy. Still, it doesn’t expose the underlying Kubernetes APIs or cluster management. Applications built on Azure Container Apps can dynamically scale based on the following characteristics: •HTTP traffic •Event-driven processing •CPU or memory load •Any KEDA-supported scaler.
- Azure Kubernetes Service (AKS): Azure Kubernetes Service (AKS) provides a fully managed Kubernetes option in Azure. It supports direct access to the Kubernetes API and runs any Kubernetes workload. The whole cluster resides in your subscription, with the cluster configurations and operations within your control and responsibility. Azure Kubernetes Service is an ideal option for teams looking for a fully managed version of Kubernetes in Azure. AKS provides a managed Kubernetes service that reduces deployment complexity and core management tasks, like upgrade coordination. The Azure platform works the AKS control plane; you only pay for the AKS nodes that run your applications. The key features of AKS are:
Managed Kubernetes services. AKS provides a managed Kubernetes service that reduces deployment complexity and core management tasks, like upgrade coordination.
Azure manages controller nodes, while customers manage worker nodes.
It reduces the setup and operations complexity of Kubernetes for production workloads.
Integration with ACR, Azure services, etc.
The Azure platform manages the AKS control plane, and you only pay for the AKS nodes that run your applications.
CNCF complaint AKS
The below table provides the comparison between three options:
Azure Kubernetes Services (AKS) | Azure Container Instance (ACI) | Azure Containers Apps (ACA) | |
Deployment | Uses clusters and pods to scale and deploy applications | For event-driven applications, quickly deploy from your container development pipelines, run data processing, and build jobs. | It is best for High-availability protection from hardware failure, and Disaster Recovery protects from regional loss. |
Scaling | Yes. Autoscaling options | No. | Yes, limited options. |
Deploy at VNET | Yes | Yes | Yes |
SLA | 99.95% with AZ | 99.9% | 99.95% |
Billing | Azure manages the AKS control plane, and the user manages agent nodes. Pay for the usage. | ACI containers are billed by usage (CPU cores, memory), so they are the most cost-effective solution in scenarios where short-lived containers are created and removed often. | ACA is billed by usage. Idle containers are billed at a lower rate. This makes ACA a cost-effective option for applications with varying levels of load. |
Recommendations on when to use | Landscapes requiring container orchestration, scaling, advanced configuration, or running specialized workloads. | Processing of batch jobs, build jobs, automation tasks, and short-duration, simple applications. | Microservices applications, processing jobs. ACA can be a good fit if the ACI feature set is inadequate, but the full functionality of Kubernetes is not needed. |
To read more about the containers and Kubernetes, please use the below links:
Kubernetes Official docs | Kubernetes Official documentation |
Azure AKS | Microsoft Official documentation | Microsoft Docs |
Docker Official docs | Docker Official documentation |
Kubectl Commands Cheat Sheet | Kubernetes docs |
Configuring/operating AKS | Configure Azure Kubernetes Service – Training | Microsoft Learn Azure Kubernetes Service (AKS) application and cluster scalability – Training | Microsoft Learn Develop and deploy applications on Kubernetes – Training | Microsoft Learn Introduction to Kubernetes on Azure – Training | Microsoft Learn |
Managing secrets and configs | Manage application configuration and secrets in Azure Kubernetes Service (AKS) – Training | Microsoft Learn |
AKS Best Practices | Best practices for Azure Kubernetes Service (AKS) – Azure Kubernetes Service | Microsoft Learn |
Thus the end of the containers series blog post. I hope you had a good learning.
Santhosh has over 15 years of experience in the IT organization. Working as a Cloud Infrastructure Architect and has a wide range of expertise in Microsoft technologies, with a specialization in public & private cloud services for enterprise customers. My varied background includes work in cloud computing, virtualization, storage, networks, automation and DevOps.