How to gradually adopt containers on Azure?
Adopting container technologies can be challenging or even overwhelming. The learning curve can be steep, especially if you immediately rush to Azure Kubernetes Services. If you are not yet ready to dive deep into this world, you can make intelligent choices and adopt a phased approach.
Not all container services have the same level of complexity. It is particularly true for Azure Web App for Containers and Azure Container Instances, where the only thing required from your end is providing a container image. The below image illustrates the different services and their level of complexity:
Web Apps for Containers and Container Instances are straightforward to use. They only require you to know how to build a container image and push it to a container registry such as Azure Container Registry. They can be both used to lift & shift some workloads from your on-premises environment to Azure. They both support Windows containers. So, if you have plain old IIS-hosted web apps, they could be packaged as containers and pushed to such services.
Container apps are also easy to use but offer more functionalities, such as KEDA and Dapr. So, if you want to leverage this service to its full potential, you’ll need to know more about these things.
Azure Red Hat OpenShift (ARO) is a complete container orchestration system with a layer on top of Kubernetes, which abstracts some underlying complexity of K8s.
At last, we have AKS. It is much easier to use today than a few years ago, but it remains K8s with its entire ecosystem, so we’re not in the same playground anymore.
The benefit of the phased approach is that you will already get your teams to learn how to package applications as containers without the extra complexity of an orchestrator. You have done part of the job the day you want more.