Switch up your Microservices approach with Azure Container Apps
- Chris Shelton
- Insights
Traditionally, running microservice applications on Azure has defaulted to the Azure Kubernetes Service (AKS). While AKS is powerful, it can be quite challenging to maintain best practices, security, and scalability due to its complexity and operational overhead. Azure Container Apps abstracts these concerns, allowing you to focus on building your application without needing extensive infrastructure expertise.
Let’s explore why Azure Container Apps is a game-changer for building microservice-style applications on Azure.
1. Simplify Deployments and Application Management
Deploying applications in Azure Container Apps is straightforward. You can deploy multiple services into each environment and manage their lifecycle with your favorite DevOps platform.
Although your workloads run on Kubernetes under the hood, you don’t need to be an expert in Kubernetes manifests or Helm charts. You can use the Azure CLI, ARM/Bicep, or other Infrastructure as Code (IaC) tools you are already familiar with to deploy and upgrade your services.
2. Built-in Load-Based Scaling
Scaling your application on-demand is easy with built-in support for the Kubernetes Event-Driven Autoscaler (KEDA). You can define the number of container instances required based on various metrics like queue length, concurrent requests, CPU, memory, and many other predefined or custom scalers. Event handlers and other background processing services can scale back to zero when there’s no workload, reducing costs significantly.
3. Enhanced Security for Data in Transit
Azure Container Apps can be deployed into Virtual Networks (VNETs) within your Azure subscription, allowing you to access your resources securely via private endpoints. This ensures that your data does not travel across the public internet when interacting with your services.
Container apps can be accessed by external ingress endpoints with TLS enabled by default. Internal communication between services will not leave Azure, even when using service-to-service communication via the external ingress endpoints.
4. Revisions, Blue-Green Deployments, and Traffic Splitting
Versioning and rollouts are handled with a declarative and desired-state approach. Modify your deployment JSON or run CLI commands, and the Container Apps service will manage the lifecycle of your services, creating new revisions and rolling out the changes.
Blue-green deployments and traffic splitting are also first-class features, now accessible without requiring deep DevOps knowledge.
5. Dapr Support Out of the Box
Dapr (Distributed Application Runtime) is becoming a standard for running distributed applications. Enable Dapr for your container app to leverage capabilities like mutual TLS (MTLS), observability, resiliency, service discovery, state management, and publish/subscribe messaging. These features are typically managed via a service mesh or directly in your application code.
6. Built-in Observability and Logging
Leverage Azure Monitor to view your application logs, traces, and metrics. OpenTelemetry instrumentation is applied transparently when using Dapr, allowing you to explore visual representations of distributed requests across multiple services and resources, providing insights into latency issues or other faults in your application.
When Should You Use AKS Instead of Azure Container Apps?
From complex microservice-style applications to hobby projects, Azure Container Apps is a versatile fit. However, Kubernetes isn’t going anywhere. If you need to run Helm charts, require access to the underlying Kubernetes API, or have specific requirements around networking and infrastructure, AKS might be the better choice for your project.
Are you currently using Kubernetes or considering running containerised workloads on Azure? Let’s explore options for getting started in the cloud or migrating your existing application, contact us today.
Playtime Solutions’
AKS Best Practice Guide
A 23 page best-practice checklist, leveraging Playtime Solutions’ hands-on experience in designing, developing and delivering enterprise-grade application. This guide assists IT and DevOps professionals in creating an enterprise-grade Kubernetes environment in Microsoft AKS.