Hopefully you read my Introduction to this series where I explain why companies like AWS and Azure are offering Containers-as-a-Service to their customers. If you didn’t, take a second to go back and read it. If you did read it, lets jump right into Category 1!
Category 1 – AWS – Elastic Beanstalk
When most people think of Elastic Beanstalk, they’re not usually thinking containers. They’re usually thinking native WordPress, PHP, Java or other web platforms. But the fact is that Elastic Beanstalk supports deployment of web containers in dockerfile format as well. You can quickly deploy both single and multi-container configurations, and there are no instances or infrastructure to manage (you will still need to setup at least one AWS VPC and at least one subnet, but that’s it). While Elastic Beanstalk makes it easy to deploy your containers, the orchestration of those containers is pretty abstracted, and there is very little you can customize. For example, the rules around auto-scaling of your containers is managed by AWS and cannot be adjusted. But if you don’t have a lot of needs around customization and just need to run a few simple websites via containers, Elastic Beanstalk should work fine for your needs.
Category 1 – Azure – Azure Container Instances
Similar to AWS’ Elastic Beanstalk, Azure Container Instances (ACI) makes it very simple to run a web container in the cloud. There are no VMs to manage, you simply pay for used memory and CPU cycles for as long as your container group is running (a container group is an allocation of CPU and memory that can be used by one or multiple containers). ACI makes deploying containers super easy if you use Azure’s built-in container registry, ACR. Azure Container Registry allows you to push a container image from a workstation to your private registry which can then be geo-replicated to any Azure region, allowing you to deploy containers from the image stored in that region. This is opposed to spinning up containers in other regions all pointing back to a single regional registry which will affect launch times as well as egress networking costs. Just like Elastic Beanstalk, ACI makes deploying containers very simple and easy, but the customization and control of the containers once launched is very limited.
My next post in this series will compare Category 2 of the Container-as-a-Service offerings, Hosted Kubernetes. This will include Microsoft’s Azure Kubernetes Service, as well as Amazon’s Elastic Kubernetes Service (EKS) and Elastic Container Service (ECS). I will post it here soon!