
Yu Li
Principal Architect, Director
Microsoft Azure offers a wide range of container services and serverless computing.
Author: Yu Li
Microsoft Azure and its ecosystem offer a very wide range of services in terms of container services and serverless computing. The diversity of the public cloud offering not only brings flexibility, efficiency and innovation, but also poses challenges for many cloud architects and public cloud managers when it comes to architectural decisions. Hip technologies like Kubernetes and Serverless are not necessarily the solution to all problems. In which scenarios should which service be applied? In this blog you will find the thoughts and experiences of ipt.
To give you a clear overview of the topic, the figure below shows five relevant Microsoft Azure Services in the context of containers and serverless, as well as their core functions and possible deployment scenarios.
Deploy Azure App Service for Containers for a simple application with few microservices.
Use Azure App Service for Container to start the project when the business requirements and technical complexity are still unclear.
Azure Kubernetes Service is the managed Kubernetes service from Microsoft and is suitable for complex applications based on a microservice architecture. The core function of AKS (Azure Kubernetes Service) is container orchestration, which covers many aspects from deployment to scaling to monitoring. During deployment, Kubernetes ensures that all container services of the application are deployed simultaneously with a new version. In the event of a failure, these can be synchronized and rolled back to the last version. AKS also ensures that only individual microservices, rather than the entire application (all microservices), are scaled during peak loads based on metrics such as CPU, memory or queue fullness.
Deploy Azure Kubernetes service for complex applications. Complex in this case means that the application consists of multiple microservices and is often developed by different teams.
Azure Red Hat Openshift is one of the most popular Kubernetes variants and is used by many companies for their private cloud. For some time now, Openshift has also been available on Azure in a managed version. Out-of-the-box, Openshift offers many enterprise-friendly features such as monitoring, logging and CI/CD. Unlike Azure Kubernetes service, where these are integrated with . Services such as Azure DevOps (CI/CD) or Azure Monitor need to be covered. However, Openshift also charges a corresponding price for this. In addition to the infrastructure costs (VMs), license costs (around $124 for a D4s v3 VM) must also be paid. In comparison, AKS does not incur any license costs in addition to the infrastructure costs [2][3]. Moreover, AKS is already fully integrated into the Azure ecosystem, for example through Azure DevOps or Azure Monitor Security Center. In this respect, an informed consideration makes perfect sense.
Consider Azure Red Hat Openshift if you are already using Openshift for private cloud and on-prem and have a hybrid cloud strategy.
Serverless is not suitable for every situation. You will get the most benefit from Azure Functions if you follow an event-driven architecture.
Consider using the Azure Container Service and Virtual Nodes combination for applications with many peak loads or isolated calls.
The optimal selection of services in cloud-native development is critical to project success. Choosing an "aircraft carrier" service for a "rubber boat" problem increases cost and complexity, this metaphor also applies to cloud-native development. A clear overview of Azure-native services and a strong understanding of their advantages and disadvantages helps to make the right architectural decision.