During the recent Ignite conference, Microsoft announced a new cloud-native offering with Azure Container Apps, allowing developers to build microservice architectures using containers. This serverless Kubernetes-based service is in public preview.
Azure Container Apps service is built on top Azure Kubernetes infrastructure (control plane) and includes open source projects like Kubernetes Event-Driven Autoscaling (KEDA), Distributed Application Runtime (Dapr), and Envoy. Jeff Hollan, principal program manager Azure at Microsoft, said in an Ignite session on cloud-native apps and open source on Azure:
Container Apps is the only serverless container solution offering a combination of both built-in HTTP-based autoscaling, including scaled to zero, and event-driven-based autoscaling to run containers that may be processing messages from queues, streams, or databases. In addition, it supports microservices architectures, built with containers using any language, framework, or runtime - and provides native access to powerful open-source projects and frameworks.
Azure Container Service scales horizontally through a set of declarative rules, and when not in use, the service scales to zero and pauses billing. Scaling out occurs on triggers supported by KEDA.
Source: https://docs.microsoft.com/en-us/azure/container-apps/overview
Furthermore, Azure Container Apps offers a fully-managed version of the Dapr APIs, allowing developers to enable sidecars to run next to their application instances – and simplifies application lifecycle management by supporting multiple revisions to manage application versions, enabling traffic splitting and balancing across application versions, securing application secrets, connecting different applications, and providing integrated monitoring via Log Analytics.
Microsoft offers various options for developers to build and deploy cloud-native and containerized applications on Azure with Azure Container Instances (ACI), Azure App Services, Azure Functions, Azure Kubernetes Service (AKS), and Azure Spring Cloud. Yet, the Azure Container Apps are intended for those who do not require direct access to Kubernetes APIs and control planes, as Thorsten Hans, a consultant with Thinktecture AG, concluded in his blog post:
Let’s face it. Kubernetes is hard. This is especially true for newcomers or developers who want to focus on solving business requirements instead of tackling and mastering the underlying application platform. With the rise of Azure Container Apps, teams and individual developers can remain focused on solving business requirements and deploy cloud-native applications with ease to a fully-managed service offering.
In addition, Dennis Zielke, Cloud Native application specialist - Global Black Belt at Microsoft, stated in a medium blog:
... the new Azure Container Apps is a very powerful platform based on relatively simple concepts. If you need no-downtime continuous application upgrades and compare the infrastructure efforts and concepts for achieving something similar on Kubernetes maybe you will be excited with the new services.
Azure Container Apps is currently only available in the East US2 region, and its pricing details are on the pricing page. Furthermore, documentation and guidance are available on the landing page.