Containers are increasingly becoming the de-facto strategy for cloud native deployments. With the question of orchestration looming over those deployments, cloud vendors continue to provide multiple offerings for managing your containerized services. In this article, we’ll compare 3 main Azure offerings for container orchestration: Azure Web Apps, Azure Container Instances, and Azure Kubernetes Service.
Azure Web Apps
Overview
Azure Web Apps for Containers makes it easy to deploy web apps to containers for fast and simple orchestration. This service offering is beneficial for teams that are already familiar using Azure Web Apps to deploy ASP.Net MVC applications. They can use their existing investment and knowledge of Web Apps to begin incorporating containers into the development lifecycle.
Why use it?
- Your team is already familiar with the Azure Web App environment.
- You have one or a few long-running containers/services that are being deployed.
- You have low-cost development/POC environments that would benefit from using the Free and Shared App Service Plan.
- You want a fully managed infrastructure platform utilizing App Service Plans.
- You want to take advantage of built-in auto-scaling capabilities available through Azure Monitor.
Azure Container Instances
Overview
Azure Container Instances (ACI) offers a fully managed hosting environment for container workloads that are billed only for the time you use them. This environment enables short-lived containers that respond to on-demand events or schedules to be charged only for the processing time it takes to start them and run the workload. There are significant cost savings for services that don’t require constant up-time charges at an always-on rate.
The services hosted in ACI can be analogous to serverless services hosted in AWS Lambda or Azure Functions. The main difference between these are that services hosted in ACI are in a cloud-agnostic container, which avoids vendor lock-in.
Why use it?
- You have one or a few containers/services that are being deployed.
- You have short-lived workloads that respond to on-demand events or schedules.
- You want high-level operation management of your container deployment.
Azure Kubernetes Service
Overview
Azure Kubernetes Service (AKS) is the managed Kubernetes hosting environment supported by Azure. As containers become the standard for cloud-native deployment, Kubernetes is becoming the standard for container orchestration. Azure has gone all-in on managed Kubernetes, replacing their previous orchestration offering that also supported Apaches Mesos and Docker swarm, to only supporting Kubernetes.
How it Works
For Kubernetes, the infrastructure is split between the Cluster and the Nodes. The Cluster handles the orchestration, and the Nodes handle the workloads. AKS provides managed hosting of both the Cluster and the Nodes.
Azure VMS are utilized underneath, so any discounts/agreements in place for VM size are applied to the Nodes as well. Your operational responsibility is how you deploy the Pods hosting your containers within the Azure nodes, giving you maximum flexibility and portability on your hosting environment.
Why use it?
- You are utilizing Azure but want to keep your infrastructure portable for other cloud providers.
- You have many containers/services that are being deployed or require more complex orchestration of your workloads.
- You want to utilize the most flexible and future-proof managed container environment.
- You already have a team with institutional knowledge of Kubernetes.
- You want to ensure open source tools are used as much as possible.
- You want developers and operations to be able to determine how containers are managed.
Summary
Teams just starting on the cloud-native journey should utilize Azure Web Apps or ACI. Both options are a great environment for migrating to containers using your teams’ current expertise.
Teams that are already on their journey and require further orchestration of their services or have an existing investment in Kubernetes should utilize AKS. AKS provides a managed hosting environment of your containers while also giving you operational control.
If you’ve started your cloud-native journey and have chosen to adopt containers, the next step is deciding what to use for orchestration. If you need help deciding which service is right for your specific situation, contact DragonSpears. We have consultants ready to provide recommendations best suited to your team and its business needs.