Containers continue to grow in popularity, with Docker and Kubernetes adoption doubling from 2016. Microsoft is also making moves within the container industry, recently releasing a preview of its Azure Container Instances (ACI) service that has generated some buzz. What’s causing all the excitement?
Microsoft has offered a container service for a couple of years now with Azure Container Services (ACS), but the impending arrival of its container instance service is different. Whereas ACS is designed for complex, long-running applications, ACI will let you spin up a single container with your choice of resources, where usage is billed by the second (think more “bursty” workloads). Containers spun up on ACI will get the same fun features and extras found on the rest of Azure, such as role-based access controls, tagging abilities, etc.
Because ACI is designed around deploying single containers that are better suited for bursty workloads rather than long-running stable ones, Microsoft recommends ACI for scenarios such as simple applications, task automation, and build jobs. For scenarios that require full container orchestration, including service discovery across multiple containers, automatic scaling, and coordinated application upgrades, Microsoft recommends its Azure Container Service as a better fit.
Containers without overhead
ACI bridges the gap between platform as a service (PaaS) and IaaS and should be seen as a complement to its existing container service. ACI eliminates the overhead that comes with managing VMs, and does so with an easily scriptable set of commands. Designed to work both on its own and with tools like Kubernetes, ACI adds container-management commands to Azure, and then uses that per-second billing model to charge users without creating and deploying (and paying for) container hosts.
It’s important to note that ACI currently only supports Linux containers, and it’s currently only in preview mode. It is not recommended for production. Microsoft has announced support for Windows containers coming soon, but has not released a specific date.
Experts especially believe Microsoft’s support for Kubernetes will give them an edge over leading-cloud provider Amazon, because Kubernetes currently does not run as easily on AWS as its own Elastic Container Service (ECS) and it suffers from lack of portability. In addition, Microsoft is the only major cloud player (so far) to offer users the choice between all of the major container orchestrators — Kubernetes, Docker Swarm and Apache Mesos — as part of its container services. Users are charged for the underlying compute, network and storage the service consumes, rather than the service itself.
Cloud providers Amazon and Google have dabbled with containers longer than Microsoft with their Elastic Container Service (EC2) and Google Cloud Engine (GKE), but Microsoft has made a big entrance into the container industry. While Google’s native Kubernetes support (after all, Kubernetes was originally developed by Google before they donated it to the open source community) makes it very popular with users, Microsoft is catching up to both. Azure Container Service with container instances seems to provide more granularity than anything else on the market. As containers continue to develop, it will be interesting to see how Amazon and Google (among others) respond.