Azure Container Instances
Today's article will explain what is Azure Container Instances Service (aka ACI). We would explore how it eases container executions on the cloud and when is it a better option in contrast to Azure Kubernetes Service and Azure Service Fabric.
By the end of this article, you should know:
- When should you pick containers over Virtual Machines.
- What is Azure Container Instances (ACI).
- When should you pick ACI over Azure Kubernetes Service and Azure Service Fabric.
Why pick containers over virtual machines.
- Speed - Containers run on top of a host OS sharing its kernel, this results to faster boot up times. ACI can start containers in Azure in seconds, without the need to provision and manage virtual machines yourself.
- Incorruptibles - Unlike virtual machines, containers can quickly recover from OS or Hardware based corruptions especially in cloud provider environments. Your application can get back up quickly thanks to instantiations of containers out of immutable images.
- Modularity - Containers enables you to modularize your application by splitting independent work flow steps on their own tiny sandboxes. An example use case where containers shine is a video processing pipeline that requires video compression, thumbnail extraction, watermarking and meta data extraction that experiences a performance bottleneck on one of those steps. Containers can help you scale specific steps that needs more processing power to make your processing pipeline work efficiently.
- Packaging - Containers ease software packaging as it lets you ship your application to production environment quickly. Dockerfile allows you to specify all the binaries, dependencies, configuration and build time processes your application needs. Docker makes your application immutable and lets you spin up and tear down containers any time you wanted to.
What is Azure Container Instances (ACI)?
Azure Container Instances aka ACI is a Windows Azure Service that offers that fastest and simplest way to run a container in the cloud. It abstracts away the pain and skill set required to manage virtual machines without having to adopt a higher-level service.
Azure Container Instances is a great solution for any scenario that can operate in isolated containers, including simple applications, task automation and build jobs.
Azure Container Instances (ACI) is a more optimal option as it allows you to specify custom memory and cpu that your application needs. This makes ACI a more cost-efficient option for running rarely used jobs (once a month, once a week, once a year or once every time a new kid of yours is born).
Finally, containers were historically built for application dependency isolation and resource governance but not have been considered sufficiently to be hardened for hostile multi-tenant usage. Azure container instances solves this by guaranteeing that your application will be isolated on your container from the rest of the containers living on the same host through the use of pre-configured permission sets.
When to pick ACI over Azure Kubernetes and Service Fabric?
Azure Container Instances (ACI) is a better option compared to Azure Kubernetes Service and Service Fabric if:
- Your workload don't need complex container orchestration like self healing, complex service discovery and mesh features.
- Your application is a job that can run standalone and don't need or depend on some other container-based action.
- Your application is a job that rarely runs (Control-M or Scheduled Jobs).
- You want to have fine grain and very small execution workload.
Azure Container Instances (ACI) opens a lot of new use-cases of running containers on the cloud. It also optimizes the cost of running older use cases through the micro-billing scheme. We also learned that ACI can be a more viable option compared to Azure Kubernetes Service and Azure Service Fabric.
- Microservices: Picking the .NET Framework for your containerized applications.
- Microservices: Why choose containers over virtual machines.