Microsoft has launched its new Container Instances (ACI), which offers a middle ground between Azure Functions and Azure Container Service, with orchestration optional but available.
Azure Container Instances (ACI) is intended to provide a more lightweight and granular way to run containerized applications than its Azure Container Service (ACS).
ACI runs individual containers that you can configure with specific amounts of virtual CPU and memory, and that are billed by the second. It is possible that the containers can be pulled from various sources – Docker Hub, the Azure Container Registry, or a private repository – and deployed from the CLI or by way of an Azure template.
According to Microsoft ACI is complementary to ACS, rather than a replacement for it. ACI is meant for smaller, more burst-able workloads, or as a way to temporarily satisfy a surge in demand, rather than as a way to deploy complex, long-running applications with many interdependencies between containers.
There is just one big difference between ACI and ACS and that is, ACI supports only one orchestrator, Kubernetes, and only by way of an open source connector. It is possible, but not required to use Kubernetes as an orchestrator for ACI workloads. One can also draw on Microsoft’s Draft tool for building Kubernetes apps.
ACI supposed to provide a different level of infrastructure abstraction for developers than Azure Functions. The functions is for little more than code snippets, typically used for fulfilling API requests or other simple jobs. ACI launches whole containers, with Azure’s role-based access controls and billing tags associated with them.
In recent time, ACI is only available for Linux as a technology preview, in coming future Microsoft plans to offer support for Microsoft Windows containers on ACI in fairly short order. Microsoft is planning to publish the ACI API as a Swagger specification, which could in theory allow other vendors to implement similar, API-compatible offerings on their own services.