The container march to the masses continues with Azure Container Instances (ACI). ACI is the latest in container tech from Microsoft, who is trying to figure out how to integrate container technology into just about every facet of their cloud offering. ACI makes containers easy: fill out a form and a few seconds later your container is up and running on Azure – no virtual machines, no containers-as-a-service, no Docker installations, no app service instances, no black magic or religious incantations.
On Azure, it’s easy to do. Add a resource and then search for Azure Container Instances in the search dialog. Then select Azure Container Instances from the list.
Now, on the next screen is where you specify the image your want to deploy. You can use public or private registries here. Public images are pulled from Docker Hub. In this example, I pulled NGINX from Docker Hub. The rest of the setting are like everything else on Azure. Supply the name of the resource, pick the subscription to to bill, then create a resource group.
The next screen gives your some basic configuration options for the container. You can pick the number of CPU’s and how much RAM the container should user, the IP settings, and also a port mapping. Azure Container Instances are only billed for how much you use. The biggest advantage of this model is your not pay for anything extra to bootstrap the container: no OS, no load balancers, no gateways, none of that other stuff that is commonplace for supporting application infrastructure on Azure.
Once it’s ready to go, click OK after validation. This will start the deployment process. The container was ready to go in less that 30 seconds. Now, grab the IP address.
Paste it into into a browser as a URL, and you should see the container up and running.
Yes, deploying containers is now that simple on Azure.
There are a few caveats that one should be aware of. ACI containers, because they are not running in a CaaS environment, are more limited in the scope of applications that one can run on them. ACI doesn’t offer a lot of advanced configurations (high availability, load balancing, network isolation, monitoring, scaling, etc.) that can be done with orchestration like Kubernetes, DC/OS, or Swarm. There is a way through Azure Container Instance groups and Azure File Shares to create multi-container deployments. Doing this is not as simple as deploying single containers through the portal and requires a little more in terms of configuration with the Azure CLI to accomplishment this.
So as far as the bottom line goes, if you’re looking for a quick and easy way to spin up a container or need only basic configurations for containers, then Azure Container Instances might be the right choice for your needs, however if you’re looking for more advanced options, consider Azure Container Services which will give your Kubernetes, Swarm, or DC/OS and all the stuff that comes with that.