Azure Container Instances (ACI)
What is Azure Container Instances?
Azure Container Instances (ACI) is a service that enables a developer to deploy containers on the Microsoft Azure public cloud without having to provision or manage any underlying infrastructure.
The service supports both Linux containers and Windows containers. It eliminates the need for a developer to provision virtual machines (VMs) or implement a container orchestration platform, such as Kubernetes, to deploy and run containers. Instead, with ACI, an organization can spin up a new container via the Azure portal or command-line interface (CLI), and Microsoft automatically provisions and scales the underlying compute resources. ACI also supports standard Docker images a developer can pull from a container registry, such as Docker Hub or Azure Container Registry.
According to Microsoft, ACI reduces management overhead, so a developer can deploy a container on Azure Cloud in seconds.
Key features of Azure Container Instances
Some of the main features of the Azure service are the following:
- Public IP connectivity. A developer can expose containers to the internet with a fully qualified domain name and an IP address.
- Customization. A developer can specify the number of central processing unit (CPU) cores and memory required for a container instance.
- Persistent storage. Container instances are stateless by default, but an organization can choose to mount an Azure file share to a container to enable persistent storage.
- Container groups. A developer can schedule multiple containers to deploy as a group that shares the same host machine, storage, network and other resources. This feature is beneficial when a developer wants to split one functional task among several container images. For example, a container group could include one application container and then one logging or monitoring container.
- Infrastructure as a service (IaaS). Given the structure of ACI and the fact that it can contain all resources needed for one or more applications and operating environments, it can be considered an IaaS.
Building an Azure container
The first step in creating an Azure container is referred to as a Quickstart experience. It involves creating an Azure resource group. Accessing the Azure CLI facilitates command execution in the ACI. Once the CLI is operating, the user creates a container name plus a resource group and a public IP address.
Reviewing a Microsoft tutorial on ACI helps with the process. Once ACI has created the container, a container orchestrator such as Kubernetes or Docker loads it with the required resources, such as application programming interfaces and files. The orchestrator can manage single or multiple containers.
Cost, availability and competition
Azure Container Instances is available under a per-second billing model. Exact pricing varies based on the CPU and memory resources each container or container group uses.
As of 2023, Azure Container Instances is available in the following Azure public cloud regions:
- Canada Central.
- Canada East.
- Central U.S.
- East U.S.
- East U.S. 2.
- East U.S. 3 (planned).
- North Central U.S.
- South Central U.S.
- West Central U.S.
- West U.S., West U.S 2.
- West U.S. 3.
ACI competes most directly with Amazon Web Services Fargate.
The benefits of containers
For medium- to large-sized organizations, containers provide an effective way to develop and deploy applications in a single package or container. Along with a resident operating system, containers are serverless and have all the code needed to deploy an application without the need for VMs to provide the management component. Containers are also highly portable, so they can be developed in one environment and easily moved to a different environment, such as a cloud service.
A single container can support multiple applications executing separately or in concert. Containers also include supporting elements, such as files, databases and libraries. Because containers include their own standalone operating environment, they don't need to use resources from the supporting platform to execute workloads.
Azure Container Instances vs. Azure Kubernetes Service
In addition to ACI, Microsoft offers a managed service for container orchestration built on the open source Kubernetes system called Azure Kubernetes Service (AKS). AKS reduces much of the traditional overhead associated with the installation and maintenance of Kubernetes. However, a user still has responsibility for managing some underlying compute resources.
Microsoft recommends ACI for basic applications that can be isolated to a subset of containers. Organizations that require greater control over the orchestration layer and their container infrastructure are better served with AKS.
A developer can also use ACI and AKS side by side. For example, if compute capacity runs low in an AKS cluster, it's possible to burst to ACI to handle spikes in demand.
Learn more about Azure Container Instances with this basic developers' guide.